Custom USB VID/PID #88

Closed
opened 2025-05-13 00:49:16 +08:00 by daniel-starke · 3 comments

I suggest to assign a custom USB VID/PID to the Pico HSM to improve OS support
on the different systems instead of "emulating" other devices.

https://pid.codes/ offers free PIDs for open source projects.

This way it would be possible to extend OpenSC (Windows, Registry) and
PCSC (Linux, Info.plist) for example to support Pico HSM out of the box.

I suggest to assign a custom USB VID/PID to the Pico HSM to improve OS support on the different systems instead of "emulating" other devices. https://pid.codes/ offers free PIDs for open source projects. This way it would be possible to extend OpenSC (Windows, Registry) and PCSC (Linux, Info.plist) for example to support Pico HSM out of the box.

It will require

  1. OpenSC be updated by the devs
  2. Update user’s version once a new opensc version is released
  3. macOS ships its own tokend version which should be patched to add new vidpid
  4. Patch libccid/ifd to support new vidpid reader

IMHO this is far from “out of the box” concept. I remember there are vidpid for free but I wouldn’t be surprised if some require pay for.
It was never the purpose of this project having own vidpid, specially if other 3rd party client apps are needed.

It will require 1) OpenSC be updated by the devs 2) Update user’s version once a new opensc version is released 3) macOS ships its own tokend version which should be patched to add new vidpid 4) Patch libccid/ifd to support new vidpid reader IMHO this is far from “out of the box” concept. I remember there are vidpid for free but I wouldn’t be surprised if some require pay for. It was never the purpose of this project having own vidpid, specially if other 3rd party client apps are needed.

Sorry to bother you again, but for me it is unclear what you mean.
I only meant to suggest on how to improve OS support.
For me neither the Web Commissioner nor the Python script worked and I have not tried building it from scratch, so I am stuck with the vanilla VID/PID. But this is neither a proper combination nor directly supported by common interface drivers.
Therefore, I wanted to suggest using a proper custom VID/PID as default. This does not rule out the option of switching to other IDs.
And adding native support for Windows and Linux (I have now experience with Mac) seems quite straightforward to me only requiring a single pull request each. I am willing to support here if time is an issue. But I refrain from applying for the PID in your name.

Sorry to bother you again, but for me it is unclear what you mean. I only meant to suggest on how to improve OS support. For me neither the Web Commissioner nor the Python script worked and I have not tried building it from scratch, so I am stuck with the vanilla VID/PID. But this is neither a proper combination nor directly supported by common interface drivers. Therefore, I wanted to suggest using a proper custom VID/PID as default. This does not rule out the option of switching to other IDs. And adding native support for Windows and Linux (I have now experience with Mac) seems quite straightforward to me only requiring a single pull request each. I am willing to support here if time is an issue. But I refrain from applying for the PID in your name.

The thing is that nobody can distribute a software with a vidpid that do not own. So all the vidpid stuff is done at user side done freely by the user itself.
Commissioner should work as long as a vendor interface is detected by the OS.

The thing is that nobody can distribute a software with a vidpid that do not own. So all the vidpid stuff is done at user side done freely by the user itself. Commissioner should work as long as a vendor interface is detected by the OS.
Sign in to join this conversation.