From: Niels Möller Date: Tue, 5 Dec 2023 19:52:33 +0000 (+0100) Subject: Extend openssl configure tests to check for relevant headers and functions. X-Git-Tag: nettle_3.10rc1~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fupdate-openssl-bench;p=thirdparty%2Fnettle.git Extend openssl configure tests to check for relevant headers and functions. --- diff --git a/ChangeLog b/ChangeLog index 8e79d487..eb9e7006 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2023-12-05 Niels Möller + * configure.ac: In openssl tests, check for the headers actually + used by the benchmarking code, and for a subset of the relevant + functions. + * examples/nettle-openssl.c: Trim openssl includes and defines, and use Nettle's definition of sha1 and md5 constants. (nettle_openssl_init): Deleted. diff --git a/configure.ac b/configure.ac index c0709498..a7d4cfa4 100644 --- a/configure.ac +++ b/configure.ac @@ -197,7 +197,7 @@ AC_TYPE_SIZE_T AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(size_t) -AC_CHECK_HEADERS([openssl/evp.h openssl/ecdsa.h],, +AC_CHECK_HEADERS([openssl/evp.h openssl/ec.h openssl/rsa.h],, [enable_openssl=no break]) @@ -1170,11 +1170,15 @@ AC_SUBST(IF_MINI_GMP) OPENSSL_LIBFLAGS='' -# Check for openssl's libcrypto (used only for benchmarking) +# Check for openssl's libcrypto (used only for benchmarking), test for +# a few of the functions used. if test x$enable_openssl = xyes ; then - AC_CHECK_LIB(crypto, EVP_CIPHER_CTX_new, - [OPENSSL_LIBFLAGS='-lcrypto'], - [enable_openssl=no]) + for fun in EVP_CIPHER_CTX_new EVP_MD_CTX_new EVP_DigestVerifyFinal ; do + AC_CHECK_LIB(crypto, $fun, + [OPENSSL_LIBFLAGS='-lcrypto'], + [enable_openssl=no + break]) + done fi AH_TEMPLATE([WITH_OPENSSL], diff --git a/examples/hogweed-benchmark.c b/examples/hogweed-benchmark.c index 20698a88..3f858833 100644 --- a/examples/hogweed-benchmark.c +++ b/examples/hogweed-benchmark.c @@ -711,7 +711,7 @@ bench_openssl_init (EVP_PKEY *key, const EVP_MD *md) die ("OpenSSL key eneration failed.\n"); ctx->key = key; ctx->md = md; - ctx->md_ctx = EVP_MD_CTX_create(); + ctx->md_ctx = EVP_MD_CTX_new(); if (!ctx->md_ctx) die ("OpenSSL EVP_MD_CTX_create failed.");