1
我想通过Firefox插件访问当前连接的加密模块。Firefox Addon PKCS#11 API
我发现了一些接口,看起来像我可以访问模块,插槽和令牌(1→2→3→4),但我怎么能访问存储在这样一个令牌的证书的公钥呢?
是否有这样的API甚至可用于插件?
我想通过Firefox插件访问当前连接的加密模块。Firefox Addon PKCS#11 API
我发现了一些接口,看起来像我可以访问模块,插槽和令牌(1→2→3→4),但我怎么能访问存储在这样一个令牌的证书的公钥呢?
是否有这样的API甚至可用于插件?
nsIX509CertDB.idl提供了访问所有存储的证书的手段,因此也是通过加密模块访问的证书。使用tokenName属性过滤证书应该可行。
这里是枚举所有证书的代码段:
var certDB = chrome.Cc["@mozilla.org/security/x509certdb;1"].getService(chrome.Ci.nsIX509CertDB);
var certs = certDB.getCerts();
var enumerator = certs.getEnumerator();
var s = "";
while (enumerator.hasMoreElements()) {
var cert = enumerator.getNext().QueryInterface(chrome.Ci.nsIX509Cert);
if (cert.tokenName.equals("Your-token-name"))
s += cert.tokenName + " # ";
}
令牌的名称可以通过模块名通过使用发现:nsIPKCS11ModuleDB.listModules()→nsIPKCS11Module.listSlots()→nsIPKCS11Slot.getToken()→nsIPK11Token.tokenName
[nsIX509CertDB.idl] (http://mxr.mozilla.org/mozilla-central/source/security/manager/ssl/public/nsIX509CertDB.idl)对我来说看起来很有希望,明天我会研究它。 – 2015-03-02 19:10:02