Yutaka Niibe

USB vendor ID for emulation

Yutaka Niibe at

In the USB Implementers Forum's member agreement, it says:

Vendor ID (VID) Number. Company hereby applies for a USB Vendor ID Number and agrees to the following: The USB Implementers Forum is the authority which assigns and maintains all USB Vendor ID Numbers. Each Vendor ID Number is assigned to one company for its sole and exclusive use, along with associated Product ID Numbers. They may not be sold, transferred, or used by others, directly or indirectly, except in special circumstances and then only upon prior written approval by USB-IF. Unauthorized use of assigned or unassigned USB Vendor ID Numbers and associated Product ID Numbers are strictly prohibited.

That's reasonable for hardware product.

FSIJ owns a Vendor ID (234B) and uses it for Gnuk and NeuG.

Now, I have a problem, because I'm now working for the emulation for those devices on GNU/Linux.

The idea is to allow those who don't have hardware use "virtual" product by a program on GNU/Linux using USBIP. The problem is that we need to use some vendor ID and product ID within the program, which is not the one of hardware product.

It is best if the program can use FSIJ's vendor ID, but it would violate the member agreement if FSIJ allows everyone to use its vendor ID for such a program.

Claes Wallin (韋嘉誠) likes this.

Now it works!

$ /usr/local/bin/gnuk-emulation-setup # To generate flash image

From terminal A:

$ /usr/local/libexec/gnuk

From terminal B:

# usbip attach -r 127.0.0.1 -b 1-1

From terminal C:

$ gpg --card-status
Reader ...........: 234B:0000:FSIJ-1.2.5-EMULATED:0
Application ID ...: D276000124010200FFFEF1420A7A0000
Version ..........: 2.0
Manufacturer .....: unmanaged S/N range
Serial number ....: F1420A7A
Name of cardholder: [not set]
Language prefs ...: [not set]
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 3 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]
$

Yutaka Niibe at 2017-10-05T05:05:44Z