mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 10:00:54 +00:00
Declare mp_int function arguments "const" as appropriate.
This commit is contained in:
parent
a6349dde4f
commit
e24f34f2c8
@ -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? */
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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_ */
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user