[erlang-questions] public_key usage...

Jesper Pettersson jesper.pettersson@REDACTED
Tue Apr 26 08:27:27 CEST 2011


On Tue, Apr 26, 2011 at 12:05 AM, Peter W. Morreale <pmorreale@REDACTED>wrote:


> >         I'm having a very difficult time getting the following to
> >         work:
> >                 Cert2 = "-----BEGIN
> CERTIFICATE-----\nMIIB8TCCAVqgAwIBAgIFAIxwZnIwDQYJKoZIhvcNAQEEBQAwLjELMAkGA1UEBhMCREUxEjAQBgNVBAoTCVNTT0NpcmNsZTELMAkGA1UEAxMCQ0EwHhcNMDkwMjIyMTUwNDI0WhcNMTEwNTIyMTUwNDI0WjBLMQswCQYDVQQGEwJERTESMBAGA1UEChMJU1NPQ2lyY2xlMQwwCgYDVQQLEwNpZHAxGjAYBgNVBAMTEWlkcC5zc29jaXJjbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbzDRkudC/aC2gMqRVVaLdPJJEwpFB4o71fR5bnNd2ocnnNzJ/W9CoCargzKx+EJ4Nm3vWmX/IZRCFvrvy9C78fP1cmt6Sa091K9luaMAyWn7oC8h/YBXH7rB42tdvWLY4Kl9VJy6UCclvasyrfKx+SR4KU6zCsM622Kvp5wW67QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGyaydfJHDkm77C39gq9bBb7OqK8OXEUTbIMp8PDJZzIf9QkpkE7gHGcWctRKi7fNdONulc5kn2K2nbvCGrbWsWQvr/DA0bjkBrK8OeWpRhLe7fl+JUgsErMcDIzRTmjNpZzUZp+WESRHV1j3SIcfY4tJM2uMt4Sc/afVnl5P6wL\n-----END
> CERTIFICATE-----",
> >
> >                 Text = "some text",
> >
> >                 Pb = list_to_binary(Cert2),
> >                 PemEntries = public_key:pem_decode(Pb),
> >                 RSAPubKey = public_key:pem_entry_decode(hd(PemEntries)),
> >
> >                 Msg = list_to_binary(Text),
> >                 C = public_key:sign(Msg, sha, RSAPubKey),
> >                 io:fwrite("sign: ~p~n", [C]),
> >
> >         I'm generating "escript: exception error: function_clause".
>

First of all, the documentation of public_key:sign/3 found at
http://www.erlang.org/doc/man/public_key.html#sign-3 is wrong. You should
always sign with a private key so that every holder of your public key can
verify the signature. The source code of public_key is correct though. There
the type for signing is private_key().

Secondly, your variable RSAPubKey is a 'Certificate' record containing the
public key data. The public_key:sign/3 function requires a 'RSAPrivateKey'
or a 'DSAPrivateKey' record as its third argument. This is why you get your
function_clause error.

-- 
Jesper Pettersson
Klarna AB
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110426/610ef70a/attachment.htm>


More information about the erlang-questions mailing list