diff options
author | Sergei Golubchik <serg@mariadb.org> | 2015-01-08 00:25:05 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2015-02-10 10:21:18 +0100 |
commit | f3da18f635f43fdd4438213750ee97af74400ec0 (patch) | |
tree | 19e8ee82ce8fb5e6c4b83b7819e32e66b9fc7944 | |
parent | faad7e0c1899798172d779746dd9bb2c1db89eb9 (diff) | |
download | mariadb-git-f3da18f635f43fdd4438213750ee97af74400ec0.tar.gz |
cmake-time detection for EVP_aes_128_ctr()
because old openssl versions (e.g. on labrador) don't have it
-rw-r--r-- | cmake/ssl.cmake | 5 | ||||
-rw-r--r-- | config.h.cmake | 1 | ||||
-rw-r--r-- | include/my_crypt.h | 2 | ||||
-rw-r--r-- | mysys_ssl/my_crypt.cc | 3 |
4 files changed, 8 insertions, 3 deletions
diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake index 0eabcba24c3..f6d2936b818 100644 --- a/cmake/ssl.cmake +++ b/cmake/ssl.cmake @@ -55,6 +55,7 @@ MACRO (MYSQL_USE_BUNDLED_SSL) SET(SSL_INCLUDE_DIRS ${INC_DIRS}) SET(SSL_INTERNAL_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL) SET(SSL_DEFINES "-DHAVE_YASSL -DYASSL_PREFIX -DHAVE_OPENSSL -DMULTI_THREADED") + SET(HAVE_EncryptAes128Ctr OFF CACHE INTERNAL "yassl doesn't have EncryptAes128Ctr") CHANGE_SSL_SETTINGS("bundled") ADD_SUBDIRECTORY(extra/yassl) ADD_SUBDIRECTORY(extra/yassl/taocrypt) @@ -193,6 +194,10 @@ MACRO (MYSQL_CHECK_SSL) SET(SSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) SET(SSL_INTERNAL_INCLUDE_DIRS "") SET(SSL_DEFINES "-DHAVE_OPENSSL") + + SET(CMAKE_REQUIRED_LIBRARIES ${SSL_LIBRARIES}) + CHECK_SYMBOL_EXISTS(EVP_aes_128_ctr "openssl/evp.h" + HAVE_EncryptAes128Ctr) ELSE() IF(WITH_SSL STREQUAL "system") MESSAGE(SEND_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support") diff --git a/config.h.cmake b/config.h.cmake index a82d9d49233..bd3f4a9ebd6 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -589,6 +589,7 @@ #cmakedefine HAVE_CHARSET_utf32 1 #cmakedefine HAVE_UCA_COLLATIONS 1 #cmakedefine HAVE_COMPRESS 1 +#cmakedefine HAVE_EncryptAes128Ctr 1 /* diff --git a/include/my_crypt.h b/include/my_crypt.h index c6b5e734b5e..ea095e11fa9 100644 --- a/include/my_crypt.h +++ b/include/my_crypt.h @@ -7,8 +7,6 @@ #if !defined(HAVE_YASSL) && defined(HAVE_OPENSSL) -#define HAVE_EncryptAes128Ctr - C_MODE_START Crypt_result my_aes_encrypt_ctr(const uchar* source, uint32 source_length, uchar* dest, uint32* dest_length, diff --git a/mysys_ssl/my_crypt.cc b/mysys_ssl/my_crypt.cc index 0d49999fdfa..d92f76d633b 100644 --- a/mysys_ssl/my_crypt.cc +++ b/mysys_ssl/my_crypt.cc @@ -11,7 +11,6 @@ #include "mysql.h" #include <openssl/evp.h> #include <openssl/aes.h> -#include <openssl/rand.h> static const int CRYPT_ENCRYPT = 1; static const int CRYPT_DECRYPT = 0; @@ -350,6 +349,8 @@ C_MODE_END #else /* OpenSSL */ +#include <openssl/rand.h> + C_MODE_START Crypt_result my_random_bytes(uchar* buf, int num) |