RSA_public_encrypt 3 2005-03-25 0.9.9-dev OpenSSL
NAME
RSA_public_encrypt, RSA_private_decrypt - RSA public key cryptography
LIBRARY
libcrypto, -lcrypto
SYNOPSIS
#include
int RSA_public_encrypt(int flen, unsigned char *from,
unsigned char *to, RSA *rsa, int padding);
int RSA_private_decrypt(int flen, unsigned char *from,
unsigned char *to, RSA *rsa, int padding);
DESCRIPTION
_R_S_A___p_u_b_l_i_c___e_n_c_r_y_p_t_(_) encrypts the fflleenn bytes at ffrroomm (usually a
session key) using the public key rrssaa and stores the ciphertext in
ttoo. ttoo must point to RSA_size(rrssaa) bytes of memory.
ppaaddddiinngg denotes one of the following modes:
-
RSA_PKCS1_PADDING
PKCS #1 v1.5 padding. This currently is the most widely used mode.
-
-
RSA_PKCS1_OAEP_PADDING
EME-OAEP as defined in PKCS #1 v2.0 with SHA-1, MGF1 and an empty
-
encoding parameter. This mode is recommended for all new applications.
-
RSA_SSLV23_PADDING
PKCS #1 v1.5 padding with an SSL-specific modification that denotes
-
that the server is SSL3 capable.
-
RSA_NO_PADDING
Raw RSA encryption. This mode should _o_n_l_y be used to implement
-
cryptographically sound padding modes in the application code.
Encrypting user data directly with RSA is insecure.
fflleenn must be less than RSA_size(rrssaa) - 11 for the PKCS #1 v1.5
based padding modes, less than RSA_size(rrssaa) - 41 for
RSA_PKCS1_OAEP_PADDING and exactly RSA_size(rrssaa) for RSA_NO_PADDING.
The random number generator must be seeded prior to calling
_R_S_A___p_u_b_l_i_c___e_n_c_r_y_p_t_(_).
_R_S_A___p_r_i_v_a_t_e___d_e_c_r_y_p_t_(_) decrypts the fflleenn bytes at ffrroomm using the
private key rrssaa and stores the plaintext in ttoo. ttoo must point
to a memory section large enough to hold the decrypted data (which is
smaller than RSA_size(rrssaa)). ppaaddddiinngg is the padding mode that
was used to encrypt the data.
RETURN VALUES
_R_S_A___p_u_b_l_i_c___e_n_c_r_y_p_t_(_) returns the size of the encrypted data (i.e.,
RSA_size(rrssaa)). _R_S_A___p_r_i_v_a_t_e___d_e_c_r_y_p_t_(_) returns the size of the
recovered plaintext.
On error, -1 is returned; the error codes can be
obtained by _E_R_R___g_e_t___e_r_r_o_r(3).
SSL, PKCS #1 v2.0
SEE ALSO
_E_R_R___g_e_t___e_r_r_o_r(3), _o_p_e_n_s_s_l___r_a_n_d(3), _o_p_e_n_s_s_l___r_s_a(3),
_R_S_A___s_i_z_e(3)
HISTORY
The ppaaddddiinngg argument was added in SSLeay 0.8. RSA_NO_PADDING is
available since SSLeay 0.9.0, OAEP was added in OpenSSL 0.9.2b.