From eca4feb580cffd6af474f599efe3fe99505a525c Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Tue, 20 Jun 2006 17:32:05 +0000 Subject: Importing OpenSSL 0.9.8b svn path=/openssl/vendor/current/CHANGES; revision=1 --- openssl/vendor/current/doc/crypto/rsa.pod | 123 ++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 openssl/vendor/current/doc/crypto/rsa.pod (limited to 'openssl/vendor/current/doc/crypto/rsa.pod') diff --git a/openssl/vendor/current/doc/crypto/rsa.pod b/openssl/vendor/current/doc/crypto/rsa.pod new file mode 100644 index 00000000..45ac53ff --- /dev/null +++ b/openssl/vendor/current/doc/crypto/rsa.pod @@ -0,0 +1,123 @@ +=pod + +=head1 NAME + +rsa - RSA public key cryptosystem + +=head1 SYNOPSIS + + #include + #include + + 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, + unsigned char *to, RSA *rsa,int padding); + int RSA_public_decrypt(int flen, unsigned char *from, + unsigned char *to, RSA *rsa,int padding); + + int RSA_sign(int type, unsigned char *m, unsigned int m_len, + unsigned char *sigret, unsigned int *siglen, RSA *rsa); + int RSA_verify(int type, unsigned char *m, unsigned int m_len, + unsigned char *sigbuf, unsigned int siglen, RSA *rsa); + + int RSA_size(const 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_SSLeay(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_get_ex_new_index(long argl, char *argp, int (*new_func)(), + int (*dup_func)(), void (*free_func)()); + int RSA_set_ex_data(RSA *r,int idx,char *arg); + char *RSA_get_ex_data(RSA *r, int idx); + + int RSA_sign_ASN1_OCTET_STRING(int dummy, unsigned char *m, + unsigned int m_len, unsigned char *sigret, unsigned int *siglen, + RSA *rsa); + int RSA_verify_ASN1_OCTET_STRING(int dummy, unsigned char *m, + unsigned int m_len, unsigned char *sigbuf, unsigned int siglen, + RSA *rsa); + +=head1 DESCRIPTION + +These functions implement RSA public key encryption and signatures +as defined in PKCS #1 v2.0 [RFC 2437]. + +The B structure consists of several BIGNUM components. It can +contain public as well as private RSA keys: + + struct + { + BIGNUM *n; // public modulus + BIGNUM *e; // public exponent + BIGNUM *d; // private exponent + BIGNUM *p; // secret prime factor + BIGNUM *q; // secret prime factor + BIGNUM *dmp1; // d mod (p-1) + BIGNUM *dmq1; // d mod (q-1) + BIGNUM *iqmp; // q^-1 mod p + // ... + }; + RSA + +In public keys, the private exponent and the related secret values are +B. + +B

, B, B, B and B may be B in private +keys, but the RSA operations are much faster when these values are +available. + +Note that RSA keys may use non-standard B implementations, +either directly or by the use of B modules. In some cases (eg. an +ENGINE providing support for hardware-embedded keys), these BIGNUM values +will not be used by the implementation or may be used for alternative data +storage. For this reason, applications should generally avoid using RSA +structure elements directly and instead use API functions to query or +modify keys. + +=head1 CONFORMING TO + +SSL, PKCS #1 v2.0 + +=head1 PATENTS + +RSA was covered by a US patent which expired in September 2000. + +=head1 SEE ALSO + +L, L, L, L, +L, L, L, +L, +L, L, +L, +L, +L, +L, L, +L, +L, +L, +L + +=cut -- cgit v1.2.3