You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-08 14:02:17 +03:00
105
CMakeLists.txt
105
CMakeLists.txt
@@ -311,69 +311,64 @@ IF(WITH_SSL STREQUAL "ON")
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(NOT WITH_SSL STREQUAL "OFF")
|
IF(WITH_SSL STREQUAL "OPENSSL")
|
||||||
IF(WITH_SSL STREQUAL "OPENSSL")
|
IF (NOT OPENSSL_FOUND)
|
||||||
IF (NOT OPENSSL_FOUND)
|
FIND_PACKAGE(OpenSSL)
|
||||||
FIND_PACKAGE(OpenSSL)
|
ENDIF()
|
||||||
|
IF(OPENSSL_FOUND)
|
||||||
|
ADD_DEFINITIONS(-DHAVE_OPENSSL -DHAVE_TLS)
|
||||||
|
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/openssl.c"
|
||||||
|
"${CC_SOURCE_DIR}/libmariadb/secure/openssl_crypt.c")
|
||||||
|
SET(SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
|
||||||
|
IF(WIN32 AND EXISTS ${OPENSSL_INCLUDE_DIR}/openssl/applink.c)
|
||||||
|
SET(HAVE_OPENSSL_APPLINK_C 1)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF(OPENSSL_FOUND)
|
IF(EXISTS ${OPENSSL_INCLUDE_DIR}/openssl/evp.h)
|
||||||
ADD_DEFINITIONS(-DHAVE_OPENSSL -DHAVE_TLS)
|
SET(HAVE_evp_pkey 1)
|
||||||
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/openssl.c"
|
ENDIF()
|
||||||
"${CC_SOURCE_DIR}/libmariadb/secure/openssl_crypt.c")
|
INCLUDE_DIRECTORIES(BEFORE ${OPENSSL_INCLUDE_DIR})
|
||||||
SET(SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
|
|
||||||
IF(WIN32 AND EXISTS ${OPENSSL_INCLUDE_DIR}/openssl/applink.c)
|
|
||||||
SET(HAVE_OPENSSL_APPLINK_C 1)
|
|
||||||
ENDIF()
|
|
||||||
IF(EXISTS ${OPENSSL_INCLUDE_DIR}/openssl/evp.h)
|
|
||||||
SET(HAVE_evp_pkey 1)
|
|
||||||
ENDIF()
|
|
||||||
INCLUDE_DIRECTORIES(BEFORE ${OPENSSL_INCLUDE_DIR})
|
|
||||||
|
|
||||||
|
|
||||||
TRY_RUN(LIBRESSL_RESULT HAVE_LIBRESSL
|
TRY_RUN(LIBRESSL_RESULT HAVE_LIBRESSL
|
||||||
${CMAKE_BINARY_DIR}
|
${CMAKE_BINARY_DIR}
|
||||||
${CC_SOURCE_DIR}/cmake/libressl_version.c
|
${CC_SOURCE_DIR}/cmake/libressl_version.c
|
||||||
COMPILE_DEFINITIONS "-I${OPENSSL_INCLUDE_DIR}"
|
COMPILE_DEFINITIONS "-I${OPENSSL_INCLUDE_DIR}"
|
||||||
RUN_OUTPUT_VARIABLE LIBRESSL_VERSION)
|
RUN_OUTPUT_VARIABLE LIBRESSL_VERSION)
|
||||||
IF(HAVE_LIBRESSL)
|
IF(HAVE_LIBRESSL)
|
||||||
ADD_DEFINITIONS(-DHAVE_LIBRESSL)
|
ADD_DEFINITIONS(-DHAVE_LIBRESSL)
|
||||||
SET(TLS_LIBRARY_VERSION ${LIBRESSL_VERSION})
|
SET(TLS_LIBRARY_VERSION ${LIBRESSL_VERSION})
|
||||||
ELSE()
|
|
||||||
SET(TLS_LIBRARY_VERSION "OpenSSL ${OPENSSL_VERSION}")
|
|
||||||
ENDIF()
|
|
||||||
ELSE()
|
ELSE()
|
||||||
MESSAGE1(TLS_LIBRARY_VERSION "OpenSSL/LibreSSL not found")
|
SET(TLS_LIBRARY_VERSION "OpenSSL ${OPENSSL_VERSION}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
ELSE()
|
||||||
|
MESSAGE1(TLS_LIBRARY_VERSION "OpenSSL/LibreSSL not found")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF(WITH_SSL STREQUAL "GNUTLS")
|
ELSEIF(WITH_SSL STREQUAL "GNUTLS")
|
||||||
FIND_PACKAGE(GnuTLS "3.3.24" REQUIRED)
|
FIND_PACKAGE(GnuTLS "3.3.24" REQUIRED)
|
||||||
IF(GNUTLS_FOUND)
|
IF(GNUTLS_FOUND)
|
||||||
ADD_DEFINITIONS(-DHAVE_GNUTLS -DHAVE_TLS)
|
ADD_DEFINITIONS(-DHAVE_GNUTLS -DHAVE_TLS)
|
||||||
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/gnutls.c"
|
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/gnutls.c"
|
||||||
"${CC_SOURCE_DIR}/libmariadb/secure/gnutls_crypt.c")
|
"${CC_SOURCE_DIR}/libmariadb/secure/gnutls_crypt.c")
|
||||||
SET(SSL_LIBRARIES ${GNUTLS_LIBRARY})
|
SET(SSL_LIBRARIES ${GNUTLS_LIBRARY})
|
||||||
SET(TLS_LIBRARY_VERSION "GnuTLS ${GNUTLS_VERSION_STRING}")
|
SET(TLS_LIBRARY_VERSION "GnuTLS ${GNUTLS_VERSION_STRING}")
|
||||||
INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_DIR})
|
||||||
ELSE()
|
ELSE()
|
||||||
MESSAGE(FATAL_ERROR "GnuTLS not found")
|
MESSAGE(FATAL_ERROR "GnuTLS not found")
|
||||||
ENDIF()
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF(WIN32)
|
ELSEIF(WIN32 AND WITH_SSL STREQUAL "SCHANNEL")
|
||||||
IF(WITH_SSL STREQUAL "SCHANNEL")
|
ADD_DEFINITIONS(-DHAVE_SCHANNEL -DHAVE_TLS -DHAVE_WINCRYPT)
|
||||||
ADD_DEFINITIONS(-DHAVE_SCHANNEL -DHAVE_TLS -DHAVE_WINCRYPT)
|
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/schannel.c"
|
||||||
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/schannel.c"
|
"${CC_SOURCE_DIR}/libmariadb/secure/win_crypt.c"
|
||||||
"${CC_SOURCE_DIR}/libmariadb/secure/win_crypt.c"
|
"${CC_SOURCE_DIR}/libmariadb/secure/ma_schannel.c"
|
||||||
"${CC_SOURCE_DIR}/libmariadb/secure/ma_schannel.c"
|
"${CC_SOURCE_DIR}/libmariadb/secure/schannel_certs.c")
|
||||||
"${CC_SOURCE_DIR}/libmariadb/secure/schannel_certs.c")
|
INCLUDE_DIRECTORIES("${CC_SOURCE_DIR}/plugins/pvio/")
|
||||||
INCLUDE_DIRECTORIES("${CC_SOURCE_DIR}/plugins/pvio/")
|
SET(SSL_LIBRARIES secur32 crypt32 bcrypt)
|
||||||
SET(SSL_LIBRARIES secur32 crypt32 bcrypt)
|
SET(TLS_LIBRARY_VERSION "Schannel ${CMAKE_SYSTEM_VERSION}")
|
||||||
SET(TLS_LIBRARY_VERSION "Schannel ${CMAKE_SYSTEM_VERSION}")
|
ELSE()
|
||||||
ENDIF()
|
MESSAGE(FATAL_ERROR "Invalid TLS/SSL option '${WITH_SSL}'")
|
||||||
ENDIF()
|
|
||||||
MESSAGE1(TLS_LIBRARY_VERSION "TLS library/version: ${TLS_LIBRARY_VERSION}")
|
|
||||||
|
|
||||||
MARK_AS_ADVANCED(SSL_SOURCES)
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
MESSAGE1(TLS_LIBRARY_VERSION "TLS library/version: ${TLS_LIBRARY_VERSION}")
|
||||||
|
MARK_AS_ADVANCED(SSL_SOURCES)
|
||||||
|
|
||||||
IF(WITH_BOOST_CONTEXT)
|
IF(WITH_BOOST_CONTEXT)
|
||||||
FIND_PACKAGE(Boost 1.40 COMPONENTS context REQUIRED)
|
FIND_PACKAGE(Boost 1.40 COMPONENTS context REQUIRED)
|
||||||
|
@@ -324,7 +324,6 @@ ma_compress.c
|
|||||||
ma_init.c
|
ma_init.c
|
||||||
ma_password.c
|
ma_password.c
|
||||||
ma_ll2str.c
|
ma_ll2str.c
|
||||||
ma_sha1.c
|
|
||||||
mariadb_stmt.c
|
mariadb_stmt.c
|
||||||
ma_loaddata.c
|
ma_loaddata.c
|
||||||
ma_stmt_codec.c
|
ma_stmt_codec.c
|
||||||
|
@@ -39,7 +39,7 @@
|
|||||||
#include <ma_global.h>
|
#include <ma_global.h>
|
||||||
#include <ma_sys.h>
|
#include <ma_sys.h>
|
||||||
#include <ma_string.h>
|
#include <ma_string.h>
|
||||||
#include <ma_sha1.h>
|
#include <ma_crypt.h>
|
||||||
#include "mysql.h"
|
#include "mysql.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -100,29 +100,26 @@ void my_crypt(unsigned char *buffer, const unsigned char *s1, const unsigned cha
|
|||||||
|
|
||||||
void ma_scramble_41(const unsigned char *buffer, const char *scramble, const char *password)
|
void ma_scramble_41(const unsigned char *buffer, const char *scramble, const char *password)
|
||||||
{
|
{
|
||||||
_MA_SHA1_CTX context;
|
MA_HASH_CTX *ctx;
|
||||||
unsigned char sha1[SHA1_MAX_LENGTH];
|
unsigned char sha1[MA_SHA1_HASH_SIZE];
|
||||||
unsigned char sha2[SHA1_MAX_LENGTH];
|
unsigned char sha2[MA_SHA1_HASH_SIZE];
|
||||||
|
|
||||||
|
|
||||||
/* Phase 1: hash password */
|
/* Phase 1: hash password */
|
||||||
ma_SHA1Init(&context);
|
ma_hash(MA_HASH_SHA1, (unsigned char *)password, strlen(password), sha1);
|
||||||
ma_SHA1Update(&context, (unsigned char *)password, strlen((char *)password));
|
|
||||||
ma_SHA1Final(sha1, &context);
|
|
||||||
|
|
||||||
/* Phase 2: hash sha1 */
|
/* Phase 2: hash sha1 */
|
||||||
ma_SHA1Init(&context);
|
ma_hash(MA_HASH_SHA1, (unsigned char *)sha1, MA_SHA1_HASH_SIZE, sha2);
|
||||||
ma_SHA1Update(&context, (unsigned char*)sha1, SHA1_MAX_LENGTH);
|
|
||||||
ma_SHA1Final(sha2, &context);
|
|
||||||
|
|
||||||
/* Phase 3: hash scramble + sha2 */
|
/* Phase 3: hash scramble + sha2 */
|
||||||
ma_SHA1Init(&context);
|
ctx= ma_hash_new(MA_HASH_SHA1);
|
||||||
ma_SHA1Update(&context, (unsigned char *)scramble, SCRAMBLE_LENGTH);
|
ma_hash_input(ctx, (unsigned char *)scramble, SCRAMBLE_LENGTH);
|
||||||
ma_SHA1Update(&context, (unsigned char*)sha2, SHA1_MAX_LENGTH);
|
ma_hash_input(ctx, (unsigned char *)sha2, MA_SHA1_HASH_SIZE);
|
||||||
ma_SHA1Final((unsigned char *)buffer, &context);
|
ma_hash_result(ctx, (unsigned char *)buffer);
|
||||||
|
ma_hash_free(ctx);
|
||||||
|
|
||||||
/* let's crypt buffer now */
|
/* let's crypt buffer now */
|
||||||
my_crypt((uchar *)buffer, (const unsigned char *)buffer, (const unsigned char *)sha1, SHA1_MAX_LENGTH);
|
my_crypt((uchar *)buffer, (const unsigned char *)buffer, (const unsigned char *)sha1, MA_SHA1_HASH_SIZE);
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
@@ -66,7 +66,6 @@
|
|||||||
#ifndef INADDR_NONE
|
#ifndef INADDR_NONE
|
||||||
#define INADDR_NONE -1
|
#define INADDR_NONE -1
|
||||||
#endif
|
#endif
|
||||||
#include <ma_sha1.h>
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user