我正在尝试开发一个调用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);
}
答案 0 :(得分:1)
这很可能涉及编写代码来替换@mozilla.org/nsCertificateDialogs;1
组件(实现nsICertificateDialogs
interface)。然后,您可以按照自己喜欢的方式实现getPKCS12FilePassword
方法。
更简单的方法是使用NSS中包含的pk12util
tool。除非真的需要通过xpcshell完成。