Preciso converter um arquivo de chave pública codificado em Base 64 no formato .pem em uma matriz de bytes usando openssl.
Precisa converter a chave pública do 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,...
Responder1
sed -e '/----.*PUBLIC KEY----\|^[[:space:]]*$/d' praj.pem |
base64 -d |
hexdump -v -e '/1 "%02d, "' ; echo
Isso é usado sed
para remover as linhas em branco e as linhas que contêm os marcadores BEGIN e END da chave pública, depois canaliza-as base64 -d
para decodificá-la e, em seguida, canaliza-as hexdump
com um formato personalizado para imprimir 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, ...