summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2015-01-08 00:25:05 +0100
committerSergei Golubchik <serg@mariadb.org>2015-02-10 10:21:18 +0100
commitf3da18f635f43fdd4438213750ee97af74400ec0 (patch)
tree19e8ee82ce8fb5e6c4b83b7819e32e66b9fc7944
parentfaad7e0c1899798172d779746dd9bb2c1db89eb9 (diff)
downloadmariadb-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.cmake5
-rw-r--r--config.h.cmake1
-rw-r--r--include/my_crypt.h2
-rw-r--r--mysys_ssl/my_crypt.cc3
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)