USB vendor ID for emulation
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:
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] $