1426. [cleanup] Disable RFC2535 style DNSSEC. This is incompatible
with the forthcoming DS style DNSSEC.
+1395. [port] OpenSSL 0.9.7 defines CRYPTO_LOCK_ENGINE but doesn't
+ have a working implementation. [RT #4079]
+
1382. [bug] make install failed with --enable-libbind. [RT #3656]
1381. [bug] named failed to correctly process answers that
/*
* Principal Author: Brian Wellington
- * $Id: openssl_link.c,v 1.46 2001/07/31 03:45:04 marka Exp $
+ * $Id: openssl_link.c,v 1.46.8.1 2003/02/18 06:24:45 marka Exp $
*/
#ifdef OPENSSL
#include <openssl/rand.h>
#include <openssl/crypto.h>
-#ifdef CRYPTO_LOCK_ENGINE
+#if defined(CRYPTO_LOCK_ENGINE) && (OPENSSL_VERSION_NUMBER < 0x00907000L)
+#define USE_ENGINE 1
+#endif
+
+#ifdef USE_ENGINE
#include <openssl/engine.h>
#endif
static isc_mutex_t *locks = NULL;
static int nlocks;
-#ifdef CRYPTO_LOCK_ENGINE
+#ifdef USE_ENGINE
static ENGINE *e;
#endif
rm->add = entropy_add;
rm->pseudorand = entropy_getpseudo;
rm->status = NULL;
-#ifdef CRYPTO_LOCK_ENGINE
+#ifdef USE_ENGINE
e = ENGINE_new();
if (e == NULL) {
result = ISC_R_NOMEMORY;
#endif
return (ISC_R_SUCCESS);
-#ifdef CRYPTO_LOCK_ENGINE
+#ifdef USE_ENGINE
cleanup_rm:
dst__mem_free(rm);
#endif
void
dst__openssl_destroy() {
+#ifdef USE_ENGINE
+ if (e != NULL) {
+ ENGINE_free(e);
+ e = NULL;
+ }
+#endif
if (locks != NULL) {
RUNTIME_CHECK(isc_mutexblock_destroy(locks, nlocks) ==
ISC_R_SUCCESS);