/* Define if your OpenSSL version supports GOST. */
@HAVE_OPENSSL_GOST@
+/* 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@
+
/* Define if native PKCS#11 is used as cryptographic library provider */
@HAVE_PKCS11@
"HAVE_OPENSSL_ED448",
"HAVE_OPENSSL_EVP_AES",
"HAVE_OPENSSL_GOST",
+ "HAVE_DH_GET0_KEY",
+ "HAVE_DSA_GET0_PQG",
+ "HAVE_ECDSA_SIG_GET0",
+ "HAVE_RSA_SET0_KEY",
"HAVE_PKCS11",
"HAVE_PKCS11_ECDSA",
"HAVE_PKCS11_ED25519",
"redist", "1033"));
}
+ # 'VCToolsRedistDir' is available since Visual Studio 2017.
+ if ($ENV{"VCToolsRedistDir"}) {
+ push(@vcpaths, $ENV{"VCToolsRedistDir"});
+ }
+
my $rfile;
if ($want_win32 eq "yes") {
$rfile = "vcredist_x86.exe";
}
}
+# 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") {