Как преобразовать ключ RSA с кодировкой X509 в кодировку PKCS1

Для контекста я пытаюсь использовать в M2Crypto вместо Python-RSA, но этот вопрос на самом деле не зависит от языка или библиотеки.

Если у меня есть открытый ключ RSA в формате X509 (начинается с ----BEGIN PUBLIC KEY---), что мне нужно сделать, чтобы преобразовать его в PKCS1 (начинается с ----BEGIN RSA PUBLIC KEY--- -) формат?

В этой ветке, кажется, описывается противоположное направление.


person bjmc    schedule 24.01.2014    source источник
comment
запустить его через какую-то подкоманду openssl?   -  person mcepl    schedule 31.01.2014


Ответы (1)


По сути, вам нужен OpenSSL (приложение для Linux). С OpenSSL вы можете запустить следующую команду для преобразования X509 в PKCS1:

openssl rsa -pubin -in x509_public.key  -RSAPublicKey_out > rsa_public.key

Мне пришлось извлечь SSL-сертификат и ключи PKCS1 из PFX-файла. Для этого я использовал следующие команды:

openssl pkcs12 -in pfx_file.pfx -clcerts -nokeys -out certificate.cer

(Извлечение сертификата)

openssl pkcs12 -in pfx_file.pfx -nocerts -nodes -out rsa_pair.key

(Извлечение пары ключей RSA)

openssl rsa -in rsa_pair.key -out rsa_private.key

(Извлечение закрытого ключа RSA)

openssl rsa -in rsa_pair.key -pubout -out x509_public.key

(Извлечение «неправильного» открытого ключа X509)

openssl rsa -pubin -in x509_public.key  -RSAPublicKey_out > rsa_public.key

(Наконец извлечение открытого ключа RSA-PKCS1)

Возможно, есть и лучшие способы, но я долго искал, чтобы добраться сюда. Я надеюсь, что я мог спасти других от этого долгого поиска в Интернете.

person TheFortium    schedule 30.04.2020