PGP public key decoding

Serge saleyn@REDACTED
Fri Jul 9 21:08:47 CEST 2021


Does anyone have an idea how to decode a PGP public key using public_key
module?

I am doing this:

1> {ok, B} = file:read_file(PGPPubKeyFile),
2> B1 = re:replace(B, <<"-----BEGIN PGP PUBLIC KEY BLOCK-----">>, <<"-----BEGIN
RSA PUBLIC KEY-----">>, [{return, binary}]),
3> B2 = re:replace(B1,  <<"-----END PGP PUBLIC KEY BLOCK-----">>,   <<"-----END
RSA PUBLIC KEY-----">>,   [{return, binary}]),
4> B3 = re:replace(B2,  <<"\n.+(\n-----END)">>,    <<"\\1">>, [{return,
binary}]), % Remove checksum
5> B4 = re:replace(B3,  <<"\nVersion:.+\n\r?\n">>, <<"\n">>,  [{return,
binary}]), % Remove version
6> [Entry] = public_key:pem_decode(B4),
7> public_key:pem_entry_decode(Entry).

** exception error: no match of right hand side value
{error,{asn1,{{wrong_tag,{{expected,16},

        {got,131097,{131097,<<"\r">>}}}},


[{'OTP-PUB-KEY',match_tags,2,


            [{file,"OTP-PUB-KEY.erl"},{line,23999}]},


{'OTP-PUB-KEY',dec_RSAPublicKey,2,


            [{file,"OTP-PUB-KEY.erl"},{line,2957}]},


{'OTP-PUB-KEY',decode,2,


            [{file,"OTP-PUB-KEY.erl"},{line,1232}]},


{public_key,der_decode,2,


         [{file,"public_key.erl"},{line,318}]},


{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,689}]},


{shell,exprs,7,[{file,"shell.erl"},{line,686}]},


{shell,eval_exprs,7,[{file,"shell.erl"},{line,642}]},


{shell,eval_loop,3,[{file,"shell.erl"},{line,627}]}]}}}

    in function  public_key:der_decode/2 (public_key.erl, line 322)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210709/efd4704d/attachment.htm>


More information about the erlang-questions mailing list