como converter chave pública codificada base 64 (.pem) para bytearray?

1

Eu preciso converter um arquivo de chave pública codificado na Base 64 no formato .pem para uma matriz de bytes usando o openssl.

Precisa converter a chave pública no formato abaixo:

----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxl4aRnRMBB9GZrNgy6sy
seyIA3Ek3a1xg0b8gKrCSgnSjH+lqtBGwtzKqM020piE1q0YrzGpfQxNJ8HPRc0F
OlII7VKuCFGqEuLH2+kFJPUUdRqBr0iN/D8ADp9rLEL2Q4F7qM1t0z0IW6zD

-----END PUBLIC KEY----- 

para este formato:

48, -127, -97, 48, 13, 6, 9, 42, -122, 72, -122, -9, 13,...
    
por Praj 20.05.2016 / 07:12

1 resposta

5
sed -e '/----.*PUBLIC KEY----\|^[[:space:]]*$/d' praj.pem | 
    base64 -d | 
    hexdump -v -e '/1 "%02d, "' ; echo

Isso usa sed para remover as linhas em branco e linhas que contêm os marcadores BEGIN e END da chave pública, canaliza isso para base64 -d para decodificá-lo e canaliza isso para hexdump com um formato personalizado para imprime os bytes como números decimais separados por vírgula e espaço. Finalmente, echo é usado para garantir que a saída termine com uma nova linha ( \n ).

Saída:

48, -126, 01, 34, 48, 13, 06, 09, 42, -122, 72, -122, -9, 13, 01, 01, 01, 05, ...
    
por 20.05.2016 / 09:41

Tags