[erlang-questions] public_key usage...

Ingela Andin ingela@REDACTED
Tue Apr 26 08:53:42 CEST 2011


Hi!

2011/4/26 Jesper Pettersson <jesper.pettersson@REDACTED>:
> 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().

Hoops! Yes the documentation is wrong *Blush*, I will correct it.

> 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.


To Peter: We plan to put some example use cases in the users guide.
For now perhaps the test suite might help you if you need examples.

Regards Ingela Erlang/OTP team - Ericsson AB



More information about the erlang-questions mailing list