aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_random.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/crypto_random.c')
-rw-r--r--src/util/crypto_random.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/util/crypto_random.c b/src/util/crypto_random.c
index a1485029e..ff20646f7 100644
--- a/src/util/crypto_random.c
+++ b/src/util/crypto_random.c
@@ -38,10 +38,10 @@
38/* The code is derived from glibc, obviously */ 38/* The code is derived from glibc, obviously */
39#if MINGW 39#if MINGW
40#ifdef RANDOM 40#ifdef RANDOM
41# undef RANDOM 41#undef RANDOM
42#endif 42#endif
43#ifdef SRANDOM 43#ifdef SRANDOM
44# undef SRANDOM 44#undef SRANDOM
45#endif 45#endif
46#define RANDOM() glibc_weak_rand32() 46#define RANDOM() glibc_weak_rand32()
47#define SRANDOM(s) glibc_weak_srand32(s) 47#define SRANDOM(s) glibc_weak_srand32(s)
@@ -57,6 +57,7 @@ int32_t
57glibc_weak_rand32 () 57glibc_weak_rand32 ()
58{ 58{
59 int32_t val = glibc_weak_rand32_state; 59 int32_t val = glibc_weak_rand32_state;
60
60 val = ((glibc_weak_rand32_state * 1103515245) + 12345) & 0x7fffffff; 61 val = ((glibc_weak_rand32_state * 1103515245) + 12345) & 0x7fffffff;
61 glibc_weak_rand32_state = val; 62 glibc_weak_rand32_state = val;
62 return val; 63 return val;
@@ -314,7 +315,8 @@ void __attribute__ ((constructor)) GNUNET_CRYPTO_random_init ()
314 gcry_set_progress_handler (&entropy_generator, NULL); 315 gcry_set_progress_handler (&entropy_generator, NULL);
315 atexit (&killfind); 316 atexit (&killfind);
316 GNUNET_CRYPTO_seed_weak_random (time (NULL) ^ 317 GNUNET_CRYPTO_seed_weak_random (time (NULL) ^
317 GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX)); 318 GNUNET_CRYPTO_random_u32
319 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX));
318} 320}
319 321
320 322