#include <time.h>
#include <stdio.h>
-WARN_UNUSED_RESULT BOOL d0_bignum_INITIALIZE(void)
+D0_WARN_UNUSED_RESULT D0_BOOL d0_bignum_INITIALIZE(void)
{
FILE *f;
- BOOL ret = 1;
+ D0_BOOL ret = 1;
unsigned char buf[256];
d0_bignum_init(&temp);
gmp_randinit_mt(RANDSTATE);
gmp_randclear(RANDSTATE);
}
-BOOL d0_iobuf_write_bignum(d0_iobuf_t *buf, const d0_bignum_t *bignum)
+D0_BOOL d0_iobuf_write_bignum(d0_iobuf_t *buf, const d0_bignum_t *bignum)
{
static unsigned char numbuf[65536];
size_t count = 0;
// BAD
// mpz_sizeinbase lied to us
// move the number
- if(bufsize == 0)
+ if(count == 0)
{
memset(buf, 0, count);
}
return r;
}
+d0_bignum_t *d0_bignum_mod_sub(d0_bignum_t *r, const d0_bignum_t *a, const d0_bignum_t *b, const d0_bignum_t *m)
+{
+ r = d0_bignum_sub(r, a, b);
+ mpz_fdiv_r(r->z, r->z, m->z);
+ return r;
+}
+
d0_bignum_t *d0_bignum_mod_mul(d0_bignum_t *r, const d0_bignum_t *a, const d0_bignum_t *b, const d0_bignum_t *m)
{
r = d0_bignum_mul(r, a, b);
return r;
}
-BOOL d0_bignum_mod_inv(d0_bignum_t *r, const d0_bignum_t *a, const d0_bignum_t *m)
+D0_BOOL d0_bignum_mod_inv(d0_bignum_t *r, const d0_bignum_t *a, const d0_bignum_t *m)
{
// here, r MUST be set, as otherwise we cannot return error state!
return mpz_invert(r->z, a->z, m->z);