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