- (djm) fatal() on OpenSSL version mismatch
diff --git a/entropy.c b/entropy.c
index 9743e59..2b983bb 100644
--- a/entropy.c
+++ b/entropy.c
@@ -26,6 +26,7 @@
 
 #include <openssl/rand.h>
 #include <openssl/sha.h>
+#include <openssl/crypto.h>
 
 /* SunOS 4.4.4 needs this */
 #ifdef HAVE_FLOATINGPOINT_H
@@ -39,7 +40,7 @@
 #include "pathnames.h"
 #include "log.h"
 
-RCSID("$Id: entropy.c,v 1.31 2001/02/26 21:39:07 djm Exp $");
+RCSID("$Id: entropy.c,v 1.32 2001/02/26 22:20:58 djm Exp $");
 
 #ifndef offsetof
 # define offsetof(type, member) ((size_t) &((type *)0)->member)
@@ -67,6 +68,14 @@
 # define SAVED_IDS_WORK_WITH_SETEUID
 #endif
 
+void check_openssl_version(void) 
+{
+	if (SSLeay() != OPENSSL_VERSION_NUMBER)
+		fatal("OpenSSL version mismatch. Built against %x, you "
+		    "have %x", OPENSSL_VERSION_NUMBER, SSLeay());
+}
+
+
 #if defined(EGD_SOCKET) || defined(RANDOM_POOL)
 
 #ifdef EGD_SOCKET
@@ -188,8 +197,10 @@
 	memset(buf, '\0', sizeof(buf));
 }
 
-/* No-op */
-void init_rng(void) {}
+void init_rng(void) 
+{
+	check_openssl_version();
+}
 
 #else /* defined(EGD_SOCKET) || defined(RANDOM_POOL) */
 
@@ -818,6 +829,8 @@
 {
 	int original_euid;
 
+	check_openssl_version();
+
 	original_uid = getuid();
 	original_euid = geteuid();