aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-11-23 20:03:58 +0000
committerChristian Grothoff <christian@grothoff.org>2011-11-23 20:03:58 +0000
commit55ac5056bd7f3997f67bc7a478f3e1d01ffb0e52 (patch)
treef3620b34222f15cdde0c5c0a4032ffb44a53859d
parent07f6af3914a9b438cb1526a628689bc0d8a6db27 (diff)
downloadgnunet-55ac5056bd7f3997f67bc7a478f3e1d01ffb0e52.tar.gz
gnunet-55ac5056bd7f3997f67bc7a478f3e1d01ffb0e52.zip
LRN: Fix the use of SRANDOM
-rw-r--r--src/include/gnunet_crypto_lib.h8
-rw-r--r--src/util/crypto_random.c15
-rw-r--r--src/util/test_container_bloomfilter.c18
3 files changed, 30 insertions, 11 deletions
diff --git a/src/include/gnunet_crypto_lib.h b/src/include/gnunet_crypto_lib.h
index f97b351c9..53137c179 100644
--- a/src/include/gnunet_crypto_lib.h
+++ b/src/include/gnunet_crypto_lib.h
@@ -222,6 +222,14 @@ struct GNUNET_CRYPTO_AuthKey
222 222
223/* **************** Functions and Macros ************* */ 223/* **************** Functions and Macros ************* */
224 224
225/**
226 * Seed a weak random generator. Only GNUNET_CRYPTO_QUALITY_WEAK-mode generator
227 * can be seeded.
228 *
229 * @param seed the seed to use
230 */
231void
232GNUNET_CRYPTO_seed_weak_random (int32_t seed);
225 233
226/** 234/**
227 * Compute the CRC32 checksum for the first len 235 * Compute the CRC32 checksum for the first len
diff --git a/src/util/crypto_random.c b/src/util/crypto_random.c
index 9fc14863c..a1485029e 100644
--- a/src/util/crypto_random.c
+++ b/src/util/crypto_random.c
@@ -74,6 +74,17 @@ weak_random ()
74 return ((double) RANDOM () / RAND_MAX); 74 return ((double) RANDOM () / RAND_MAX);
75} 75}
76 76
77/**
78 * Seed a weak random generator. Only GNUNET_CRYPTO_QUALITY_WEAK-mode generator
79 * can be seeded.
80 *
81 * @param seed the seed to use
82 */
83void
84GNUNET_CRYPTO_seed_weak_random (int32_t seed)
85{
86 SRANDOM (seed);
87}
77 88
78/** 89/**
79 * Produce a random value. 90 * Produce a random value.
@@ -302,8 +313,8 @@ void __attribute__ ((constructor)) GNUNET_CRYPTO_random_init ()
302#endif 313#endif
303 gcry_set_progress_handler (&entropy_generator, NULL); 314 gcry_set_progress_handler (&entropy_generator, NULL);
304 atexit (&killfind); 315 atexit (&killfind);
305 SRANDOM (time (NULL) ^ 316 GNUNET_CRYPTO_seed_weak_random (time (NULL) ^
306 GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX)); 317 GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX));
307} 318}
308 319
309 320
diff --git a/src/util/test_container_bloomfilter.c b/src/util/test_container_bloomfilter.c
index c14adb075..aad6e99a4 100644
--- a/src/util/test_container_bloomfilter.c
+++ b/src/util/test_container_bloomfilter.c
@@ -68,7 +68,7 @@ main (int argc, char *argv[])
68 struct stat sbuf; 68 struct stat sbuf;
69 69
70 GNUNET_log_setup ("test-container-bloomfilter", "WARNING", NULL); 70 GNUNET_log_setup ("test-container-bloomfilter", "WARNING", NULL);
71 SRANDOM (1); 71 GNUNET_CRYPTO_seed_weak_random (1);
72 if (0 == stat (TESTFILE, &sbuf)) 72 if (0 == stat (TESTFILE, &sbuf))
73 if (0 != UNLINK (TESTFILE)) 73 if (0 != UNLINK (TESTFILE))
74 GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "unlink", TESTFILE); 74 GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "unlink", TESTFILE);
@@ -79,7 +79,7 @@ main (int argc, char *argv[])
79 nextHC (&tmp); 79 nextHC (&tmp);
80 GNUNET_CONTAINER_bloomfilter_add (bf, &tmp); 80 GNUNET_CONTAINER_bloomfilter_add (bf, &tmp);
81 } 81 }
82 SRANDOM (1); 82 GNUNET_CRYPTO_seed_weak_random (1);
83 ok1 = 0; 83 ok1 = 0;
84 for (i = 0; i < 200; i++) 84 for (i = 0; i < 200; i++)
85 { 85 {
@@ -106,7 +106,7 @@ main (int argc, char *argv[])
106 bfi = GNUNET_CONTAINER_bloomfilter_init (buf, SIZE, K); 106 bfi = GNUNET_CONTAINER_bloomfilter_init (buf, SIZE, K);
107 GNUNET_assert (bfi != NULL); 107 GNUNET_assert (bfi != NULL);
108 108
109 SRANDOM (1); 109 GNUNET_CRYPTO_seed_weak_random (1);
110 ok1 = 0; 110 ok1 = 0;
111 ok2 = 0; 111 ok2 = 0;
112 for (i = 0; i < 200; i++) 112 for (i = 0; i < 200; i++)
@@ -134,7 +134,7 @@ main (int argc, char *argv[])
134 return -1; 134 return -1;
135 } 135 }
136 136
137 SRANDOM (1); 137 GNUNET_CRYPTO_seed_weak_random (1);
138 for (i = 0; i < 100; i++) 138 for (i = 0; i < 100; i++)
139 { 139 {
140 nextHC (&tmp); 140 nextHC (&tmp);
@@ -142,7 +142,7 @@ main (int argc, char *argv[])
142 GNUNET_CONTAINER_bloomfilter_remove (bfi, &tmp); 142 GNUNET_CONTAINER_bloomfilter_remove (bfi, &tmp);
143 } 143 }
144 144
145 SRANDOM (1); 145 GNUNET_CRYPTO_seed_weak_random (1);
146 146
147 ok1 = 0; 147 ok1 = 0;
148 ok2 = 0; 148 ok2 = 0;
@@ -174,7 +174,7 @@ main (int argc, char *argv[])
174 return -1; 174 return -1;
175 } 175 }
176 176
177 SRANDOM (3); 177 GNUNET_CRYPTO_seed_weak_random (3);
178 178
179 GNUNET_CONTAINER_bloomfilter_clear (bf); 179 GNUNET_CONTAINER_bloomfilter_clear (bf);
180 falseok = 0; 180 falseok = 0;
@@ -198,14 +198,14 @@ main (int argc, char *argv[])
198 return -1; 198 return -1;
199 } 199 }
200 200
201 SRANDOM (2); 201 GNUNET_CRYPTO_seed_weak_random (2);
202 i = 20; 202 i = 20;
203 GNUNET_CONTAINER_bloomfilter_resize (bfi, &add_iterator, &i, SIZE * 2, K); 203 GNUNET_CONTAINER_bloomfilter_resize (bfi, &add_iterator, &i, SIZE * 2, K);
204 204
205 SRANDOM (2); 205 GNUNET_CRYPTO_seed_weak_random (2);
206 i = 20; 206 i = 20;
207 GNUNET_CONTAINER_bloomfilter_resize (bf, &add_iterator, &i, SIZE * 2, K); 207 GNUNET_CONTAINER_bloomfilter_resize (bf, &add_iterator, &i, SIZE * 2, K);
208 SRANDOM (2); 208 GNUNET_CRYPTO_seed_weak_random (2);
209 209
210 ok1 = 0; 210 ok1 = 0;
211 ok2 = 0; 211 ok2 = 0;