Ошибка при вызове nsIX509CertDB.nsIX509CertDB из командной строки

Я пытаюсь разработать расширение FF, которое вызывает nsIX509CertDB.nsIX509CertDB. При вызове этой функции из оболочки xpcs я всегда получаю сообщение об ошибке 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 ответ

Решение

Скорее всего, это будет связано с написанием кода для замены @mozilla.org/nsCertificateDialogs;1 компонент (реализация nsICertificateDialogs интерфейс). Тогда вы могли бы реализовать getPKCS12FilePassword метод, как вам нравится.

Более простой подход будет использовать pk12util инструмент включен в NSS. Если, конечно, это не нужно делать через xpcshell.

Другие вопросы по тегам