[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