# Sortix nightly manual

This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.

# SYNOPSIS

**#include <openssl/rsa.h>**

*int*

**RSA_sign**(

*int type*,

*const unsigned char *m*,

*unsigned int m_len*,

*unsigned char *sigret*,

*unsigned int *siglen*,

*RSA *rsa*);

*int*

**RSA_verify**(

*int type*,

*const 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*using RSASSA-PKCS1-v1_5 as specified in RFC 3447. It stores the signature in

*sigret*and the signature size in

*siglen*.

*sigret*must point to

**RSA_size**(

*rsa*) bytes of memory. Note that PKCS #1 adds meta-data, placing limits on the size of the key that can be used. See RSA_private_encrypt(3) for lower-level operations.

*type*denotes the message digest algorithm that was used to generate

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

**RSA_verify**() returns 1 on successful verification.

# STANDARDS

SSL, PKCS #1 v2.0# HISTORY

**RSA_sign**() first appeared in SSLeay 0.4.4.

**RSA_verify**() first appeared in SSLeay 0.6.0. Both functions have been available since OpenBSD 2.4.