=head1 NAME
-rsa - RSA public key cryptosystem
+RSA_private_decrypt,
+RSA_private_encrypt,
+RSA_public_decrypt,
+RSA_sign,
+RSA_verify,
+RSA_sign_ASN1_OCTET_STRING,
+RSA_verify_ASN1_OCTET_STRING
+- RSA public key cryptosystem
=head1 SYNOPSIS
#include <openssl/rsa.h>
- RSA * RSA_new(void);
- void RSA_free(RSA *rsa);
-
- 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);
int RSA_private_encrypt(int flen, unsigned char *from,
int RSA_verify(int type, unsigned char *m, unsigned int m_len,
unsigned char *sigbuf, unsigned int siglen, RSA *rsa);
- RSA *RSA_generate_key(int num, unsigned long e,
- void (*callback)(int,int,void *), void *cb_arg);
-
- int RSA_check_key(RSA *rsa);
-
- int RSA_blinding_on(RSA *rsa, BN_CTX *ctx);
- void RSA_blinding_off(RSA *rsa);
-
- void RSA_set_default_method(const RSA_METHOD *meth);
- const RSA_METHOD *RSA_get_default_method(void);
- int RSA_set_method(RSA *rsa, const RSA_METHOD *meth);
- const RSA_METHOD *RSA_get_method(const RSA *rsa);
- RSA_METHOD *RSA_PKCS1_OpenSSL(void);
- RSA_METHOD *RSA_null_method(void);
- int RSA_flags(const RSA *rsa);
- RSA *RSA_new_method(ENGINE *engine);
-
- int RSA_print(BIO *bp, RSA *x, int offset);
- int RSA_print_fp(FILE *fp, RSA *x, int offset);
-
int RSA_sign_ASN1_OCTET_STRING(int dummy, unsigned char *m,
unsigned int m_len, unsigned char *sigret, unsigned int *siglen,
RSA *rsa);
These functions implement RSA public key encryption and signatures
as defined in PKCS #1 v2.0 [RFC 2437].
-The B<RSA> structure consists of the BIGNUM components B<n>, B<e>,
-B<d>, B<p>, B<q>, B<dmp1>, B<dmq1> and B<iqmp>, which represent public
-as well as private RSA keys.
-
-In public keys, the private exponent B<d> and the related secret
-values B<p>, B<q>, B<dmp1>, B<dmq1> and B<iqmp> are B<NULL>.
-
-B<p>, B<q>, B<dmp1>, B<dmq1> and B<iqmp> may be B<NULL> in private
-keys, but the RSA operations are much faster when these values are
-available.
+The B<RSA> structure represents public and private RSA keys.
Note that RSA keys may use non-standard B<RSA_METHOD> implementations,
either directly or by the use of B<ENGINE> modules. In some cases (eg. an
SSL, PKCS #1 v2.0
-=head1 PATENTS
-
-RSA was covered by a US patent which expired in September 2000.
-
=head1 SEE ALSO
-L<rsa(1)>, L<bn(3)>, L<dsa(3)>, L<dh(3)>,
+L<bn(3)>, L<dsa(3)>, L<dh(3)>,
L<rand(3)>, L<engine(3)>, L<RSA_new(3)>, L<RSA_set0_key(3)>
L<RSA_public_encrypt(3)>,
-L<RSA_sign(3)>, L<RSA_size(3)>,
+L<RSA_size(3)>,
L<RSA_generate_key(3)>,
L<RSA_check_key(3)>,
L<RSA_blinding_on(3)>,
L<RSA_set_method(3)>, L<RSA_print(3)>,
L<RSA_get_ex_new_index(3)>,
-L<RSA_private_encrypt(3)>,
L<RSA_sign_ASN1_OCTET_STRING(3)>,
L<RSA_padding_add_PKCS1_type_1(3)>