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: -)