7fe31e1892
Changes some solib versions and fixes two important CVEs: CVE-2020-8616 CVE-2020-8617
84 lines
2.4 KiB
Diff
84 lines
2.4 KiB
Diff
From 124c9e4c0500e7589ee63376e8f860f4abc675f2 Mon Sep 17 00:00:00 2001
|
|
From: Petr Mensik <pemensik@redhat.com>
|
|
Date: Fri, 18 Oct 2019 21:30:52 +0200
|
|
Subject: [PATCH] Move USE_PKCS11 and USE_OPENSSL out of config.h
|
|
|
|
Building two variants with the same common code requires to unset
|
|
USE_PKCS11 on part of build. That is not possible with config.h value.
|
|
Move it as normal define to CDEFINES.
|
|
---
|
|
bin/confgen/Makefile.in | 2 +-
|
|
configure.ac | 8 ++++++--
|
|
lib/dns/dst_internal.h | 12 +++++++++---
|
|
3 files changed, 16 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/bin/confgen/Makefile.in b/bin/confgen/Makefile.in
|
|
index 1f5165a..ef3e70c 100644
|
|
--- a/bin/confgen/Makefile.in
|
|
+++ b/bin/confgen/Makefile.in
|
|
@@ -22,7 +22,7 @@ VERSION=@BIND9_VERSION@
|
|
CINCLUDES = -I${srcdir}/include ${ISC_INCLUDES} ${ISCCC_INCLUDES} \
|
|
${ISCCFG_INCLUDES} ${DNS_INCLUDES} ${BIND9_INCLUDES}
|
|
|
|
-CDEFINES =
|
|
+CDEFINES = @USE_PKCS11@
|
|
CWARNINGS =
|
|
|
|
ISCCFGLIBS = ../../lib/isccfg/libisccfg.@A@
|
|
diff --git a/configure.ac b/configure.ac
|
|
index fde41dc..e5cc3cd 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -889,10 +889,14 @@ AS_CASE([$enable_native_pkcs11],
|
|
AC_SUBST([PKCS11_TEST])
|
|
AC_SUBST([PKCS11_TOOLS])
|
|
|
|
+USE_PKCS11='-DUSE_PKCS11=0'
|
|
+USE_OPENSSL='-DUSE_OPENSSL=0'
|
|
AC_SUBST([CRYPTO])
|
|
AS_CASE([$CRYPTO],
|
|
- [pkcs11],[AC_DEFINE([USE_PKCS11], [1], [define if PKCS11 is used for Public-Key Cryptography])],
|
|
- [AC_DEFINE([USE_OPENSSL], [1], [define if OpenSSL is used for Public-Key Cryptography])])
|
|
+ [pkcs11],[USE_PKCS11='-DUSE_PKCS11=1'],
|
|
+ [USE_OPENSSL='-DUSE_OPENSSL=1'])
|
|
+AC_SUBST(USE_PKCS11)
|
|
+AC_SUBST(USE_OPENSSL)
|
|
|
|
# preparation for automake
|
|
# AM_CONDITIONAL([PKCS11_TOOLS], [test "$with_native_pkcs11" = "yes"])
|
|
diff --git a/lib/dns/dst_internal.h b/lib/dns/dst_internal.h
|
|
index 116e2d2..99bdf5b 100644
|
|
--- a/lib/dns/dst_internal.h
|
|
+++ b/lib/dns/dst_internal.h
|
|
@@ -38,6 +38,13 @@
|
|
#include <isc/stdtime.h>
|
|
#include <isc/types.h>
|
|
|
|
+#ifndef USE_PKCS11
|
|
+#define USE_PKCS11 0
|
|
+#endif
|
|
+#ifndef USE_OPENSSL
|
|
+#define USE_OPENSSL (! USE_PKCS11)
|
|
+#endif
|
|
+
|
|
#if USE_PKCS11
|
|
#include <pk11/pk11.h>
|
|
#include <pk11/site.h>
|
|
@@ -98,11 +105,10 @@ struct dst_key {
|
|
void *generic;
|
|
gss_ctx_id_t gssctx;
|
|
DH *dh;
|
|
-#if USE_OPENSSL
|
|
- EVP_PKEY *pkey;
|
|
-#endif /* if USE_OPENSSL */
|
|
#if USE_PKCS11
|
|
pk11_object_t *pkey;
|
|
+#else
|
|
+ EVP_PKEY *pkey;
|
|
#endif /* if USE_PKCS11 */
|
|
dst_hmac_key_t *hmac_key;
|
|
} keydata; /*%< pointer to key in crypto pkg fmt */
|
|
--
|
|
2.21.1
|
|
|