OLD | NEW |
1 /* | 1 /* |
2 * mpprime.c | 2 * mpprime.c |
3 * | 3 * |
4 * Utilities for finding and working with prime and pseudo-prime | 4 * Utilities for finding and working with prime and pseudo-prime |
5 * integers | 5 * integers |
6 * | 6 * |
7 * This Source Code Form is subject to the terms of the Mozilla Public | 7 * This Source Code Form is subject to the terms of the Mozilla Public |
8 * License, v. 2.0. If a copy of the MPL was not distributed with this | 8 * License, v. 2.0. If a copy of the MPL was not distributed with this |
9 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 9 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
10 | 10 |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 | 290 |
291 MP_CHECKOK( mp_init_size(&x, MP_USED(a)) ); | 291 MP_CHECKOK( mp_init_size(&x, MP_USED(a)) ); |
292 MP_CHECKOK( mp_init(&z) ); | 292 MP_CHECKOK( mp_init(&z) ); |
293 MP_CHECKOK( mp_init(&m) ); | 293 MP_CHECKOK( mp_init(&m) ); |
294 MP_CHECKOK( mp_div_2d(&amo, b, &m, 0) ); | 294 MP_CHECKOK( mp_div_2d(&amo, b, &m, 0) ); |
295 | 295 |
296 /* Do the test nt times... */ | 296 /* Do the test nt times... */ |
297 for(iter = 0; iter < nt; iter++) { | 297 for(iter = 0; iter < nt; iter++) { |
298 | 298 |
299 /* Choose a random value for 1 < x < a */ | 299 /* Choose a random value for 1 < x < a */ |
300 s_mp_pad(&x, USED(a)); | 300 MP_CHECKOK( s_mp_pad(&x, USED(a)) ); |
301 mpp_random(&x); | 301 mpp_random(&x); |
302 MP_CHECKOK( mp_mod(&x, a, &x) ); | 302 MP_CHECKOK( mp_mod(&x, a, &x) ); |
303 if(mp_cmp_d(&x, 1) <= 0) { | 303 if(mp_cmp_d(&x, 1) <= 0) { |
304 iter--; /* don't count this iteration */ | 304 iter--; /* don't count this iteration */ |
305 continue; /* choose a new x */ | 305 continue; /* choose a new x */ |
306 } | 306 } |
307 | 307 |
308 /* Compute z = (x ** m) mod a */ | 308 /* Compute z = (x ** m) mod a */ |
309 MP_CHECKOK( mp_exptmod(&x, &m, a, &z) ); | 309 MP_CHECKOK( mp_exptmod(&x, &m, a, &z) ); |
310 | 310 |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 } | 575 } |
576 | 576 |
577 return MP_NO; | 577 return MP_NO; |
578 | 578 |
579 } /* end s_mpp_divp() */ | 579 } /* end s_mpp_divp() */ |
580 | 580 |
581 /* }}} */ | 581 /* }}} */ |
582 | 582 |
583 /*------------------------------------------------------------------------*/ | 583 /*------------------------------------------------------------------------*/ |
584 /* HERE THERE BE DRAGONS */ | 584 /* HERE THERE BE DRAGONS */ |
OLD | NEW |