diff options
Diffstat (limited to 'entropy.c')
-rw-r--r-- | entropy.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -35,7 +35,7 @@ | |||
35 | #include <openssl/rand.h> | 35 | #include <openssl/rand.h> |
36 | #include <openssl/sha.h> | 36 | #include <openssl/sha.h> |
37 | 37 | ||
38 | RCSID("$Id: entropy.c,v 1.15 2000/06/26 03:01:33 djm Exp $"); | 38 | RCSID("$Id: entropy.c,v 1.16 2000/06/26 03:55:31 djm Exp $"); |
39 | 39 | ||
40 | #ifndef offsetof | 40 | #ifndef offsetof |
41 | # define offsetof(type, member) ((size_t) &((type *)0)->member) | 41 | # define offsetof(type, member) ((size_t) &((type *)0)->member) |
@@ -158,11 +158,13 @@ seed_rng(void) | |||
158 | 158 | ||
159 | debug("Seeding random number generator"); | 159 | debug("Seeding random number generator"); |
160 | 160 | ||
161 | if (!get_random_bytes(buf, sizeof(buf)) && !RAND_status()) | 161 | if (!get_random_bytes(buf, sizeof(buf))) { |
162 | fatal("Entropy collection failed and entropy exhausted"); | 162 | if (!RAND_status()) |
163 | 163 | fatal("Entropy collection failed and entropy exhausted"); | |
164 | RAND_add(buf, sizeof(buf), sizeof(buf)); | 164 | } else { |
165 | 165 | RAND_add(buf, sizeof(buf), sizeof(buf)); | |
166 | } | ||
167 | |||
166 | memset(buf, '\0', sizeof(buf)); | 168 | memset(buf, '\0', sizeof(buf)); |
167 | } | 169 | } |
168 | 170 | ||