gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r13241 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r13241 - gnunet/src/util
Date: Fri, 8 Oct 2010 18:13:16 +0200

Author: grothoff
Date: 2010-10-08 18:13:16 +0200 (Fri, 08 Oct 2010)
New Revision: 13241

Modified:
   gnunet/src/util/crypto_ksk.c
Log:
better

Modified: gnunet/src/util/crypto_ksk.c
===================================================================
--- gnunet/src/util/crypto_ksk.c        2010-10-08 16:07:12 UTC (rev 13240)
+++ gnunet/src/util/crypto_ksk.c        2010-10-08 16:13:16 UTC (rev 13241)
@@ -292,13 +292,12 @@
   gcry_mpi_t prime, pminus1, val_2, val_3, result;
   unsigned int i;
   unsigned int step;
-  unsigned int *mods;
+  unsigned int mods[no_of_small_prime_numbers];
   gcry_mpi_t tmp;
   gcry_mpi_t sp;
 
   GNUNET_assert (nbits >= 16);
 
-  mods = GNUNET_malloc (no_of_small_prime_numbers * sizeof (*mods));
   /* Make nbits fit into mpz_t implementation. */
   val_2 = gcry_mpi_set_ui (NULL, 2);
   val_3 = gcry_mpi_set_ui (NULL, 3);
@@ -306,6 +305,8 @@
   result = gcry_mpi_new(0);
   pminus1 = gcry_mpi_new(0);
   *ptest = gcry_mpi_new(0);
+  tmp = gcry_mpi_new (0);
+  sp = gcry_mpi_new (0);
   while (1)
     {
       /* generate a random number */
@@ -319,8 +320,6 @@
       gcry_mpi_set_bit (prime, 0);
 
       /* Calculate all remainders. */
-      tmp = gcry_mpi_new (0);
-      sp = gcry_mpi_new (0);
       for (i = 0; i < no_of_small_prime_numbers; i++)
         {
           size_t written;
@@ -328,11 +327,12 @@
           gcry_mpi_set_ui(sp, small_prime_numbers[i]);
           gcry_mpi_div (NULL, tmp, prime, sp, -1);
          mods[i] = 0;
-         written = sizeof (*mods);
-          gcry_mpi_print (GCRYMPI_FMT_USG, (unsigned char *) &mods[i], 
sizeof(*mods), &written, tmp);
-        }
-      gcry_mpi_release (sp);
-      gcry_mpi_release (tmp);
+         written = sizeof (unsigned int);
+          GNUNET_assert (0 ==
+                        gcry_mpi_print (GCRYMPI_FMT_USG, 
+                                        (unsigned char*) &mods[i], written, 
&written, 
+                                        tmp));
+       }
       /* Now try some primes starting with prime. */
       for (step = 0; step < 20000; step += 2)
         {
@@ -358,12 +358,13 @@
           if ((!gcry_mpi_cmp_ui (result, 1)) && (is_prime (*ptest, 5, hc)))
             {
               /* Got it. */
+             gcry_mpi_release (sp);
+             gcry_mpi_release (tmp);
               gcry_mpi_release (val_2);
               gcry_mpi_release (val_3);
               gcry_mpi_release (result);
               gcry_mpi_release (pminus1);
               gcry_mpi_release (prime);
-              GNUNET_free (mods);
               return;
             }
         }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]