0

我想编写一个 c++ dll,从我的 USB 设备读取证书并将其发送到 Firefox 等浏览器。我应该提到我已经使用具有 2K EEPROM 的 ATMega32A 构建了我的 USB 设备,并且我在上面存储了一个示例证书。
我已经阅读了一些关于 PKCS#11 标准的信息,但我不知道从哪里开始。有人可以帮我吗?

4

3 回答 3

2

听起来您正在创建 PKI 硬件设备。我认为您最大的障碍将是访问 ATMega32。您可以在 ATMega 端实现一个接口,无论是 RS232-usb 桥接器、USB 大容量存储器,还是带有自定义驱动程序的专有接口。

一个简单的解决方案可能是使用 USB 大容量存储接口将证书呈现为伪磁盘上的文件。

采用自定义驱动程序路线,Firefox(和其他 Mozilla 产品)使用具有 PKI 硬件接口的库。请参阅NSSOpenSC。猜测可能有一个适用于 Windows 的 PKI / PKCS11 驱动程序 API 可以实现。

于 2012-10-07T08:47:09.760 回答
1

第一步:编写一个可以从USB设备读取数据的dll。你可以使用 Winusb。这将需要固件来支持它。

第二步:写一个可以给火狐添加证书的dll

步骤 3:将前面的步骤合并到一个 dll 中

如果您在某些特定问题上遇到困难,请写一个新问题并向我们展示您到目前为止所做的工作。

于 2012-10-07T08:08:34.760 回答
1

您不能“添加到 Firefox”,但可以将数据暴露给 Firefox 并使其可供使用。为此,您需要实现PKCS#11 API 并创建所谓的 PKCS#11 驱动程序(实现 PKCS#11 API 中定义的大约 70 个函数的用户模式 ​​DLL)。这些功能将与硬件设备对话以执行某些操作。然后将此 PKCS#11 DLL 插入 Firefox,Firefox 可以在您的设备上使用证书。

于 2012-10-08T06:24:50.913 回答