180529Sdd/* $FreeBSD$ */
280529Sdd
380529Sdd#ifndef _MP_H_
480529Sdd#define _MP_H_
580529Sdd
6110011Smarkm#ifndef HEADER_BN_H_
780529Sdd#include <openssl/bn.h>
8110011Smarkm#endif
980529Sdd
1080529Sddtypedef struct _mint {
1180529Sdd	BIGNUM *bn;
1280529Sdd} MINT;
1380529Sdd
14189092Sedvoid mp_gcd(const MINT *, const MINT *, MINT *);
15189092SedMINT *mp_itom(short);
16189092Sedvoid mp_madd(const MINT *, const MINT *, MINT *);
17189092Sedint mp_mcmp(const MINT *, const MINT *);
18189092Sedvoid mp_mdiv(const MINT *, const MINT *, MINT *, MINT *);
19189092Sedvoid mp_mfree(MINT *);
20189092Sedvoid mp_min(MINT *);
21189092Sedvoid mp_mout(const MINT *);
22189092Sedvoid mp_move(const MINT *, MINT *);
23189092Sedvoid mp_msqrt(const MINT *, MINT *, MINT *);
24189092Sedvoid mp_msub(const MINT *, const MINT *, MINT *);
25189092Sedchar *mp_mtox(const MINT *);
26189092Sedvoid mp_mult(const MINT *, const MINT *, MINT *);
27189092Sedvoid mp_pow(const MINT *, const MINT *, const MINT *, MINT *);
28189092Sedvoid mp_rpow(const MINT *, short, MINT *);
29189092Sedvoid mp_sdiv(const MINT *, short, MINT *, short *);
30189092SedMINT *mp_xtom(const char *);
3180529Sdd
3280529Sdd#endif /* !_MP_H_ */
33