Declare mp_int function arguments "const" as appropriate.

This commit is contained in:
nelsonb%netscape.com 2000-08-01 01:38:30 +00:00
parent a6349dde4f
commit e24f34f2c8
6 changed files with 99 additions and 100 deletions

View File

@ -35,7 +35,7 @@
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the GPL.
*
* $Id: mpi-priv.h,v 1.3 2000/07/28 23:03:12 nelsonb%netscape.com Exp $
* $Id: mpi-priv.h,v 1.4 2000/08/01 01:38:29 nelsonb%netscape.com Exp $
*/
#ifndef _MPI_PRIV_H_
#define _MPI_PRIV_H_ 1
@ -132,7 +132,7 @@ extern const float s_logv_2[];
*/
#if MP_MACRO == 0
void s_mp_setz(mp_digit *dp, mp_size count); /* zero digits */
void s_mp_copy(mp_digit *sp, mp_digit *dp, mp_size count); /* copy */
void s_mp_copy(const mp_digit *sp, mp_digit *dp, mp_size count); /* copy */
void *s_mp_alloc(size_t nb, size_t ni); /* general allocator */
void s_mp_free(void *ptr); /* general free function */
#else
@ -184,13 +184,13 @@ mp_err s_mp_div_d(mp_int *mp, mp_digit d, mp_digit *r);
/* unsigned digit divide */
mp_err s_mp_mod_d(mp_int *mp, mp_digit d, mp_digit *r);
/* unsigned digit rem */
mp_err s_mp_reduce(mp_int *x, mp_int *m, mp_int *mu);
mp_err s_mp_reduce(mp_int *x, const mp_int *m, const mp_int *mu);
/* Barrett reduction */
mp_err s_mp_add(mp_int *a, mp_int *b); /* magnitude addition */
mp_err s_mp_add(mp_int *a, const mp_int *b); /* magnitude addition */
mp_err s_mp_add_offset(mp_int *a, mp_int *b, mp_size offset);
/* a += b * RADIX^offset */
mp_err s_mp_sub(mp_int *a, mp_int *b); /* magnitude subtract */
mp_err s_mp_mul(mp_int *a, mp_int *b); /* magnitude multiply */
mp_err s_mp_sub(mp_int *a, const mp_int *b); /* magnitude subtract */
mp_err s_mp_mul(mp_int *a, const mp_int *b); /* magnitude multiply */
mp_err s_mp_mul_d_add_offset(mp_int *a, mp_digit b, mp_int *c, mp_size off);
/* c += a * b * (MP_RADIX ** offset); */
#if MP_SQUARE
@ -199,10 +199,10 @@ mp_err s_mp_sqr(mp_int *a); /* magnitude square */
#define s_mp_sqr(a) s_mp_mul(a, a)
#endif
mp_err s_mp_div(mp_int *a, mp_int *b); /* magnitude divide */
mp_err s_mp_exptmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c);
mp_err s_mp_exptmod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c);
mp_err s_mp_2expt(mp_int *a, mp_digit k); /* a = 2^k */
int s_mp_cmp(mp_int *a, mp_int *b); /* magnitude comparison */
int s_mp_cmp_d(mp_int *a, mp_digit d); /* magnitude digit compare */
int s_mp_cmp(const mp_int *a, const mp_int *b); /* magnitude comparison */
int s_mp_cmp_d(const mp_int *a, mp_digit d); /* magnitude digit compare */
int s_mp_ispow2(mp_int *v); /* is v a power of 2? */
int s_mp_ispow2d(mp_digit d); /* is d a power of 2? */

View File

@ -35,7 +35,7 @@
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the GPL.
*
* $Id: mpi.c,v 1.10 2000/07/28 23:03:12 nelsonb%netscape.com Exp $
* $Id: mpi.c,v 1.11 2000/08/01 01:38:29 nelsonb%netscape.com Exp $
*/
#include "mpi-priv.h"
@ -156,7 +156,7 @@ mp_err mp_init_size(mp_int *mp, mp_size prec)
structure.
*/
mp_err mp_init_copy(mp_int *mp, mp_int *from)
mp_err mp_init_copy(mp_int *mp, const mp_int *from)
{
ARGCHK(mp != NULL && from != NULL, MP_BADARG);
@ -187,7 +187,7 @@ mp_err mp_init_copy(mp_int *mp, mp_int *from)
instead). If 'from' and 'to' are identical, nothing happens.
*/
mp_err mp_copy(mp_int *from, mp_int *to)
mp_err mp_copy(const mp_int *from, mp_int *to)
{
ARGCHK(from != NULL && to != NULL, MP_BADARG);
@ -373,7 +373,7 @@ mp_err mp_set_int(mp_int *mp, long z)
its primary addend (single digits are unsigned anyway).
*/
mp_err mp_add_d(mp_int *a, mp_digit d, mp_int *b)
mp_err mp_add_d(const mp_int *a, mp_digit d, mp_int *b)
{
mp_int tmp;
mp_err res;
@ -417,7 +417,7 @@ CLEANUP:
sign of its subtrahend (single digits are unsigned anyway).
*/
mp_err mp_sub_d(mp_int *a, mp_digit d, mp_int *b)
mp_err mp_sub_d(const mp_int *a, mp_digit d, mp_int *b)
{
mp_int tmp;
mp_err res;
@ -462,7 +462,7 @@ CLEANUP:
of its multiplicand (single digits are unsigned anyway)
*/
mp_err mp_mul_d(mp_int *a, mp_digit d, mp_int *b)
mp_err mp_mul_d(const mp_int *a, mp_digit d, mp_int *b)
{
mp_err res;
@ -486,7 +486,7 @@ mp_err mp_mul_d(mp_int *a, mp_digit d, mp_int *b)
/* {{{ mp_mul_2(a, c) */
mp_err mp_mul_2(mp_int *a, mp_int *c)
mp_err mp_mul_2(const mp_int *a, mp_int *c)
{
mp_err res;
@ -511,7 +511,7 @@ mp_err mp_mul_2(mp_int *a, mp_int *c)
unsigned anyway).
*/
mp_err mp_div_d(mp_int *a, mp_digit d, mp_int *q, mp_digit *r)
mp_err mp_div_d(const mp_int *a, mp_digit d, mp_int *q, mp_digit *r)
{
mp_err res;
mp_int qp;
@ -570,7 +570,7 @@ mp_err mp_div_d(mp_int *a, mp_digit d, mp_int *q, mp_digit *r)
Compute c = a / 2, disregarding the remainder.
*/
mp_err mp_div_2(mp_int *a, mp_int *c)
mp_err mp_div_2(const mp_int *a, mp_int *c)
{
mp_err res;
@ -589,7 +589,7 @@ mp_err mp_div_2(mp_int *a, mp_int *c)
/* {{{ mp_expt_d(a, d, b) */
mp_err mp_expt_d(mp_int *a, mp_digit d, mp_int *c)
mp_err mp_expt_d(const mp_int *a, mp_digit d, mp_int *c)
{
mp_int s, x;
mp_err res;
@ -641,7 +641,7 @@ X:
Compute b = |a|. 'a' and 'b' may be identical.
*/
mp_err mp_abs(mp_int *a, mp_int *b)
mp_err mp_abs(const mp_int *a, mp_int *b)
{
mp_err res;
@ -666,7 +666,7 @@ mp_err mp_abs(mp_int *a, mp_int *b)
Compute b = -a. 'a' and 'b' may be identical.
*/
mp_err mp_neg(mp_int *a, mp_int *b)
mp_err mp_neg(const mp_int *a, mp_int *b)
{
mp_err res;
@ -694,7 +694,7 @@ mp_err mp_neg(mp_int *a, mp_int *b)
Compute c = a + b. All parameters may be identical.
*/
mp_err mp_add(mp_int *a, mp_int *b, mp_int *c)
mp_err mp_add(const mp_int *a, const mp_int *b, mp_int *c)
{
mp_int tmp;
mp_err res;
@ -744,7 +744,7 @@ CLEANUP:
Compute c = a - b. All parameters may be identical.
*/
mp_err mp_sub(mp_int *a, mp_int *b, mp_int *c)
mp_err mp_sub(const mp_int *a, const mp_int *b, mp_int *c)
{
mp_int tmp;
mp_err res;
@ -796,7 +796,7 @@ CLEANUP:
Compute c = a * b. All parameters may be identical.
*/
mp_err mp_mul(mp_int *a, mp_int *b, mp_int *c)
mp_err mp_mul(const mp_int *a, const mp_int *b, mp_int *c)
{
mp_err res;
@ -822,7 +822,7 @@ mp_err mp_mul(mp_int *a, mp_int *b, mp_int *c)
/* {{{ mp_sqr(a, b) */
#if MP_SQUARE
mp_err mp_sqr(mp_int *a, mp_int *b)
mp_err mp_sqr(const mp_int *a, mp_int *b)
{
mp_err res;
@ -855,7 +855,7 @@ mp_err mp_sqr(mp_int *a, mp_int *b)
Pay no attention to the hacker behind the curtain.
*/
mp_err mp_div(mp_int *a, mp_int *b, mp_int *q, mp_int *r)
mp_err mp_div(const mp_int *a, const mp_int *b, mp_int *q, mp_int *r)
{
mp_err res;
mp_int qtmp, rtmp;
@ -919,7 +919,7 @@ CLEANUP:
/* {{{ mp_div_2d(a, d, q, r) */
mp_err mp_div_2d(mp_int *a, mp_digit d, mp_int *q, mp_int *r)
mp_err mp_div_2d(const mp_int *a, mp_digit d, mp_int *q, mp_int *r)
{
mp_err res;
@ -1046,7 +1046,7 @@ mp_err mp_2expt(mp_int *a, mp_digit k)
Compute c = a (mod m). Result will always be 0 <= c < m.
*/
mp_err mp_mod(mp_int *a, mp_int *m, mp_int *c)
mp_err mp_mod(const mp_int *a, const mp_int *m, mp_int *c)
{
mp_err res;
int mag;
@ -1106,7 +1106,7 @@ mp_err mp_mod(mp_int *a, mp_int *m, mp_int *c)
Compute c = a (mod d). Result will always be 0 <= c < d
*/
mp_err mp_mod_d(mp_int *a, mp_digit d, mp_digit *c)
mp_err mp_mod_d(const mp_int *a, mp_digit d, mp_digit *c)
{
mp_err res;
mp_digit rem;
@ -1148,7 +1148,7 @@ mp_err mp_mod_d(mp_int *a, mp_digit d, mp_digit *c)
It is a range error to pass a negative value.
*/
mp_err mp_sqrt(mp_int *a, mp_int *b)
mp_err mp_sqrt(const mp_int *a, mp_int *b)
{
mp_int x, t;
mp_err res;
@ -1223,7 +1223,7 @@ mp_err mp_sqrt(mp_int *a, mp_int *b)
Compute c = (a + b) mod m
*/
mp_err mp_addmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
mp_err mp_addmod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c)
{
mp_err res;
@ -1248,7 +1248,7 @@ mp_err mp_addmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
Compute c = (a - b) mod m
*/
mp_err mp_submod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
mp_err mp_submod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c)
{
mp_err res;
@ -1273,7 +1273,7 @@ mp_err mp_submod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
Compute c = (a * b) mod m
*/
mp_err mp_mulmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
mp_err mp_mulmod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c)
{
mp_err res;
@ -1293,7 +1293,7 @@ mp_err mp_mulmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
/* {{{ mp_sqrmod(a, m, c) */
#if MP_SQUARE
mp_err mp_sqrmod(mp_int *a, mp_int *m, mp_int *c)
mp_err mp_sqrmod(const mp_int *a, const mp_int *m, mp_int *c)
{
mp_err res;
@ -1324,7 +1324,7 @@ mp_err mp_sqrmod(mp_int *a, mp_int *m, mp_int *c)
s_mp_reduce() below for details)
*/
mp_err s_mp_exptmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
mp_err s_mp_exptmod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c)
{
mp_int s, x, mu;
mp_err res;
@ -1410,7 +1410,7 @@ mp_err s_mp_exptmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c)
/* {{{ mp_exptmod_d(a, d, m, c) */
mp_err mp_exptmod_d(mp_int *a, mp_digit d, mp_int *m, mp_int *c)
mp_err mp_exptmod_d(const mp_int *a, mp_digit d, const mp_int *m, mp_int *c)
{
mp_int s, x;
mp_err res;
@ -1465,7 +1465,7 @@ X:
Compare a <=> 0. Returns <0 if a<0, 0 if a=0, >0 if a>0.
*/
int mp_cmp_z(mp_int *a)
int mp_cmp_z(const mp_int *a)
{
if(SIGN(a) == NEG)
return MP_LT;
@ -1486,7 +1486,7 @@ int mp_cmp_z(mp_int *a)
Compare a <=> d. Returns <0 if a<d, 0 if a=d, >0 if a>d
*/
int mp_cmp_d(mp_int *a, mp_digit d)
int mp_cmp_d(const mp_int *a, mp_digit d)
{
ARGCHK(a != NULL, MP_EQ);
@ -1501,7 +1501,7 @@ int mp_cmp_d(mp_int *a, mp_digit d)
/* {{{ mp_cmp(a, b) */
int mp_cmp(mp_int *a, mp_int *b)
int mp_cmp(const mp_int *a, const mp_int *b)
{
ARGCHK(a != NULL && b != NULL, MP_EQ);
@ -1552,7 +1552,7 @@ int mp_cmp_mag(mp_int *a, mp_int *b)
frequently this wil get used anyway. For small positive constants,
you can always use mp_cmp_d(), and for zero, there is mp_cmp_z().
*/
int mp_cmp_int(mp_int *a, long z)
int mp_cmp_int(const mp_int *a, long z)
{
mp_int tmp;
int out;
@ -1576,7 +1576,7 @@ int mp_cmp_int(mp_int *a, long z)
Returns a true (non-zero) value if a is odd, false (zero) otherwise.
*/
int mp_isodd(mp_int *a)
int mp_isodd(const mp_int *a)
{
ARGCHK(a != NULL, 0);
@ -1588,7 +1588,7 @@ int mp_isodd(mp_int *a)
/* {{{ mp_iseven(a) */
int mp_iseven(mp_int *a)
int mp_iseven(const mp_int *a)
{
return !mp_isodd(a);
@ -2285,7 +2285,7 @@ void s_mp_setz(mp_digit *dp, mp_size count)
#if MP_MACRO == 0
/* Copy 'count' digits from sp to dp */
void s_mp_copy(mp_digit *sp, mp_digit *dp, mp_size count)
void s_mp_copy(const mp_digit *sp, mp_digit *dp, mp_size count)
{
#if MP_MEMCPY == 0
int ix;
@ -2781,7 +2781,7 @@ mp_err s_mp_mod_d(mp_int *mp, mp_digit d, mp_digit *r)
/* {{{ s_mp_add(a, b) */
/* Compute a = |a| + |b| */
mp_err s_mp_add(mp_int *a, mp_int *b) /* magnitude addition */
mp_err s_mp_add(mp_int *a, const mp_int *b) /* magnitude addition */
{
mp_word w, k = 0;
mp_size ix;
@ -2893,7 +2893,7 @@ mp_err s_mp_add_offset(mp_int *a, mp_int *b, mp_size offset)
/* {{{ s_mp_sub(a, b) */
/* Compute a = |a| - |b|, assumes |a| >= |b| */
mp_err s_mp_sub(mp_int *a, mp_int *b) /* magnitude subtract */
mp_err s_mp_sub(mp_int *a, const mp_int *b) /* magnitude subtract */
{
mp_word w, k = 0;
mp_size ix;
@ -2918,7 +2918,6 @@ mp_err s_mp_sub(mp_int *a, mp_int *b) /* magnitude subtract */
/* Clobber any leading zeroes we created */
s_mp_clamp(a);
s_mp_clamp(b);
/*
If there was a borrow out, then |b| > |a| in violation
@ -2937,7 +2936,7 @@ mp_err s_mp_sub(mp_int *a, mp_int *b) /* magnitude subtract */
/* {{{ s_mp_mul(a, b) */
/* Compute a = |a| * |b| */
mp_err s_mp_mul(mp_int *a, mp_int *b)
mp_err s_mp_mul(mp_int *a, const mp_int *b)
{
mp_digit *pb = MP_DIGITS(b);
mp_word w;
@ -3300,7 +3299,7 @@ mp_err s_mp_2expt(mp_int *a, mp_digit k)
pp. 603-604.
*/
mp_err s_mp_reduce(mp_int *x, mp_int *m, mp_int *mu)
mp_err s_mp_reduce(mp_int *x, const mp_int *m, const mp_int *mu)
{
mp_int q;
mp_err res;
@ -3354,7 +3353,7 @@ mp_err s_mp_reduce(mp_int *x, mp_int *m, mp_int *mu)
/* {{{ s_mp_cmp(a, b) */
/* Compare |a| <=> |b|, return 0 if equal, <0 if a<b, >0 if a>b */
int s_mp_cmp(mp_int *a, mp_int *b)
int s_mp_cmp(const mp_int *a, const mp_int *b)
{
if(USED(a) > USED(b))
return MP_GT;
@ -3380,7 +3379,7 @@ int s_mp_cmp(mp_int *a, mp_int *b)
/* {{{ s_mp_cmp_d(a, d) */
/* Compare |a| <=> d, return 0 if equal, <0 if a<d, >0 if a>d */
int s_mp_cmp_d(mp_int *a, mp_digit d)
int s_mp_cmp_d(const mp_int *a, mp_digit d)
{
if(USED(a) > 1)
return MP_GT;

View File

@ -36,7 +36,7 @@
* may use your version of this file under either the MPL or the
* GPL.
*
* $Id: mpi.h,v 1.5 2000/07/28 22:55:56 nelsonb%netscape.com Exp $
* $Id: mpi.h,v 1.6 2000/08/01 01:38:28 nelsonb%netscape.com Exp $
*/
#ifndef _H_MPI_
@ -143,8 +143,8 @@ void mp_set_prec(mp_size prec);
/* Memory management */
mp_err mp_init(mp_int *mp);
mp_err mp_init_size(mp_int *mp, mp_size prec);
mp_err mp_init_copy(mp_int *mp, mp_int *from);
mp_err mp_copy(mp_int *from, mp_int *to);
mp_err mp_init_copy(mp_int *mp, const mp_int *from);
mp_err mp_copy(const mp_int *from, mp_int *to);
void mp_exch(mp_int *mp1, mp_int *mp2);
void mp_clear(mp_int *mp);
void mp_zero(mp_int *mp);
@ -152,57 +152,57 @@ void mp_set(mp_int *mp, mp_digit d);
mp_err mp_set_int(mp_int *mp, long z);
/* Single digit arithmetic */
mp_err mp_add_d(mp_int *a, mp_digit d, mp_int *b);
mp_err mp_sub_d(mp_int *a, mp_digit d, mp_int *b);
mp_err mp_mul_d(mp_int *a, mp_digit d, mp_int *b);
mp_err mp_mul_2(mp_int *a, mp_int *c);
mp_err mp_div_d(mp_int *a, mp_digit d, mp_int *q, mp_digit *r);
mp_err mp_div_2(mp_int *a, mp_int *c);
mp_err mp_expt_d(mp_int *a, mp_digit d, mp_int *c);
mp_err mp_add_d(const mp_int *a, mp_digit d, mp_int *b);
mp_err mp_sub_d(const mp_int *a, mp_digit d, mp_int *b);
mp_err mp_mul_d(const mp_int *a, mp_digit d, mp_int *b);
mp_err mp_mul_2(const mp_int *a, mp_int *c);
mp_err mp_div_d(const mp_int *a, mp_digit d, mp_int *q, mp_digit *r);
mp_err mp_div_2(const mp_int *a, mp_int *c);
mp_err mp_expt_d(const mp_int *a, mp_digit d, mp_int *c);
/* Sign manipulations */
mp_err mp_abs(mp_int *a, mp_int *b);
mp_err mp_neg(mp_int *a, mp_int *b);
mp_err mp_abs(const mp_int *a, mp_int *b);
mp_err mp_neg(const mp_int *a, mp_int *b);
/* Full arithmetic */
mp_err mp_add(mp_int *a, mp_int *b, mp_int *c);
mp_err mp_sub(mp_int *a, mp_int *b, mp_int *c);
mp_err mp_mul(mp_int *a, mp_int *b, mp_int *c);
mp_err mp_add(const mp_int *a, const mp_int *b, mp_int *c);
mp_err mp_sub(const mp_int *a, const mp_int *b, mp_int *c);
mp_err mp_mul(const mp_int *a, const mp_int *b, mp_int *c);
#if MP_SQUARE
mp_err mp_sqr(mp_int *a, mp_int *b);
mp_err mp_sqr(const mp_int *a, mp_int *b);
#else
#define mp_sqr(a, b) mp_mul(a, a, b)
#endif
mp_err mp_div(mp_int *a, mp_int *b, mp_int *q, mp_int *r);
mp_err mp_div_2d(mp_int *a, mp_digit d, mp_int *q, mp_int *r);
mp_err mp_div(const mp_int *a, const mp_int *b, mp_int *q, mp_int *r);
mp_err mp_div_2d(const mp_int *a, mp_digit d, mp_int *q, mp_int *r);
mp_err mp_expt(mp_int *a, mp_int *b, mp_int *c);
mp_err mp_2expt(mp_int *a, mp_digit k);
mp_err mp_sqrt(mp_int *a, mp_int *b);
mp_err mp_sqrt(const mp_int *a, mp_int *b);
/* Modular arithmetic */
#if MP_MODARITH
mp_err mp_mod(mp_int *a, mp_int *m, mp_int *c);
mp_err mp_mod_d(mp_int *a, mp_digit d, mp_digit *c);
mp_err mp_addmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c);
mp_err mp_submod(mp_int *a, mp_int *b, mp_int *m, mp_int *c);
mp_err mp_mulmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c);
mp_err mp_mod(const mp_int *a, const mp_int *m, mp_int *c);
mp_err mp_mod_d(const mp_int *a, mp_digit d, mp_digit *c);
mp_err mp_addmod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c);
mp_err mp_submod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c);
mp_err mp_mulmod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c);
#if MP_SQUARE
mp_err mp_sqrmod(mp_int *a, mp_int *m, mp_int *c);
mp_err mp_sqrmod(const mp_int *a, const mp_int *m, mp_int *c);
#else
#define mp_sqrmod(a, m, c) mp_mulmod(a, a, m, c)
#endif
mp_err mp_exptmod(mp_int *a, mp_int *b, mp_int *m, mp_int *c);
mp_err mp_exptmod_d(mp_int *a, mp_digit d, mp_int *m, mp_int *c);
mp_err mp_exptmod(const mp_int *a, const mp_int *b, const mp_int *m, mp_int *c);
mp_err mp_exptmod_d(const mp_int *a, mp_digit d, const mp_int *m, mp_int *c);
#endif /* MP_MODARITH */
/* Comparisons */
int mp_cmp_z(mp_int *a);
int mp_cmp_d(mp_int *a, mp_digit d);
int mp_cmp(mp_int *a, mp_int *b);
int mp_cmp_z(const mp_int *a);
int mp_cmp_d(const mp_int *a, mp_digit d);
int mp_cmp(const mp_int *a, const mp_int *b);
int mp_cmp_mag(mp_int *a, mp_int *b);
int mp_cmp_int(mp_int *a, long z);
int mp_isodd(mp_int *a);
int mp_iseven(mp_int *a);
int mp_cmp_int(const mp_int *a, long z);
int mp_isodd(const mp_int *a);
int mp_iseven(const mp_int *a);
/* Number theoretic */
#if MP_NUMTH

View File

@ -34,7 +34,7 @@
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the GPL.
*
* $Id: mplogic.c,v 1.8 2000/07/30 06:35:38 nelsonb%netscape.com Exp $
* $Id: mplogic.c,v 1.9 2000/08/01 01:38:30 nelsonb%netscape.com Exp $
*/
#include "mpi-priv.h"
@ -197,7 +197,7 @@ mp_err mpl_xor(mp_int *a, mp_int *b, mp_int *c)
/* {{{ mpl_rsh(a, b, d) */
mp_err mpl_rsh(mp_int *a, mp_int *b, mp_digit d)
mp_err mpl_rsh(const mp_int *a, mp_int *b, mp_digit d)
{
mp_err res;
mp_digit dshift, bshift;
@ -248,7 +248,7 @@ mp_err mpl_rsh(mp_int *a, mp_int *b, mp_digit d)
/* {{{ mpl_lsh(a, b, d) */
mp_err mpl_lsh(mp_int *a, mp_int *b, mp_digit d)
mp_err mpl_lsh(const mp_int *a, mp_int *b, mp_digit d)
{
mp_err res;
mp_digit dshift, bshift;
@ -435,7 +435,7 @@ mp_err mpl_set_bit(mp_int *a, mp_size bitNum, mp_size value)
returns 0 or 1 or some (negative) error code.
*/
mp_err mpl_get_bit(mp_int *a, mp_size bitNum)
mp_err mpl_get_bit(const mp_int *a, mp_size bitNum)
{
mp_size bit, ix;
mp_err rv;
@ -460,7 +460,7 @@ mp_err mpl_get_bit(mp_int *a, mp_size bitNum)
- lsbNum + numbits can be greater than the number of significant bits in
integer a, as long as bit lsbNum is in the high order digit of a.
*/
mp_err mpl_get_bits(mp_int *a, mp_size lsbNum, mp_size numBits)
mp_err mpl_get_bits(const mp_int *a, mp_size lsbNum, mp_size numBits)
{
mp_size rshift = (lsbNum % MP_DIGIT_BIT);
mp_size lsWndx = (lsbNum / MP_DIGIT_BIT);
@ -484,7 +484,7 @@ mp_err mpl_get_bits(mp_int *a, mp_size lsbNum, mp_size numBits)
returns number of significnant bits in abs(a).
returns 1 if value is zero.
*/
mp_err mpl_significant_bits(mp_int *a)
mp_err mpl_significant_bits(const mp_int *a)
{
mp_err bits = 0;
int ix;

View File

@ -34,7 +34,7 @@
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the GPL.
*
* $Id: mplogic.h,v 1.4 2000/07/30 06:35:38 nelsonb%netscape.com Exp $
* $Id: mplogic.h,v 1.5 2000/08/01 01:38:29 nelsonb%netscape.com Exp $
*/
#ifndef _H_MPLOGIC_
@ -63,8 +63,8 @@ mp_err mpl_xor(mp_int *a, mp_int *b, mp_int *c); /* bitwise XOR */
/* Shift functions */
mp_err mpl_rsh(mp_int *a, mp_int *b, mp_digit d); /* right shift */
mp_err mpl_lsh(mp_int *a, mp_int *b, mp_digit d); /* left shift */
mp_err mpl_rsh(const mp_int *a, mp_int *b, mp_digit d); /* right shift */
mp_err mpl_lsh(const mp_int *a, mp_int *b, mp_digit d); /* left shift */
/* Bit count and parity */
@ -75,8 +75,8 @@ mp_err mpl_parity(mp_int *a); /* determine parity */
/* Get & Set the value of a bit */
mp_err mpl_set_bit(mp_int *a, mp_size bitNum, mp_size value);
mp_err mpl_get_bit(mp_int *a, mp_size bitNum);
mp_err mpl_get_bits(mp_int *a, mp_size lsbNum, mp_size numBits);
mp_err mpl_significant_bits(mp_int *a);
mp_err mpl_get_bit(const mp_int *a, mp_size bitNum);
mp_err mpl_get_bits(const mp_int *a, mp_size lsbNum, mp_size numBits);
mp_err mpl_significant_bits(const mp_int *a);
#endif /* end _H_MPLOGIC_ */

View File

@ -29,7 +29,7 @@
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the
* GPL.
* $Id: mpmontg.c,v 1.2 2000/07/30 06:37:14 nelsonb%netscape.com Exp $
* $Id: mpmontg.c,v 1.3 2000/08/01 01:38:30 nelsonb%netscape.com Exp $
*/
/* This file implements moduluar exponentiation using Montgomery's
@ -106,7 +106,7 @@ loser:
return rv;
}
mp_err mp_to_mont(mp_int *x, mp_mont_modulus *mmm, mp_int *xMont)
mp_err mp_to_mont(const mp_int *x, mp_mont_modulus *mmm, mp_int *xMont)
{
mp_err rv;
@ -143,10 +143,10 @@ mp_err mp_n_to_n0prime(mp_mont_modulus *mmm)
return MP_OKAY;
}
mp_err mp_exptmod(mp_int *inBase, mp_int *exponent, mp_int *modulus,
mp_int *result)
mp_err mp_exptmod(const mp_int *inBase, const mp_int *exponent,
const mp_int *modulus, mp_int *result)
{
mp_int *base;
const mp_int *base;
mp_size bits_in_exponent;
mp_size i;
mp_err rv;