使用WebExtension的OpenSession(pkcs11)

时间:2018-01-18 19:59:43

标签: javascript mozilla pkcs#11

我正在尝试对Mozilla进行Web扩展,后者将使用pkcs11签名,加密或验证文档,邮件。

我正在使用这个api与我的eid卡通信并从他们那里获得插槽。 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/pkcs11

在WebExtension插件中使用此插槽的OpenSession是否可行? 因为这个pkcs11似乎还没有支持它。 我想调用一些函数,如C_OpenSession,然后调用C_Login。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

现在Mozilla中PKCS#11 javascript API的唯一目的是注册和取消注册Firefox可用的PKCS#11库。它甚至在documentation中声明:

  

pkcs11 API使扩展能够枚举PKCS#11安全模块,并使其可以作为密钥和证书的来源访问浏览器。

Firefox使用已注册的PKCS#11库来访问客户端SSL证书。 AFAIK没有公共JavaScript API,允许您调用这些模块提供的其他PKCS#11函数(例如C_OpenSessionC_Login)。

以前有window.crypto.signText API可用于轻松创建签名,但Mozilla killed it in Firefox 33。他们并不认为这是一个大问题,因为PKCS#11签名可以通过扩展实现,他们提供signTextJS extension作为证据。遗憾的是Mozilla killed it in Firefox 57他们迁移到WebExtensions并删除了对基于XPCOM的附加组件的支持。

如果你想现在使用Firefox的PKCS#11 API,你需要使用/ create扩展,它将产生本地进程并通过native messaging与之通信,或者你需要使用/创建应用程序它将产生本地Web服务器并通过web requests or web sockets与它通信。