1
2#ifndef _MP_H_
3#define _MP_H_
4
5#ifndef HEADER_BN_H_
6#include <openssl/bn.h>
7#endif
8
9typedef struct _mint {
10	BIGNUM *bn;
11} MINT;
12
13void mp_gcd(const MINT *, const MINT *, MINT *);
14MINT *mp_itom(short);
15void mp_madd(const MINT *, const MINT *, MINT *);
16int mp_mcmp(const MINT *, const MINT *);
17void mp_mdiv(const MINT *, const MINT *, MINT *, MINT *);
18void mp_mfree(MINT *);
19void mp_min(MINT *);
20void mp_mout(const MINT *);
21void mp_move(const MINT *, MINT *);
22void mp_msqrt(const MINT *, MINT *, MINT *);
23void mp_msub(const MINT *, const MINT *, MINT *);
24char *mp_mtox(const MINT *);
25void mp_mult(const MINT *, const MINT *, MINT *);
26void mp_pow(const MINT *, const MINT *, const MINT *, MINT *);
27void mp_rpow(const MINT *, short, MINT *);
28void mp_sdiv(const MINT *, short, MINT *, short *);
29MINT *mp_xtom(const char *);
30
31#endif /* !_MP_H_ */
32