1=pod 2 3=head1 NAME 4 5RSA_sign, RSA_verify - RSA signatures 6 7=head1 SYNOPSIS 8 9 #include <openssl/rsa.h> 10 11 int RSA_sign(int type, const unsigned char *m, unsigned int m_len, 12 unsigned char *sigret, unsigned int *siglen, RSA *rsa); 13 14 int RSA_verify(int type, const unsigned char *m, unsigned int m_len, 15 unsigned char *sigbuf, unsigned int siglen, RSA *rsa); 16 17=head1 DESCRIPTION 18 19RSA_sign() signs the message digest B<m> of size B<m_len> using the 20private key B<rsa> as specified in PKCS #1 v2.0. It stores the 21signature in B<sigret> and the signature size in B<siglen>. B<sigret> 22must point to RSA_size(B<rsa>) bytes of memory. 23Note that PKCS #1 adds meta-data, placing limits on the size of the 24key that can be used. 25See L<RSA_private_encrypt(3)|RSA_private_encrypt(3)> for lower-level 26operations. 27 28B<type> denotes the message digest algorithm that was used to generate 29B<m>. It usually is one of B<NID_sha1>, B<NID_ripemd160> and B<NID_md5>; 30see L<objects(3)|objects(3)> for details. If B<type> is B<NID_md5_sha1>, 31an SSL signature (MD5 and SHA1 message digests with PKCS #1 padding 32and no algorithm identifier) is created. 33 34RSA_verify() verifies that the signature B<sigbuf> of size B<siglen> 35matches a given message digest B<m> of size B<m_len>. B<type> denotes 36the message digest algorithm that was used to generate the signature. 37B<rsa> is the signer's public key. 38 39=head1 RETURN VALUES 40 41RSA_sign() returns 1 on success, 0 otherwise. RSA_verify() returns 1 42on successful verification, 0 otherwise. 43 44The error codes can be obtained by L<ERR_get_error(3)|ERR_get_error(3)>. 45 46=head1 BUGS 47 48Certain signatures with an improper algorithm identifier are accepted 49for compatibility with SSLeay 0.4.5 :-) 50 51=head1 CONFORMING TO 52 53SSL, PKCS #1 v2.0 54 55=head1 SEE ALSO 56 57L<ERR_get_error(3)|ERR_get_error(3)>, L<objects(3)|objects(3)>, 58L<rsa(3)|rsa(3)>, L<RSA_private_encrypt(3)|RSA_private_encrypt(3)>, 59L<RSA_public_decrypt(3)|RSA_public_decrypt(3)> 60 61=head1 HISTORY 62 63RSA_sign() and RSA_verify() are available in all versions of SSLeay 64and OpenSSL. 65 66=cut 67