[erlang-questions] public_key:pem_decode/1 and public_key:verify/4

Ingela Andin <>
Tue Feb 1 12:31:00 CET 2011


Hi!

We are getting there thank you for your good work, and with a few
more adjustments we will include it.

I would like you to change the function pem_entry_encode in the following way

pem_entry_encode('SubjectPublicKeyInfo', Entity=#'RSAPublicKey'{}) ->
%% The function clause that you implemented for RSA

pem_entry_encode('SubjectPublicKeyInfo', {DsaInt,
Params=#'Dss-Parms'{}}) when is_integer(DsaInt) ->
%% The function clause that you implemented for DSA

pem_entry_encode('RSAPublicKey', Entity=#'RSAPublicKey'{}) ->
%% This clause I think should not need to be special but should be
able to go as default
%% and create an "BEGIN RSA PUBLIC KEY"  entry.

And finally include  the trivial patch from Jocke.

RSA-keys does not have any parameters hence the value  NULL  value
"<<5,0>>" you could make a
constante for it calling it DER_NULL.

And also a test case for the "BEGIN RSA PUBLIC KEY" maybe you could
use Jokes example.

Regards Ingela Erlang/OTP team - Ericsson AB

2011/1/31 Seth Falcon <>:
> Hi Ingela,
>
> I've updated my patch:
>
>    https://github.com/seth/otp/tree/sf/rsa_pub_key
>
> it now includes basic tests for decoding and encoding both RSA and DSA
> public keys in the SubjectPublicKeyInfo format.  After moving all
> lib/FOO/test directories with references to wx, I was able to run the
> tests for public_key on my OS X laptop :-)
>
> Here's the summary of where I ended up:
>
>    {ok, RSAPubPem} = file:read_file(filename:join(Datadir, "rsa_pub.pem")),
>    [{'SubjectPublicKeyInfo', _, _} = PubEntry1] =
>        public_key:pem_decode(RSAPubPem),
>    RSAPubKey = public_key:pem_entry_decode(PubEntry1),
>    true = check_entry_type(RSAPubKey, 'RSAPublicKey'),
>    PubEntry1 = public_key:pem_entry_encode('RSAPublicKey', RSAPubKey),
>
> Notes:
>
> - I haven't merged in the trivial patch from Joakim to allow reading
>  RSA public keys in "unwrapped" form where the PEM header has "RSA
>  Public Key".
>
> - RSA public key records get encoded into the SubjectPublicKeyInfo
>  wrapper form.  So to create the form that Joakim is dealing with,
>  one would have to use der_encode directly I believe.
>
> - When encoding RSAPublic keys, there is a parameter spot where it
>  seems the right thing to put is <<5, 0>>, but I wanted to mention
>  this in case I'm wrong about this being the right value for all RSA
>  public keys in SPKI form.
>
> Let me know what else I can do to help get this patch into the
> public_key module :-)
>
> Best,
>
> + seth
>
> --
> Seth Falcon | @sfalcon | http://userprimary.net/
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
>
>


More information about the erlang-questions mailing list