Converter chave pública formatada em PEM para DER [duplicado]

2

Eu tenho uma chave pública que é ASN.1 DER formatada abaixo:

    0:d=0  hl=3 l= 181 cons: SEQUENCE          
    3:d=1  hl=3 l= 144 cons: SEQUENCE          
    6:d=2  hl=2 l=   0 prim: PRINTABLESTRING   :
    8:d=2  hl=3 l= 139 prim: OCTETSTRING      [HEXDUMP]: <Some Data>
  150:d=1  hl=2 l=  32 prim: OCTET STRING     [HEX DUMP]:<some data>

Eu tenho alguma chave pública no formato PEM. Como mudar isso para o formato de chave listado acima?

    
por Prem 09.06.2016 / 13:57

1 resposta

6

Um arquivo PEM é simplesmente um arquivo DER que foi codificado em Base64. Para converter de um para outro, você pode usar openssl com os argumentos -inform e -outform . Cada um pega um dos PEM , DER ou NET (um formato datado do Netscape, que você pode ignorar).

Você pode alterar uma chave de um formato para outro com o comando openssl rsa (supondo que seja uma chave RSA, é claro):

$ openssl rsa -pubin -inform PEM -in <filename of key in PEM format> -outform DER -out <filename of key in DER format>
writing RSA key

Você pode visualizar a codificação ASN.1 desse arquivo com:

$ openssl asn1parse -inform DER -in <filename of DER file>
    0:d=0  hl=3 l= 159 cons: SEQUENCE          
    3:d=1  hl=2 l=  13 cons: SEQUENCE          
    5:d=2  hl=2 l=   9 prim: OBJECT            :rsaEncryption
   16:d=2  hl=2 l=   0 prim: NULL              
   18:d=1  hl=3 l= 141 prim: BIT STRING

Naturalmente, isso não é útil para você se a sua chave não for uma chave RSA, mas como sua pergunta não estipula o tipo de chave, adivinhei: -)

    
por 09.06.2016 / 18:36

Tags