我想编写一个c ++ dll,它从我的USB设备读取证书并将其发送到Firefox等浏览器。我应该提到我已经使用具有2K EEPROM的ATMega32A构建我的USB设备并且我存储了样本证书这一点。
我已经阅读了一些关于PKCS#11标准但我无法弄清楚从哪里开始。有谁可以帮我这个?
答案 0 :(得分:2)
听起来你正在创建一个PKI硬件设备。我认为你最大的障碍是访问ATMega32。您可以在ATMega端实现接口,无论是RS232-usb桥接器,USB大容量存储器,还是自定义驱动器的专有接口。
一个简单的解决方案可能是使用USB Mass Storage接口将证书作为文件呈现在伪磁盘上。
采用自定义驱动程序路径,Firefox(和其他Mozilla产品)使用具有PKI硬件接口的库。请参阅NSS和OpenSC。 有人猜测,你可以实现一个适用于Windows的PKI / PKCS11驱动程序API。
答案 1 :(得分:1)
步骤1:编写一个可以从USB设备读取数据的DLL。你可以使用Winusb。这将需要固件支持它。
第2步:编写一个可以向Firefox添加证书的DLL
第3步:将之前的步骤合并为一个dll
如果您遇到某些具体问题,请写一个新问题并告诉我们您到目前为止所做的工作。
答案 2 :(得分:1)
您无法“添加到Firefox”,但您可以将数据公开给Firefox并使其可供使用。为此,您需要实现 PKCS#11 API并创建所谓的PKCS#11驱动程序(用户模式DLL,它实现了PKCS#11 API中定义的70个左右的函数)。这些功能将与硬件设备通信以执行某些操作。然后将此PKCS#11 DLL插入Firefox,Firefox可以在您的设备上使用证书。