xref: /freebsd/lib/libmp/mp.h (revision b3aaa0cc21c63d388230c7ef2a80abd631ff20d5)
1656c5bc7SDima Dorfman /* $FreeBSD$ */
2656c5bc7SDima Dorfman 
3656c5bc7SDima Dorfman #ifndef _MP_H_
4656c5bc7SDima Dorfman #define _MP_H_
5656c5bc7SDima Dorfman 
6cb9c19ffSMark Murray #ifndef HEADER_BN_H_
7656c5bc7SDima Dorfman #include <openssl/bn.h>
8cb9c19ffSMark Murray #endif
9656c5bc7SDima Dorfman 
10656c5bc7SDima Dorfman typedef struct _mint {
11656c5bc7SDima Dorfman 	BIGNUM *bn;
12656c5bc7SDima Dorfman } MINT;
13656c5bc7SDima Dorfman 
14b3aaa0ccSEd Schouten void mp_gcd(const MINT *, const MINT *, MINT *);
15b3aaa0ccSEd Schouten MINT *mp_itom(short);
16b3aaa0ccSEd Schouten void mp_madd(const MINT *, const MINT *, MINT *);
17b3aaa0ccSEd Schouten int mp_mcmp(const MINT *, const MINT *);
18b3aaa0ccSEd Schouten void mp_mdiv(const MINT *, const MINT *, MINT *, MINT *);
19b3aaa0ccSEd Schouten void mp_mfree(MINT *);
20b3aaa0ccSEd Schouten void mp_min(MINT *);
21b3aaa0ccSEd Schouten void mp_mout(const MINT *);
22b3aaa0ccSEd Schouten void mp_move(const MINT *, MINT *);
23b3aaa0ccSEd Schouten void mp_msqrt(const MINT *, MINT *, MINT *);
24b3aaa0ccSEd Schouten void mp_msub(const MINT *, const MINT *, MINT *);
25b3aaa0ccSEd Schouten char *mp_mtox(const MINT *);
26b3aaa0ccSEd Schouten void mp_mult(const MINT *, const MINT *, MINT *);
27b3aaa0ccSEd Schouten void mp_pow(const MINT *, const MINT *, const MINT *, MINT *);
28b3aaa0ccSEd Schouten void mp_rpow(const MINT *, short, MINT *);
29b3aaa0ccSEd Schouten void mp_sdiv(const MINT *, short, MINT *, short *);
30b3aaa0ccSEd Schouten MINT *mp_xtom(const char *);
31656c5bc7SDima Dorfman 
32656c5bc7SDima Dorfman #endif /* !_MP_H_ */
33