2015-05-08 7 views
2

Я создал PDU PFX, используя библиотеку java bouncycastle. Внутри PDU PFX есть два сертификата и два зашифрованных секретных ключа. Все содержимое используется как содержимое данных PKCS # 7 (т. Е. Нет шифрования, хранится в виде октетных строк). Я организовал элементы в соответствии с рекомендациями PKCS № 12 (RFC 7292 Section 5). Затем я написал кодированный байтовый массив DER в файл.Как импортировать файл .pfx, который был создан без пароля?

Я открыл файл в шестнадцатеричном редакторе и увидел, что структура объекта в порядке. Я также прочитал содержимое файла и создал из него объект PFX bouncycastle. Но когда я пытаюсь открыть файл .pfx из своей файловой системы, мастер импорта сертификатов запрашивает пароль для закрытого ключа. Я не использовал пароль для создания объекта PFX. Я попытался использовать пустую строку и пароль, используемые для шифрования закрытых ключей, но они не работали. Он показывает «Введен неверный пароль».

Что-то я пропустил здесь? Как я могу получить пароль для импорта сертификатов?

ответ

1

В документе RFC 7292, раздел 4.1, стр. 41, описаны детали AuthenticatedSafe. AutthenticatedSafe - это последовательность ContentInfo, которая может быть одной из трех типов.

AuthenticatedSafe ::= SEQUENCE OF ContentInfo 
-- Data if unencrypted 
-- EncryptedData if password-encrypted 
-- EnvelopedData if public key-encrypted 

Сделайте ваши данные authenticatedSafe в EncryptedData, где необходимо зашифровать значение BERencoded из AuthenticatedSafe с SecretKey генерируемой из пароля вы будете давать, используя SecretKeyFactory и PBEParameterSpec.

Надеюсь, что это вам поможет. Приветствия !!!

Смежные вопросы