RSA_sign(3)                 OpenSSL                 RSA_sign(3)





NAME
       RSA_sign, RSA_verify - RSA signatures

SYNOPSIS
        #include <openssl/rsa.h>

        int RSA_sign(int type, unsigned char *m, unsigned int m_len,
           unsigned char *sigret, unsigned int *siglen, RSA *rsa);

        int RSA_verify(int type, unsigned char *m, unsigned int m_len,
           unsigned char *sigbuf, unsigned int siglen, RSA *rsa);

DESCRIPTION
       RSA_sign() signs the message digest m of size m_len
       using the private key rsa as specified in PKCS #1 v2.0.
       It stores the signature in sigret and the signature size
       in siglen. sigret must point to RSA_size(rsa) bytes of
       memory.

       type denotes the message digest algorithm that was used
       to generate m. It usually is one of NID_sha1,
       NID_ripemd160 and NID_md5; see objects(3) for details.
       If type is NID_md5_sha1, an SSL signature (MD5 and SHA1
       message digests with PKCS #1 padding and no algorithm
       identifier) is created.

       RSA_verify() verifies that the signature sigbuf of size
       siglen matches a given message digest m of size m_len.
       type denotes the message digest algorithm that was used
       to generate the signature.  rsa is the signer's public
       key.

RETURN VALUES
       RSA_sign() returns 1 on success, 0 otherwise.  RSA_ver-
       ify() returns 1 on successful verification, 0 otherwise.

       The error codes can be obtained by ERR_get_error(3).

BUGS
       Certain signatures with an improper algorithm identifier
       are accepted for compatibility with SSLeay 0.4.5 :-)

CONFORMING TO
       SSL, PKCS #1 v2.0

SEE ALSO
       ERR_get_error(3), objects(3), rsa(3), RSA_pri-
       vate_encrypt(3), RSA_public_decrypt(3)

HISTORY
       RSA_sign() and RSA_verify() are available in all ver-
       sions of SSLeay and OpenSSL.



0.9.7c                     2002-09-25               RSA_sign(3)
