diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2017-06-05 23:20:36 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2017-06-05 23:20:36 (GMT) |
commit | f8223fa81718da26562fff851b4a56d18b58a62a (patch) | |
tree | 2c47bdd025eab065e5f559ade49795a3acaf938e /libtommath/bn_mp_reduce.c | |
parent | e9d31a334b4cbd18716b3c1eacf7f516cbc7286d (diff) | |
parent | 0b178367ba3b9a10d44f89025c89292a4ea49b20 (diff) | |
download | tcl-dkf_expose_ptrgetvar.zip tcl-dkf_expose_ptrgetvar.tar.gz tcl-dkf_expose_ptrgetvar.tar.bz2 |
merge trunkdkf_expose_ptrgetvar
Diffstat (limited to 'libtommath/bn_mp_reduce.c')
-rw-r--r-- | libtommath/bn_mp_reduce.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/libtommath/bn_mp_reduce.c b/libtommath/bn_mp_reduce.c index 4375e4e..e2c3a58 100644 --- a/libtommath/bn_mp_reduce.c +++ b/libtommath/bn_mp_reduce.c @@ -1,4 +1,4 @@ -#include <tommath.h> +#include <tommath_private.h> #ifdef BN_MP_REDUCE_C /* LibTomMath, multiple-precision integer library -- Tom St Denis * @@ -12,10 +12,10 @@ * The library is free for all purposes without any express * guarantee it works. * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.com + * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ -/* reduces x mod m, assumes 0 < x < m**2, mu is +/* reduces x mod m, assumes 0 < x < m**2, mu is * precomputed via mp_reduce_setup. * From HAC pp.604 Algorithm 14.42 */ @@ -30,10 +30,10 @@ int mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q1 = x / b**(k-1) */ - mp_rshd (&q, um - 1); + mp_rshd (&q, um - 1); /* according to HAC this optimization is ok */ - if (((unsigned long) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) { + if (((mp_digit) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) { if ((res = mp_mul (&q, mu, &q)) != MP_OKAY) { goto CLEANUP; } @@ -46,8 +46,8 @@ int mp_reduce (mp_int * x, mp_int * m, mp_int * mu) if ((res = fast_s_mp_mul_high_digs (&q, mu, &q, um)) != MP_OKAY) { goto CLEANUP; } -#else - { +#else + { res = MP_VAL; goto CLEANUP; } @@ -55,7 +55,7 @@ int mp_reduce (mp_int * x, mp_int * m, mp_int * mu) } /* q3 = q2 / b**(k+1) */ - mp_rshd (&q, um + 1); + mp_rshd (&q, um + 1); /* x = x mod b**(k+1), quick (no division) */ if ((res = mp_mod_2d (x, DIGIT_BIT * (um + 1), x)) != MP_OKAY) { @@ -87,10 +87,14 @@ int mp_reduce (mp_int * x, mp_int * m, mp_int * mu) goto CLEANUP; } } - + CLEANUP: mp_clear (&q); return res; } #endif + +/* $Source$ */ +/* $Revision$ */ +/* $Date$ */ |