RSA_sign(3) — Subroutines
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
The RSA_sign() function 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. The sigret must point to RSA_size(rsa) bytes of memory.
The 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.
The RSA_verify() function verifies that the signature sigbuf of size siglen matches a given message digest m of size m_len. The type denotes the message digest algorithm that was used to generate the signature. The rsa is the signer’s public key.
These functions conform to SSL, PKCS #1 v2.0.
RESTRICTIONS
Certain signatures with an improper algorithm identifier are accepted for compatibility with SSLeay 0.4.5.
RETURN VALUES
The RSA_sign() function returns 1 on success, 0 otherwise. The RSA_verify() function returns 1 on successful verification, 0 otherwise.
The error codes can be obtained by using the ERR_get_error() function.
HISTORY
The RSA_sign() and RSA_verify() functions are available in all versions of SSLeay and OpenSSL.
SEE ALSO
Functions: err(3), objects(3), rsa(3), RSA_private_encrypt(3), RSA_public_decrypt(3)