From 21655e396c8dc60ca8fcbecc4fec2711f9b29bfd Mon Sep 17 00:00:00 2001 From: Anderson Toshiyuki Sasaki Date: Tue, 5 Nov 2019 16:17:22 +0100 Subject: [PATCH] cmake: Only use OpenSSL Ed25519 implementation when possible It is possible for OpenSSL to have the type EVP_PKEY_ED25519 in openssl/evp.h, but not the single shot functions EVP_DigestSign() and EVP_DigestVerify() which are required to generate Ed25519 signatures. Only switch to use OpenSSL Ed25519 implementation when OpenSSL have all required types and functions. Fixes: T197 Signed-off-by: Anderson Toshiyuki Sasaki Reviewed-by: Andreas Schneider --- ConfigureChecks.cmake | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index ab5c35a8..c8bb2aa0 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -148,7 +148,12 @@ if (OPENSSL_FOUND) set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) - check_symbol_exists(EVP_PKEY_ED25519 "openssl/evp.h" HAVE_OPENSSL_ED25519) + check_symbol_exists(EVP_PKEY_ED25519 "openssl/evp.h" FOUND_OPENSSL_ED25519) + + if (HAVE_OPENSSL_EVP_DIGESTSIGN AND HAVE_OPENSSL_EVP_DIGESTVERIFY AND + FOUND_OPENSSL_ED25519) + set(HAVE_OPENSSL_ED25519 1) + endif() set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})