diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-11-23 20:03:58 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-11-23 20:03:58 +0000 |
commit | 55ac5056bd7f3997f67bc7a478f3e1d01ffb0e52 (patch) | |
tree | f3620b34222f15cdde0c5c0a4032ffb44a53859d | |
parent | 07f6af3914a9b438cb1526a628689bc0d8a6db27 (diff) | |
download | gnunet-55ac5056bd7f3997f67bc7a478f3e1d01ffb0e52.tar.gz gnunet-55ac5056bd7f3997f67bc7a478f3e1d01ffb0e52.zip |
LRN: Fix the use of SRANDOM
-rw-r--r-- | src/include/gnunet_crypto_lib.h | 8 | ||||
-rw-r--r-- | src/util/crypto_random.c | 15 | ||||
-rw-r--r-- | src/util/test_container_bloomfilter.c | 18 |
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 | */ | ||
231 | void | ||
232 | GNUNET_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 | */ | ||
83 | void | ||
84 | GNUNET_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; |