From 072d2aa01a902b6c756b9cfbfe0b5de0be9171d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Tue, 5 Dec 2023 20:52:33 +0100 Subject: [PATCH] Extend openssl configure tests to check for relevant headers and functions. --- ChangeLog | 4 ++++ configure.ac | 14 +++++++++----- examples/hogweed-benchmark.c | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8e79d487..eb9e7006 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2023-12-05 Niels Möller <nisse@lysator.liu.se> + * 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."); -- GitLab