LRN: Fix the use of SRANDOM
authorChristian Grothoff <christian@grothoff.org>
Wed, 23 Nov 2011 20:03:58 +0000 (20:03 +0000)
committerChristian Grothoff <christian@grothoff.org>
Wed, 23 Nov 2011 20:03:58 +0000 (20:03 +0000)
src/include/gnunet_crypto_lib.h
src/util/crypto_random.c
src/util/test_container_bloomfilter.c

index f97b351c96e7394b50a746598da07dc1087741f2..53137c1792a63bf6838ca0584ff94ab0890b85e6 100644 (file)
@@ -222,6 +222,14 @@ struct GNUNET_CRYPTO_AuthKey
 
 /* **************** Functions and Macros ************* */
 
+/**
+ * Seed a weak random generator. Only GNUNET_CRYPTO_QUALITY_WEAK-mode generator
+ * can be seeded.
+ *
+ * @param seed the seed to use
+ */
+void
+GNUNET_CRYPTO_seed_weak_random (int32_t seed);
 
 /**
  * Compute the CRC32 checksum for the first len
index 9fc14863cc4f30d3d85d95f45a56c3e692113a0a..a1485029e3551ab6d1221dd7aeb06a5610fe9840 100644 (file)
@@ -74,6 +74,17 @@ weak_random ()
   return ((double) RANDOM () / RAND_MAX);
 }
 
+/**
+ * Seed a weak random generator. Only GNUNET_CRYPTO_QUALITY_WEAK-mode generator
+ * can be seeded.
+ *
+ * @param seed the seed to use
+ */
+void
+GNUNET_CRYPTO_seed_weak_random (int32_t seed)
+{
+  SRANDOM (seed);
+}
 
 /**
  * Produce a random value.
@@ -302,8 +313,8 @@ void __attribute__ ((constructor)) GNUNET_CRYPTO_random_init ()
 #endif
   gcry_set_progress_handler (&entropy_generator, NULL);
   atexit (&killfind);
-  SRANDOM (time (NULL) ^
-           GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX));
+  GNUNET_CRYPTO_seed_weak_random (time (NULL) ^
+      GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX));
 }
 
 
index c14adb0755373eee3dca9d28b318edea6951664e..aad6e99a406fd0db96b5167ece6306e522240798 100644 (file)
@@ -68,7 +68,7 @@ main (int argc, char *argv[])
   struct stat sbuf;
 
   GNUNET_log_setup ("test-container-bloomfilter", "WARNING", NULL);
-  SRANDOM (1);
+  GNUNET_CRYPTO_seed_weak_random (1);
   if (0 == stat (TESTFILE, &sbuf))
     if (0 != UNLINK (TESTFILE))
       GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "unlink", TESTFILE);
@@ -79,7 +79,7 @@ main (int argc, char *argv[])
     nextHC (&tmp);
     GNUNET_CONTAINER_bloomfilter_add (bf, &tmp);
   }
-  SRANDOM (1);
+  GNUNET_CRYPTO_seed_weak_random (1);
   ok1 = 0;
   for (i = 0; i < 200; i++)
   {
@@ -106,7 +106,7 @@ main (int argc, char *argv[])
   bfi = GNUNET_CONTAINER_bloomfilter_init (buf, SIZE, K);
   GNUNET_assert (bfi != NULL);
 
-  SRANDOM (1);
+  GNUNET_CRYPTO_seed_weak_random (1);
   ok1 = 0;
   ok2 = 0;
   for (i = 0; i < 200; i++)
@@ -134,7 +134,7 @@ main (int argc, char *argv[])
     return -1;
   }
 
-  SRANDOM (1);
+  GNUNET_CRYPTO_seed_weak_random (1);
   for (i = 0; i < 100; i++)
   {
     nextHC (&tmp);
@@ -142,7 +142,7 @@ main (int argc, char *argv[])
     GNUNET_CONTAINER_bloomfilter_remove (bfi, &tmp);
   }
 
-  SRANDOM (1);
+  GNUNET_CRYPTO_seed_weak_random (1);
 
   ok1 = 0;
   ok2 = 0;
@@ -174,7 +174,7 @@ main (int argc, char *argv[])
     return -1;
   }
 
-  SRANDOM (3);
+  GNUNET_CRYPTO_seed_weak_random (3);
 
   GNUNET_CONTAINER_bloomfilter_clear (bf);
   falseok = 0;
@@ -198,14 +198,14 @@ main (int argc, char *argv[])
     return -1;
   }
 
-  SRANDOM (2);
+  GNUNET_CRYPTO_seed_weak_random (2);
   i = 20;
   GNUNET_CONTAINER_bloomfilter_resize (bfi, &add_iterator, &i, SIZE * 2, K);
 
-  SRANDOM (2);
+  GNUNET_CRYPTO_seed_weak_random (2);
   i = 20;
   GNUNET_CONTAINER_bloomfilter_resize (bf, &add_iterator, &i, SIZE * 2, K);
-  SRANDOM (2);
+  GNUNET_CRYPTO_seed_weak_random (2);
 
   ok1 = 0;
   ok2 = 0;