从命令行调用nsIX509CertDB.nsIX509CertDB时失败

时间:2012-05-16 07:03:57

标签: javascript certificate xpcom x509 nss

我正在尝试开发一个调用nsIX509CertDB.nsIX509CertDB的FF扩展。从xpcshell调用此函数时,我收到错误0x80004005(NS_ERROR_FAILURE)。我怀疑它失败了,因为在xpcshell环境中我无法提示输入密码。有没有办法从命令行提供它?

我的代码:

if(nsIFile != null && nsIFile.exists()) {
        var certDB = Cc["@mozilla.org/security/x509certdb;1"]
                                        .getService(Ci.nsIX509CertDB);
        certDB.importPKCS12File(null, nsIFile);
}

1 个答案:

答案 0 :(得分:1)

这很可能涉及编写代码来替换@mozilla.org/nsCertificateDialogs;1组件(实现nsICertificateDialogs interface)。然后,您可以按照自己喜欢的方式实现getPKCS12FilePassword方法。

更简单的方法是使用NSS中包含的pk12util tool。除非真的需要通过xpcshell完成。