updates.
[silc.git] / lib / silcmath / silcprimegen.c
index aaa1fc1169dc03f5b4e70615203c7abccb561125..decb9538edbe46c2ea00675b5377f98359a2bdde 100644 (file)
   GNU General Public License for more details.
 
 */
-/*
- * Created: Mon Dec  8 16:35:37 GMT+0200 1997
- */
-/*
- * $Id$
- * $Log$
- * Revision 1.1.1.1  2000/06/27 11:36:51  priikone
- *     Importet from internal CVS/Added Log headers.
- *
- *
- */
+/* Created: Mon Dec  8 16:35:37 GMT+0200 1997 */
+/* $Id$ */
 
 #include "silcincludes.h"
 
-/* XXX This must be temporary solution!! yucky! */
-/* Global random pool used for all prime generation. All primes generated
-   in SILC uses this same pool. Before primes can be generated one must
-   call silc_math_primegen_init. */
-static SilcRng primegen_rng;
-
 /* 
    Fixed primetable for small prime division. We use this primetable to 
    test if possible prime is divisible any of these. Primetable is NULL 
@@ -217,9 +202,6 @@ int silc_math_gen_prime(SilcInt *prime, unsigned int bits, int verbose)
   unsigned int *spmods;
   SilcInt r, base, tmp, tmp2, oprime;
 
-  /* XXX */
-  assert(primegen_rng != NULL);
-
   silc_mp_init(&r);
   silc_mp_init_set_ui(&base, 2);
   silc_mp_init(&tmp);
@@ -229,7 +211,7 @@ int silc_math_gen_prime(SilcInt *prime, unsigned int bits, int verbose)
   SILC_LOG_DEBUG(("Generating new prime"));
 
   /* Get random number */
-  numbuf = silc_rng_get_rn_string(primegen_rng, (bits / 8));
+  numbuf = silc_rng_global_get_rn_string((bits / 8));
   if (!numbuf)
     return FALSE;
 
@@ -247,7 +229,7 @@ int silc_math_gen_prime(SilcInt *prime, unsigned int bits, int verbose)
 
   /* Init modulo table with the prime candidate and the primes
      in the primetable. */
-  spmods = silc_malloc(sizeof(primetable) * sizeof(unsigned int));
+  spmods = silc_calloc(1, sizeof(primetable) * sizeof(unsigned int));
   for (i = 0; primetable[i] != 0; i++) {
     silc_mp_mod_ui(&tmp, prime, primetable[i]);
     spmods[i] = silc_mp_get_ui(&tmp);
@@ -357,24 +339,3 @@ int silc_math_prime_test(SilcInt *p)
   /* Number is probably a prime */
   return TRUE;
 }
-
-/* XXX This must temporary solution!! */
-/* Initializes the random pool used to generated primes */
-
-void silc_math_primegen_init()
-{
-  SILC_LOG_DEBUG(("Start"));
-
-  if (primegen_rng == NULL) {
-    primegen_rng = silc_rng_alloc();
-    silc_rng_init(primegen_rng);
-  }
-}
-
-/* XXX This must temporary solution!! */
-/* Uninitializes random pool */
-
-void silc_math_primegen_uninit()
-{
-  silc_rng_free(primegen_rng);
-}