Canokey-nrf52 编译的固件(2024年8月27日),适用于 nRF52840 Dongle and variants,我用的是E104-BT5040U
在Windows下使用nRF connect的Programmer工具刷入固件
HEX固件:canokey.hex,469KB
uf2固件:canokey_flash.uf2,334KB


刷好后将设备连到wsl进行初始化:具体参考微软官方说明和canokey-nrf52文档
先在powershell中安装usbipd(需要管理员权限):
winget install usbipd-win
usbipd list
列出设备和busid
usbipd bind --busid <busid>
usbipd attach --wsl --busid <busid>
在wsl中通过lsusb
查询设备是否连接成功

sudo apt install pcscd pcsc-tools pip install scriptor pcscd pcsc_scan
输出和readme说明中相同即可
使用canokey-nrf52仓库utils
文件夹下的device-config-init.sh
脚本进行初始化:
./device-config-init.sh 'Canokeys Canokey [OpenPGP PIV OATH] (00000000) 00 00'
输出和readme说明中相同即可
需要注意的是canokey-nrf52项目没有fido认证,fido认证需要很多钱;即使像opensk有fido认证,也涉及到batch attestation(self attestation)和证书问题(不会公开获得fido认证的证书密钥),每个人都生成随机的证书会有隐私问题,详见opensk讨论。
canokey-nrf52项目好像没有地方可以管理fido key;在微软账户中添加,显示只能在添加的设备上使用

参考: