X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcmath%2Fsilcprimegen.c;h=e868637c66fbb99df9d0ced69a24b72564e4c5dd;hb=ae81323a6c29c176f6dd235aea5f6ce4b42263ea;hp=beb07f285f87ea09d3cba6d34638a4f66c9682ce;hpb=98c6bbf7fb68ed46c830793dddcf6359f78845f8;p=silc.git diff --git a/lib/silcmath/silcprimegen.c b/lib/silcmath/silcprimegen.c index beb07f28..e868637c 100644 --- a/lib/silcmath/silcprimegen.c +++ b/lib/silcmath/silcprimegen.c @@ -195,19 +195,21 @@ static uint32 primetable[] = If argument verbose is TRUE this will display some status information about the progress of generation. */ -int silc_math_gen_prime(SilcInt *prime, uint32 bits, int verbose) +int silc_math_gen_prime(SilcMPInt *prime, uint32 bits, int verbose) { unsigned char *numbuf; uint32 i, b, k; uint32 *spmods; - SilcInt r, base, tmp, tmp2, oprime; + SilcMPInt r, base, tmp, tmp2, oprime; silc_mp_init(&r); - silc_mp_init_set_ui(&base, 2); + silc_mp_init(&base); silc_mp_init(&tmp); silc_mp_init(&tmp2); silc_mp_init(&oprime); + silc_mp_set_ui(&base, 2); + SILC_LOG_DEBUG(("Generating new prime")); /* Get random number */ @@ -225,7 +227,7 @@ int silc_math_gen_prime(SilcInt *prime, uint32 bits, int verbose) /* Number could be even number, so we'll make it odd. */ silc_mp_set_ui(&tmp, 1); - silc_mp_ior(prime, prime, &tmp); /* OR operator */ + silc_mp_or(prime, prime, &tmp); /* OR operator */ /* Init modulo table with the prime candidate and the primes in the primetable. */ @@ -263,7 +265,7 @@ int silc_math_gen_prime(SilcInt *prime, uint32 bits, int verbose) /* Does the prime pass the Fermat's prime test. * r = 2 ^ p mod p, if r == 2, then p is probably a prime. */ - silc_mp_powm(&r, &base, &oprime, &oprime); + silc_mp_pow_mod(&r, &base, &oprime, &oprime); if (silc_mp_cmp_ui(&r, 2) != 0) { if (verbose) { printf("."); @@ -289,11 +291,11 @@ int silc_math_gen_prime(SilcInt *prime, uint32 bits, int verbose) } silc_free(spmods); - silc_mp_clear(&r); - silc_mp_clear(&base); - silc_mp_clear(&tmp); - silc_mp_clear(&tmp2); - silc_mp_clear(&oprime); + silc_mp_uninit(&r); + silc_mp_uninit(&base); + silc_mp_uninit(&tmp); + silc_mp_uninit(&tmp2); + silc_mp_uninit(&oprime); return TRUE; } @@ -301,14 +303,15 @@ int silc_math_gen_prime(SilcInt *prime, uint32 bits, int verbose) /* Performs primality testings for given number. Returns TRUE if the number is probably a prime. */ -int silc_math_prime_test(SilcInt *p) +int silc_math_prime_test(SilcMPInt *p) { - SilcInt r, base, tmp; + SilcMPInt r, base, tmp; int i, ret = 0; silc_mp_init(&r); silc_mp_init(&tmp); - silc_mp_init_set_ui(&base, 2); + silc_mp_init(&base); + silc_mp_set_ui(&base, 2); SILC_LOG_DEBUG(("Testing probability of prime")); @@ -325,13 +328,13 @@ int silc_math_prime_test(SilcInt *p) /* Does the prime pass the Fermat's prime test. * r = 2 ^ p mod p, if r == 2, then p is probably a prime. */ - silc_mp_powm(&r, &base, p, p); + silc_mp_pow_mod(&r, &base, p, p); if (silc_mp_cmp_ui(&r, 2) != 0) ret = -1; - silc_mp_clear(&r); - silc_mp_clear(&tmp); - silc_mp_clear(&base); + silc_mp_uninit(&r); + silc_mp_uninit(&tmp); + silc_mp_uninit(&base); if (ret) return FALSE;