Fix building against OpenSSL 1.1.x on Windows

Backport portions of 05d7aa5734 required
to support compilation against OpenSSL 1.1.x on Windows.
This commit is contained in:
Michał Kępień
2019-09-27 12:13:34 +02:00
parent d7801d5c8e
commit 7f87fce925
2 changed files with 51 additions and 0 deletions
+12
View File
@@ -364,6 +364,18 @@ typedef __int64 off_t;
/* Define if your OpenSSL version supports AES */
@HAVE_OPENSSL_AES@
/* Define if your OpenSSL version supports DH functions. */
@HAVE_DH_GET0_KEY@
/* Define if your OpenSSL version supports DSA functions. */
@HAVE_DSA_GET0_PQG@
/* Define if your OpenSSL version supports ECDSA functions. */
@HAVE_ECDSA_SIG_GET0@
/* Define if your OpenSSL version supports RSA functions. */
@HAVE_RSA_SET0_KEY@
/* HMAC_*() return ints */
@HMAC_RETURN_INT@
+39
View File
@@ -345,6 +345,9 @@ my @substdefh = ("ALLOW_FILTER_AAAA",
"DNS_RDATASET_FIXED",
"ENABLE_RPZ_NSDNAME",
"ENABLE_RPZ_NSIP",
"HAVE_DH_GET0_KEY",
"HAVE_DSA_GET0_PQG",
"HAVE_ECDSA_SIG_GET0",
"HAVE_EVP_SHA256",
"HAVE_EVP_SHA384",
"HAVE_EVP_SHA512",
@@ -366,6 +369,7 @@ my @substdefh = ("ALLOW_FILTER_AAAA",
"HAVE_PKCS11_ED448",
"HAVE_PKCS11_GOST",
"HAVE_READLINE",
"HAVE_RSA_SET0_KEY",
"HAVE_ZLIB",
"ISC_LIST_CHECKINIT",
"PREFER_GOSTASN1",
@@ -1790,6 +1794,41 @@ EOF
}
}
# check OpenSSL built-in support for DH/DSA/ECDSA/RSA functions
if ($use_openssl eq "yes") {
if ($verbose) {
printf "checking OpenSSL built-in support for DH/DSA/ECDSA/RSA functions\n";
}
open F, ">testosslfunc.c" || die $!;
print F << 'EOF';
#include <stdio.h>
#include <openssl/opensslv.h>
int main() {
if (OPENSSL_VERSION_NUMBER >= 0x10100000L) {
return (0);
}
printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
OPENSSL_VERSION_NUMBER);
printf("This version has no built-in support for DH/DSA/ECDSA/RSA functions.\n\n");
return (1);
}
EOF
close F;
my $include = $configinc{"OPENSSL_INC"};
my $library = $configlib{"OPENSSL_LIB"};
$compret = `cl /nologo /MD /I "$include" testosslfunc.c "$library"`;
if (grep { -f and -x } ".\\testosslfunc.exe") {
`.\\testosslfunc.exe`;
if ($? == 0) {
$configdefh{"HAVE_DH_GET0_KEY"} = 1;
$configdefh{"HAVE_DSA_GET0_PQG"} = 1;
$configdefh{"HAVE_ECDSA_SIG_GET0"} = 1;
$configdefh{"HAVE_RSA_SET0_KEY"} = 1;
}
}
}
# check FIPS_mode
if ($use_openssl eq "yes") {