---
name: "libressl-RSA_sign"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-RSA_sign"
---

# libressl-RSA\_sign(3)

RSA signatures

## NAME

**RSA\_sign**, **RSA\_verify** – RSA signatures

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

**#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 SHA-1 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.

The error codes can be obtained by ERR\_get\_error(3).

## SEE ALSO

RSA\_meth\_set\_sign(3), RSA\_new(3), RSA\_private\_encrypt(3), RSA\_public\_decrypt(3)

## 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.
