[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.1

1.1     ! iwane       1: /* $OpenXM$ */
        !             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);
        !            39:
        !            40: /*
        !            41:  * bit >= 96 (MUST)
        !            42:  * rep >= 80(SHOULD) : see rsa_genprime().
        !            43:  */
        !            44: int rsa_keygen(rsa_key *, const mpz_ptr seed1, const mpz_ptr seed2, unsigned int bit, int rep);
        !            45:
        !            46: void rsa_set_publickey(rsa_key *rsa, mpz_ptr public_key, mpz_ptr mod);
        !            47: void rsa_set_key(rsa_key *rsa, mpz_ptr public_key, mpz_ptr private_key, mpz_ptr mod);
        !            48:
        !            49: int rsa_encrypt_by_public_key(rsa_key *, unsigned char *eb, const unsigned char *msg, int len, int);
        !            50: int rsa_encrypt_by_private_key(rsa_key *, unsigned char *eb, const unsigned char *msg, int len, int);
        !            51:
        !            52: int rsa_decrypt_by_public_key(rsa_key *, unsigned char *buf, const unsigned char *eb, int);
        !            53: int rsa_decrypt_by_private_key(rsa_key *, unsigned char *buf, const unsigned char *eb, int);
        !            54:
        !            55:
        !            56: #ifdef __cplusplus
        !            57: }
        !            58: #endif
        !            59:
        !            60:
        !            61: #endif

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