=pod =head1 NAME RSA_padding_add_PKCS1_type_1, RSA_padding_check_PKCS1_type_1, RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2, RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP, RSA_padding_add_SSLv23, RSA_padding_check_SSLv23, RSA_padding_add_none, RSA_padding_check_none - Asymmetric encryption padding =head1 SYNOPSIS #include int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, unsigned char *f, int fl); int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, unsigned char *f, int fl, int rsa_len); int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, unsigned char *f, int fl); int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, unsigned char *f, int fl, int rsa_len); int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, unsigned char *f, int fl, unsigned char *p, int pl); int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, unsigned char *f, int fl, int rsa_len, unsigned char *p, int pl); int RSA_padding_add_SSLv23(unsigned char *to, int tlen, unsigned char *f, int fl); int RSA_padding_check_SSLv23(unsigned char *to, int tlen, unsigned char *f, int fl, int rsa_len); int RSA_padding_add_none(unsigned char *to, int tlen, unsigned char *f, int fl); int RSA_padding_check_none(unsigned char *to, int tlen, unsigned char *f, int fl, int rsa_len); =head1 DESCRIPTION The RSA_padding_xxx_xxx() functions are called from the RSA encrypt, decrypt, sign and verify functions. They can also be called directly to implement padding for other asymmetric ciphers. RSA_padding_add_PKCS1_OAEP() and RSA_padding_check_PKCS1_OAEP() may be used in an application combined with B in order to implement OAEP with an encoding parameter. RSA_padding_add_xxx() encodes B bytes from B so as to fit into B bytes and stores the result at B. An error occurs if B does not meet the size requirements of the encoding method. The following encoding methods are implemented: =over 4 =item PKCS1_type_1 PKCS #1 v2.0 EMSA-PKCS1-v1_5 (PKCS #1 v1.5 block type 1); used for signatures =item PKCS1_type_2 PKCS #1 v2.0 EME-PKCS1-v1_5 (PKCS #1 v1.5 block type 2) =item PKCS1_OAEP PKCS #1 EME-OAEP =item SSLv23 PKCS #1 EME-PKCS1-v1_5 with SSL-specific modification =item none simply copy the data =back The random number generator must be seeded prior to calling RSA_padding_add_xxx(). RSA_padding_check_xxx() verifies that the B bytes at B contain a valid encoding for a B byte RSA key in the respective encoding method and stores the recovered data of at most B bytes at B. For RSA_padding_xxx_OAEP(), B

points to the encoding parameter of length B. B

may be B if B is 0. =head1 RETURN VALUES The RSA_padding_add_xxx() functions return 1 on success, 0 on error. The RSA_padding_check_xxx() functions return the length of the recovered data, -1 on error. Error codes can be obtained by calling ERR_get_error(3). =head1 SEE ALSO RSA_public_encrypt(3), RSA_private_decrypt(3), RSA_sign(3), RSA_verify(3) =head1 HISTORY RSA_padding_add_PKCS1_type_1(), RSA_padding_check_PKCS1_type_1(), RSA_padding_add_PKCS1_type_2(), RSA_padding_check_PKCS1_type_2(), RSA_padding_add_SSLv23(), RSA_padding_check_SSLv23(), RSA_padding_add_none() and RSA_padding_check_none() appeared in SSLeay 0.9.0. RSA_padding_add_PKCS1_OAEP() and RSA_padding_check_PKCS1_OAEP() were added in OpenSSL 0.9.2b. =cut