PGP public key decoding

Serge saleyn@REDACTED
Mon Jul 12 03:12:15 CEST 2021


I followed the key re-formatting advice mentioned here:
https://stackoverflow.com/questions/10966256/erlang-importing-gpg-public-key

However, as shown, public_key:pem_entry_decode/1 fails.

On Fri, Jul 9, 2021 at 7:43 PM Max Lapshin <max.lapshin@REDACTED> wrote:

> https://datatracker.ietf.org/doc/html/rfc4880
>
> 1. maybe it is not base64, but radix64 and it could be another thing?
> 2. is it really ASN?
>
> On Fri, Jul 9, 2021 at 10:09 PM Serge <saleyn@REDACTED> wrote:
> >
> > 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/20210711/6d789fbc/attachment.htm>


More information about the erlang-questions mailing list