diff --git a/ChangeLog b/ChangeLog index 8e79d4876a7136b02a8f425cc89e9dffe5446e8c..eb9e70062c6619d6377b4f3009bab8934bba7839 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 c0709498ab2bf88caaee66f82bb6df889a239b88..a7d4cfa4b622ad4ebff87cdade2e0323319b92c2 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 20698a88a7df560f3e66a99bbe5e6ecf02ab48e1..3f8588331989e87a67108665ad1924df71abd8f9 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.");