mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 07:35:26 +00:00
3068. [bug] Named failed to build with a OpenSSL without engine
support. [RT #23473]
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
3068. [bug] Named failed to build with a OpenSSL without engine
|
||||||
|
support. [RT #23473]
|
||||||
|
|
||||||
3067. [bug] ixfr-from-differences {master|slave}; failed to
|
3067. [bug] ixfr-from-differences {master|slave}; failed to
|
||||||
select the master/slave zones. [RT #23580]
|
select the master/slave zones. [RT #23580]
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: dst_openssl.h,v 1.9 2009/10/06 04:40:14 tbox Exp $ */
|
/* $Id: dst_openssl.h,v 1.10 2011/03/11 01:11:54 marka Exp $ */
|
||||||
|
|
||||||
#ifndef DST_OPENSSL_H
|
#ifndef DST_OPENSSL_H
|
||||||
#define DST_OPENSSL_H 1
|
#define DST_OPENSSL_H 1
|
||||||
@@ -23,13 +23,28 @@
|
|||||||
#include <isc/lang.h>
|
#include <isc/lang.h>
|
||||||
#include <isc/result.h>
|
#include <isc/result.h>
|
||||||
|
|
||||||
|
#include <openssl/err.h>
|
||||||
|
#include <openssl/rand.h>
|
||||||
|
#include <openssl/evp.h>
|
||||||
|
#include <openssl/conf.h>
|
||||||
|
#include <openssl/crypto.h>
|
||||||
|
|
||||||
|
#if !defined(OPENSSL_NO_ENGINE) && defined(CRYPTO_LOCK_ENGINE) && \
|
||||||
|
(OPENSSL_VERSION_NUMBER >= 0x0090707f)
|
||||||
|
#define USE_ENGINE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
ISC_LANG_BEGINDECLS
|
ISC_LANG_BEGINDECLS
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
dst__openssl_toresult(isc_result_t fallback);
|
dst__openssl_toresult(isc_result_t fallback);
|
||||||
|
|
||||||
|
#ifdef USE_ENGINE
|
||||||
ENGINE *
|
ENGINE *
|
||||||
dst__openssl_getengine(const char *engine);
|
dst__openssl_getengine(const char *engine);
|
||||||
|
#else
|
||||||
|
#define dst__openssl_getengine(x) NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
ISC_LANG_ENDDECLS
|
ISC_LANG_ENDDECLS
|
||||||
|
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Principal Author: Brian Wellington
|
* Principal Author: Brian Wellington
|
||||||
* $Id: openssl_link.c,v 1.29 2010/09/15 12:38:36 tbox Exp $
|
* $Id: openssl_link.c,v 1.30 2011/03/11 01:11:54 marka Exp $
|
||||||
*/
|
*/
|
||||||
#ifdef OPENSSL
|
#ifdef OPENSSL
|
||||||
|
|
||||||
@@ -50,16 +50,6 @@
|
|||||||
#include "dst_internal.h"
|
#include "dst_internal.h"
|
||||||
#include "dst_openssl.h"
|
#include "dst_openssl.h"
|
||||||
|
|
||||||
#include <openssl/err.h>
|
|
||||||
#include <openssl/rand.h>
|
|
||||||
#include <openssl/evp.h>
|
|
||||||
#include <openssl/conf.h>
|
|
||||||
#include <openssl/crypto.h>
|
|
||||||
|
|
||||||
#if defined(CRYPTO_LOCK_ENGINE) && (OPENSSL_VERSION_NUMBER >= 0x0090707f)
|
|
||||||
#define USE_ENGINE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_ENGINE
|
#ifdef USE_ENGINE
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -308,19 +298,19 @@ dst__openssl_toresult(isc_result_t fallback) {
|
|||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(USE_ENGINE)
|
||||||
ENGINE *
|
ENGINE *
|
||||||
dst__openssl_getengine(const char *engine) {
|
dst__openssl_getengine(const char *engine) {
|
||||||
|
|
||||||
if (engine == NULL)
|
if (engine == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
#if defined(USE_ENGINE)
|
|
||||||
if (e == NULL)
|
if (e == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
if (strcmp(engine, ENGINE_get_id(e)) == 0)
|
if (strcmp(engine, ENGINE_get_id(e)) == 0)
|
||||||
return (e);
|
return (e);
|
||||||
#endif
|
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#else /* OPENSSL */
|
#else /* OPENSSL */
|
||||||
|
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Principal Author: Brian Wellington
|
* Principal Author: Brian Wellington
|
||||||
* $Id: opensslrsa_link.c,v 1.39 2011/01/11 23:47:13 tbox Exp $
|
* $Id: opensslrsa_link.c,v 1.40 2011/03/11 01:11:54 marka Exp $
|
||||||
*/
|
*/
|
||||||
#ifdef OPENSSL
|
#ifdef OPENSSL
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@@ -51,7 +51,9 @@
|
|||||||
#if OPENSSL_VERSION_NUMBER > 0x00908000L
|
#if OPENSSL_VERSION_NUMBER > 0x00908000L
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef USE_ENGINE
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We don't use configure for windows so enforce the OpenSSL version
|
* We don't use configure for windows so enforce the OpenSSL version
|
||||||
@@ -1138,7 +1140,9 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
|
|||||||
isc_result_t ret;
|
isc_result_t ret;
|
||||||
int i;
|
int i;
|
||||||
RSA *rsa = NULL, *pubrsa = NULL;
|
RSA *rsa = NULL, *pubrsa = NULL;
|
||||||
|
#ifdef USE_ENGINE
|
||||||
ENGINE *e = NULL;
|
ENGINE *e = NULL;
|
||||||
|
#endif
|
||||||
isc_mem_t *mctx = key->mctx;
|
isc_mem_t *mctx = key->mctx;
|
||||||
const char *engine = NULL, *label = NULL;
|
const char *engine = NULL, *label = NULL;
|
||||||
EVP_PKEY *pkey = NULL;
|
EVP_PKEY *pkey = NULL;
|
||||||
@@ -1175,6 +1179,7 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
|
|||||||
* See if we can fetch it.
|
* See if we can fetch it.
|
||||||
*/
|
*/
|
||||||
if (label != NULL) {
|
if (label != NULL) {
|
||||||
|
#ifdef USE_ENGINE
|
||||||
if (engine == NULL)
|
if (engine == NULL)
|
||||||
DST_RET(DST_R_NOENGINE);
|
DST_RET(DST_R_NOENGINE);
|
||||||
e = dst__openssl_getengine(engine);
|
e = dst__openssl_getengine(engine);
|
||||||
@@ -1209,6 +1214,9 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
|
|||||||
dst__privstruct_free(&priv, mctx);
|
dst__privstruct_free(&priv, mctx);
|
||||||
memset(&priv, 0, sizeof(priv));
|
memset(&priv, 0, sizeof(priv));
|
||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
|
#else
|
||||||
|
DST_RET(DST_R_NOENGINE);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
rsa = RSA_new();
|
rsa = RSA_new();
|
||||||
@@ -1303,6 +1311,7 @@ static isc_result_t
|
|||||||
opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label,
|
opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label,
|
||||||
const char *pin)
|
const char *pin)
|
||||||
{
|
{
|
||||||
|
#ifdef USE_ENGINE
|
||||||
ENGINE *e = NULL;
|
ENGINE *e = NULL;
|
||||||
isc_result_t ret;
|
isc_result_t ret;
|
||||||
EVP_PKEY *pkey = NULL;
|
EVP_PKEY *pkey = NULL;
|
||||||
@@ -1366,6 +1375,13 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label,
|
|||||||
if (pkey != NULL)
|
if (pkey != NULL)
|
||||||
EVP_PKEY_free(pkey);
|
EVP_PKEY_free(pkey);
|
||||||
return (ret);
|
return (ret);
|
||||||
|
#else
|
||||||
|
UNUSED(key);
|
||||||
|
UNUSED(engine);
|
||||||
|
UNUSED(label);
|
||||||
|
UNUSED(pin);
|
||||||
|
return(DST_R_NOENGINE);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static dst_func_t opensslrsa_functions = {
|
static dst_func_t opensslrsa_functions = {
|
||||||
|
Reference in New Issue
Block a user