Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 1997 - 2005 Pekka Riikonen
+ Copyright (C) 1997 - 2007 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*
* Find appropriate prime. It generates a number by taking random bytes.
* It then tests the number that it's not divisible by any of the small
- * primes and then it performs Fermat's prime test. I thank Rieks Joosten
- * (r.joosten@pijnenburg.nl) for such a good help with prime tests.
+ * primes and then it performs Fermat's prime test.
*
* If argument verbose is TRUE this will display some status information
* about the progress of generation. If the `rng' is NULL then global
silc_mp_mod_ui(&tmp, p, primetable[i]);
/* If mod is 0, the number is composite */
- if (silc_mp_cmp_ui(&tmp, 0) == 0)
- ret = -1;
+ if (silc_mp_cmp_ui(&tmp, 0) == 0) {
+ SILC_LOG_DEBUG(("Number is not prime"));
+ silc_mp_uninit(&r);
+ silc_mp_uninit(&tmp);
+ silc_mp_uninit(&base);
+ return FALSE;
+ }
}
/* Does the prime pass the Fermat's prime test.
silc_mp_uninit(&tmp);
silc_mp_uninit(&base);
- if (ret)
+ if (ret) {
+ SILC_LOG_DEBUG(("Number is not prime"));
return FALSE;
+ }
/* Number is probably a prime */
return TRUE;