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

1

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.

    
por nanogru 18.04.2017 / 00:43

1 resposta

1

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

em que key.cnf contém os dados ASN1 e se parece com isso:

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 é retirado de este artigo, páginas 82-87 , que explica como o RSA funciona e cria um arquivo PEM como parte dessa explicação. O exemplo acima está 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.

    
por 23.06.2017 / 01:14