Gnuk is an implementation of USB cryptographic token for GnuPG.
It conforms OpenPGP card specification, implements USB CCID protocol, and supports modern ECC, i.e., Ed25519 and X25519.
I started the project in 2010, and to enable better support, I joined GnuPG development. I had a talk in FOSDEM2012. It wasn't go well as I expected in 2012.
I needed to design my own free hardware design for reference hardware. That's FST-01.
I needed to design and implement True Random Number generator of my own. That's NeuG.
For better control of hardware resource, I develop a thread library named Chopstx.
In 2016, at OpenPGP.conf, I realized that people generally hesitate new hardware. Thus, in 2017, I modified Chopstx so that it can run on GNU/Linux as emulation. Now, a user can run Gnuk on normal GNU/Linux as an emulation, by USBIP, without real physical hardware device.
In short, my talk is: Everything is free software (firmware on the device, driver on host), and hardware has free hardware design, but that's not enough. Emulation is useful, hopefully.