Line data Source code
1 : #include <tommath.h>
2 : #ifdef BN_MP_PRIME_IS_DIVISIBLE_C
3 : /* LibTomMath, multiple-precision integer library -- Tom St Denis
4 : *
5 : * LibTomMath is a library that provides multiple-precision
6 : * integer arithmetic as well as number theoretic functionality.
7 : *
8 : * The library was designed directly after the MPI library by
9 : * Michael Fromberger but has been written from scratch with
10 : * additional optimizations in place.
11 : *
12 : * The library is free for all purposes without any express
13 : * guarantee it works.
14 : *
15 : * Tom St Denis, tomstdenis@gmail.com, http://libtom.org
16 : */
17 :
18 : /* determines if an integers is divisible by one
19 : * of the first PRIME_SIZE primes or not
20 : *
21 : * sets result to 0 if not, 1 if yes
22 : */
23 0 : int mp_prime_is_divisible (mp_int * a, int *result)
24 : {
25 : int err, ix;
26 : mp_digit res;
27 :
28 : /* default to not */
29 0 : *result = MP_NO;
30 :
31 0 : for (ix = 0; ix < PRIME_SIZE; ix++) {
32 : /* what is a mod LBL_prime_tab[ix] */
33 0 : if ((err = mp_mod_d (a, ltm_prime_tab[ix], &res)) != MP_OKAY) {
34 0 : return err;
35 : }
36 :
37 : /* is the residue zero? */
38 0 : if (res == 0) {
39 0 : *result = MP_YES;
40 0 : return MP_OKAY;
41 : }
42 : }
43 :
44 0 : return MP_OKAY;
45 : }
46 : #endif
47 :
48 : /* $Source: /cvs/libtom/libtommath/bn_mp_prime_is_divisible.c,v $ */
49 : /* $Revision: 1.4 $ */
50 : /* $Date: 2006/12/28 01:25:13 $ */
|