From 3daf1760a18c091159338fc9077fa71bfbd726a1 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sun, 6 Nov 2016 15:43:31 +0100 Subject: [PATCH] cmake: Use configure check for CRYPTO_ctr128_encrypt Signed-off-by: Andreas Schneider --- ConfigureChecks.cmake | 4 ++++ config.h.cmake | 3 +++ src/libcrypto.c | 6 +++--- 3 files changed, 10 insertions(+), 3 deletions(-) Index: libssh-0.7.5/ConfigureChecks.cmake =================================================================== --- libssh-0.7.5.orig/ConfigureChecks.cmake 2017-09-15 11:35:09.493600110 +0200 +++ libssh-0.7.5/ConfigureChecks.cmake 2017-09-15 11:35:09.505600299 +0200 @@ -95,6 +95,10 @@ if (OPENSSL_FOUND) set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) check_function_exists(CRYPTO_THREADID_set_callback HAVE_OPENSSL_CRYPTO_THREADID_SET_CALLBACK) + + set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) + check_function_exists(CRYPTO_ctr128_encrypt HAVE_OPENSSL_CRYPTO_CTR128_ENCRYPT) endif() if (CMAKE_HAVE_PTHREAD_H) Index: libssh-0.7.5/config.h.cmake =================================================================== --- libssh-0.7.5.orig/config.h.cmake 2017-09-15 11:35:09.493600110 +0200 +++ libssh-0.7.5/config.h.cmake 2017-09-15 11:35:09.505600299 +0200 @@ -79,6 +79,9 @@ /* Define to 1 if you have the `CRYPTO_THREADID_set_callback' function. */ #cmakedefine HAVE_OPENSSL_CRYPTO_THREADID_SET_CALLBACK 1 +/* Define to 1 if you have the `CRYPTO_ctr128_encrypt' function. */ +#cmakedefine HAVE_OPENSSL_CRYPTO_CTR128_ENCRYPT 1 + /* Define to 1 if you have the `snprintf' function. */ #cmakedefine HAVE_SNPRINTF 1 Index: libssh-0.7.5/src/libcrypto.c =================================================================== --- libssh-0.7.5.orig/src/libcrypto.c 2017-09-15 11:35:09.473599793 +0200 +++ libssh-0.7.5/src/libcrypto.c 2017-09-15 11:35:09.505600299 +0200 @@ -41,6 +41,8 @@ #include #include #include +#include +#include #include #include #include "libcrypto-compat.h" @@ -458,11 +460,12 @@ static void aes_ctr128_encrypt(struct ss * Same for num, which is being used to store the current offset in blocksize in CTR * function. */ -# if OPENSSL_VERSION_NUMBER >= 0x10100000L - CRYPTO_ctr128_encrypt(in, out, len, &cipher->aes_key->key, cipher->aes_key->IV, tmp_buffer, &num, (block128_f)AES_encrypt); -# else +#ifdef HAVE_OPENSSL_CRYPTO_CTR128_ENCRYPT + CRYPTO_ctr128_encrypt(in, out, len, cipher->key, cipher->IV, tmp_buffer, &num, (block128_f)AES_encrypt); +#else + AES_ctr128_encrypt(in, out, len, cipher->key, cipher->IV, tmp_buffer, &num); -# endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */ +#endif /* HAVE_OPENSSL_CRYPTO_CTR128_ENCRYPT */ } #endif /* BROKEN_AES_CTR */ #endif /* HAS_AES */