RSA_private_encrypt(3)RSA_private_encrypt(3)NAME
RSA_private_encrypt, RSA_public_decrypt - Low level signature opera‐
tions
SYNOPSIS
#include <openssl/rsa.h>
int RSA_private_encrypt(
int flen, unsigned char *from, unsigned char *to, RSA *rsa, int
padding ); int RSA_public_decrypt(
int flen, unsigned char *from, unsigned char *to, RSA *rsa, int
padding );
DESCRIPTION
These functions handle RSA signatures at a low level.
The RSA_private_encrypt() function signs the flen bytes at from (usu‐
ally a message digest with an algorithm identifier) using the private
key rsa and stores the signature in to. The to must point to
RSA_size(rsa) bytes of memory.
The padding denotes one of the following modes: PKCS #1 v1.5 padding.
This function does not handle the algorithmIdentifier specified in PKCS
#1. When generating or verifying PKCS #1 signatures, the RSA_sign() and
RSA_verify() functions should be used. Raw RSA signature. This mode
should only be used to implement cryptographically sound padding modes
in the application code. Signing user data directly with RSA is inse‐
cure.
The RSA_public_decrypt() function recovers the message digest from the
flen bytes long signature at from using the signer's public key rsa.
The to must point to a memory section large enough to hold the message
digest (which is smaller than RSA_size(rsa) - 11). The padding is the
padding mode that was used to sign the data.
RETURN VALUES
The RSA_private_encrypt() function returns the size of the signature
(i.e., RSA_size(rsa)). The RSA_public_decrypt() function returns the
size of the recovered message digest.
On error, -1 is returned; the error codes can be obtained by using the
ERR_get_error() function.
HISTORY
The padding argument was added in SSLeay 0.8. RSA_NO_PADDING is avail‐
able since SSLeay 0.9.0.
SEE ALSO
Functions: err(3), rsa(3), RSA_sign(3), RSA_verify(3)RSA_private_encrypt(3)