Questão Gerar arquivo de chave pública .pem RSA usando o módulo e o expoente da base 10?


Minha pergunta é tão simples quanto o título: dado o módulo e o expoente na base 10 de uma chave RSA pública, como posso gerar um arquivo .pem? (Estou usando o Unix). Obrigado.

Minhas desculpas se este é o fórum errado para esta pergunta, ou uma pergunta ruim completamente; Eu tentei googling extensa para nenhuma sorte e eu tenho zero experiência com RSA.


1


origem




Respostas:


Se você criar um arquivo de texto formatado em ASN1 contendo o módulo e o expoente (além de alguns outros bits), então você pode criar um arquivo PEM assim:

$ openssl asn1parse -genconf key.cnf -out key.der
$ openssl rsa -in key.der -inform der -out private.pem
$ openssl rsa -in key.der -inform der -out public.pem -pubout

Onde key.cnf contém os dados ASN1 e é algo como isto:

asn1=SEQUENCE:rsa_key

[rsa_key]
version=INTEGER:0
modulus=INTEGER:13671936028836425653
pubExp=INTEGER:65537
privExp=INTEGER:531444176792982513
p=INTEGER:3273361529
q=INTEGER:4176726557
e1=INTEGER:1295519345
e2=INTEGER:20202669
coeff=INTEGER:1526950891

Isso é tirado de este artigo, páginas 82-87 o que explica como o RSA funciona e cria um arquivo PEM como parte dessa explicação. O exemplo acima é descrito na página 86.

O acima inclui o expoente privado, mas deve dar-lhe um ponteiro para fazer o que você quer. Você pode encontrar man asn1parse útil.


1