带有 WebExtension 的 OpenSession (pkcs11)

OpenSession with WebExtension (pkcs11)

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

我正在使用此 api 与我的开斋节卡片进行通信并从中获取插槽。 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/pkcs11

是否可以通过某种方式在 WebExtension 插件中使用此插槽打开会话? 因为这个pkcs11好像还不支持。 我想调用 C_OpenSession 之类的函数,然后调用 C_Login.

感谢帮助

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

The pkcs11 API enables an extension to enumerate PKCS #11 security modules, and to make them accessible to the browser as sources of keys and certificates.

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

曾经有 window.crypto.signText API 可用于轻松创建签名,但 Mozilla killed it in Firefox 33. They didn't see it as a big deal because PKCS#11 signing could be implemented with extension and they provided signTextJS extension as a proof. Sadly Mozilla killed it in Firefox 57 当他们迁移到 WebExtensions 并删除了对基于 XPCOM 的附加组件的支持时。

如果你现在想在 Firefox 中使用 PKCS#11 API 那么你需要 use/create 扩展,它将产生本地进程并通过 native messaging or you'll need to use/create application which will spawn local web server and communicate with it via web requests or web sockets.[=18 与之通信=]