У меня есть закрытый ключ, созданный с помощью OpenSSL и зашифрованный с помощью RSA:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQILJ8rNTk54VICAggA
MBQGCCqGSIb3DQMHBAiXuThuf12hMwSCBMhrm8H2j7yzLBOIvSWbLoyUmIn7e9zA
6PLDzj1dos+h+wAkPN0IgJlkdoBBXlnF7tzGdoctOYOKiu/p+HLzMnvHaDfNSFwz
5zx4yyZsKtf90gT6IVuJy7TMiLK3gk4gdZJc820OeRr1FjdRV3iVpTXbVfpwG/B3
IbV0PX3ZaHeR1m8vWI0/XQB7ZL7lLT+3MO66X/PAMTPA9joFMxuPFasIb2uXSqe/
CJNOyY4iW89uYHFiOe53e4ggUdT/rupoR4OSNKKEH5f1y+FIuH1xNvlmi14hJn+k
KOOi89vVIcvh4abCM+jhYwpPOGB8Sz2bAXsYocgZPvKtKakHlis7RcSsd5Usx9Nt
tgQ=
-----END ENCRYPTED PRIVATE KEY-----
И я сохранил его в user.key
файле.
На самом деле я 'm реализация проекта CMS для шифрования и дешифрования в target-c.Теперь я пытаюсь расшифровать файл моего зашифрованного контейнера, используя сертификаты, закрытый ключ и т. Д. Я немного запутался, какой метод из OpenSSL я должен выбрать, чтобы загрузить вышеупомянутый ключ в объект EVP_PKEY
.
Предлагаются следующие форматы:
- FORMAT_ASN1
- FORMAT_PEM
- FORMAT_PKCS12
- FORMAT_MSBLOB
- FORMAT_PVK
Я знаю, что это не PEM
, а PKCS12
.Я бы предположил ASN1
или PVK
, но я действительно не знаю, и я не нашел никакой дополнительной информации по этому вопросу в документе OpenSSL.
Может кто-нибудь сказать мне, пожалуйста, какой формат имеет вышеупомянутый ключ?
РЕДАКТИРОВАТЬ: Чтобы задать мой вопрос немного больше: у меня есть вышеупомянутый ключ загружен в BIO
.Я могу прочитать это BIO
с BIO_read(keybio, ...)
успешно, и он содержит ключ (в ascii).Теперь я хочу получить EVP_PKEY
из этого BIO
.Я пытался ...
EVP_PKEY *key = PEM_read_bio_PrivateKey(keybio, NULL, 0, NULL);
... но это не работает.Когда я вызываю это, он просит меня ввести фразу-пароль в консоли, и когда я делаю это, ключ - NULL
.: - /