diff options
Diffstat (limited to 'entropy.c')
-rw-r--r-- | entropy.c | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #include <openssl/rand.h> | 27 | #include <openssl/rand.h> |
28 | #include <openssl/sha.h> | 28 | #include <openssl/sha.h> |
29 | #include <openssl/crypto.h> | ||
29 | 30 | ||
30 | /* SunOS 4.4.4 needs this */ | 31 | /* SunOS 4.4.4 needs this */ |
31 | #ifdef HAVE_FLOATINGPOINT_H | 32 | #ifdef HAVE_FLOATINGPOINT_H |
@@ -39,7 +40,7 @@ | |||
39 | #include "pathnames.h" | 40 | #include "pathnames.h" |
40 | #include "log.h" | 41 | #include "log.h" |
41 | 42 | ||
42 | RCSID("$Id: entropy.c,v 1.31 2001/02/26 21:39:07 djm Exp $"); | 43 | RCSID("$Id: entropy.c,v 1.32 2001/02/26 22:20:58 djm Exp $"); |
43 | 44 | ||
44 | #ifndef offsetof | 45 | #ifndef offsetof |
45 | # define offsetof(type, member) ((size_t) &((type *)0)->member) | 46 | # define offsetof(type, member) ((size_t) &((type *)0)->member) |
@@ -67,6 +68,14 @@ RCSID("$Id: entropy.c,v 1.31 2001/02/26 21:39:07 djm Exp $"); | |||
67 | # define SAVED_IDS_WORK_WITH_SETEUID | 68 | # define SAVED_IDS_WORK_WITH_SETEUID |
68 | #endif | 69 | #endif |
69 | 70 | ||
71 | void check_openssl_version(void) | ||
72 | { | ||
73 | if (SSLeay() != OPENSSL_VERSION_NUMBER) | ||
74 | fatal("OpenSSL version mismatch. Built against %x, you " | ||
75 | "have %x", OPENSSL_VERSION_NUMBER, SSLeay()); | ||
76 | } | ||
77 | |||
78 | |||
70 | #if defined(EGD_SOCKET) || defined(RANDOM_POOL) | 79 | #if defined(EGD_SOCKET) || defined(RANDOM_POOL) |
71 | 80 | ||
72 | #ifdef EGD_SOCKET | 81 | #ifdef EGD_SOCKET |
@@ -188,8 +197,10 @@ seed_rng(void) | |||
188 | memset(buf, '\0', sizeof(buf)); | 197 | memset(buf, '\0', sizeof(buf)); |
189 | } | 198 | } |
190 | 199 | ||
191 | /* No-op */ | 200 | void init_rng(void) |
192 | void init_rng(void) {} | 201 | { |
202 | check_openssl_version(); | ||
203 | } | ||
193 | 204 | ||
194 | #else /* defined(EGD_SOCKET) || defined(RANDOM_POOL) */ | 205 | #else /* defined(EGD_SOCKET) || defined(RANDOM_POOL) */ |
195 | 206 | ||
@@ -818,6 +829,8 @@ void init_rng(void) | |||
818 | { | 829 | { |
819 | int original_euid; | 830 | int original_euid; |
820 | 831 | ||
832 | check_openssl_version(); | ||
833 | |||
821 | original_uid = getuid(); | 834 | original_uid = getuid(); |
822 | original_euid = geteuid(); | 835 | original_euid = geteuid(); |
823 | 836 | ||