You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.7 KiB
124 lines
3.7 KiB
=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 <openssl/rsa.h>
|
|
|
|
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. Normally they should not be called
|
|
from application programs.
|
|
|
|
However, 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<RSA_NO_PADDING> in order to implement OAEP with an encoding
|
|
parameter.
|
|
|
|
RSA_padding_add_xxx() encodes B<fl> bytes from B<f> so as to fit into
|
|
B<tlen> bytes and stores the result at B<to>. An error occurs if B<fl>
|
|
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 v2.0 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<fl> bytes at B<f> contain
|
|
a valid encoding for a B<rsa_len> byte RSA key in the respective
|
|
encoding method and stores the recovered data of at most B<tlen> bytes
|
|
(for B<RSA_NO_PADDING>: of size B<tlen>)
|
|
at B<to>.
|
|
|
|
For RSA_padding_xxx_OAEP(), B<p> points to the encoding parameter
|
|
of length B<pl>. B<p> may be B<NULL> if B<pl> 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
|
|
L<ERR_get_error(3)|ERR_get_error(3)>.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<RSA_public_encrypt(3)|RSA_public_encrypt(3)>,
|
|
L<RSA_private_decrypt(3)|RSA_private_decrypt(3)>,
|
|
L<RSA_sign(3)|RSA_sign(3)>, L<RSA_verify(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
|
|
|