[BACK]Return to gmprsa.h CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_ntl / crypt / rsa

Annotation of OpenXM/src/ox_ntl/crypt/rsa/gmprsa.h, Revision 1.2

1.2     ! iwane       1: /* $OpenXM: OpenXM/src/ox_ntl/crypt/rsa/gmprsa.h,v 1.1 2004/08/16 03:59:58 iwane Exp $ */
1.1       iwane       2:
                      3: #ifndef __GMP_RSA_H__
                      4: #define __GMP_RSA_H__
                      5:
                      6:
                      7: #include <gmp.h>
                      8:
                      9:
                     10: typedef struct rsa_key_tag {
                     11:        mpz_t p; /* prime */
                     12:        mpz_t q; /* prime */
                     13:        mpz_t mod; /* = p * q */
                     14:        mpz_t private_key;
                     15:        mpz_t public_key;
                     16:        int k;
                     17: } rsa_key;
                     18:
                     19:
                     20: #define RSA_PKCS_1_PADDING           (0x00000001)
                     21:
                     22: #define RSA_PKCS_1_PADDING_PRIVATE0  (0x00)
                     23: #define RSA_PKCS_1_PADDING_PRIVATE   (0x01)
                     24: #define RSA_PKCS_1_PADDING_PUBLIC    (0x02)
                     25:
                     26: #ifdef __cplusplus
                     27: extern "C" {
                     28: #endif
                     29:
                     30:
                     31: void rsa_init(rsa_key *r);
                     32: void rsa_clear(rsa_key *r);
                     33:
                     34: /*
                     35:  * the probability of a false positive is (1/4) ** reps.
                     36:  * see mpz_probab_prime_p(GMP)
                     37:  */
                     38: void rsa_genprime(mpz_ptr prime, int len, const mpz_ptr seed, int rep);
1.2     ! iwane      39: void rsa_genprime_strong(mpz_ptr prime, int len, const mpz_ptr seed, int rep);
1.1       iwane      40:
                     41: /*
                     42:  * bit >= 96 (MUST)
                     43:  * rep >= 80(SHOULD) : see rsa_genprime().
                     44:  */
                     45: int rsa_keygen(rsa_key *, const mpz_ptr seed1, const mpz_ptr seed2, unsigned int bit, int rep);
                     46:
                     47: void rsa_set_publickey(rsa_key *rsa, mpz_ptr public_key, mpz_ptr mod);
                     48: void rsa_set_key(rsa_key *rsa, mpz_ptr public_key, mpz_ptr private_key, mpz_ptr mod);
                     49:
                     50: int rsa_encrypt_by_public_key(rsa_key *, unsigned char *eb, const unsigned char *msg, int len, int);
                     51: int rsa_encrypt_by_private_key(rsa_key *, unsigned char *eb, const unsigned char *msg, int len, int);
                     52:
                     53: int rsa_decrypt_by_public_key(rsa_key *, unsigned char *buf, const unsigned char *eb, int);
                     54: int rsa_decrypt_by_private_key(rsa_key *, unsigned char *buf, const unsigned char *eb, int);
                     55:
                     56:
                     57: #ifdef __cplusplus
                     58: }
                     59: #endif
                     60:
                     61:
                     62: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>