Я пытаюсь загрузить конкретный закрытый ключ, закодированный в двоичном формате DER
(PKCS#8
) в Ruby.Загрузите двоичный ключ PKCS # 8 в Ruby
Однако OpenSSL::PKey
не узнает об этом. Я могу заставить его работать, делая некоторые консольную работу и превращая его в PEM
как так:
openssl pkcs8 -inform DER -in file.key -passin pass:xxxxxxxx >private_key.pem
После этого ключ правильно может быть прочитан.
Однако, поскольку я хотел бы, чтобы весь процесс выполнялся в памяти вместо того, чтобы писать и читать файлы.
Итак, мой вопрос: возможно ли загружать секретные ключи из двоичного кодированного формата DER
в Ruby/OpenSSL?
Спасибо за ваше время,
Фернандо
Это неверно. Для PEM источник Ruby вызывает PEM_read_bio_RSAPrivateKey, который вызывает PEM_read_bio_PrivateKey, что да, обрабатывает PKCS # 8. Однако, когда DER, источник Ruby вызывает d2i_RSAPrivateKey_bio, который вызывает ASN1_item_i2d_bio (ASN1_ITEM_rptr (RSAPrivateKey), bp, rsa) (openssl-1.0.1m/crypto/rsa/rsa_asn1.c: ASN1_SEQUENCE_cb (RSAPrivateKey, rsa_cb) = {ASN1_SIMPLE (RSA , версия, LONG), ...), которая будет * не * читать PKCS # 8. DK-кодированный PKCS # 8 * не может быть загружен напрямую с помощью OpenSSL :: PKey :: RSA.new. –
Мой плохой. Я не знал, что реализация OpenSSL в ruby отличается от того, что сказано в документации OpenSSL ... –