Add mbedtls as an alternative to OpenSSL, plan to implement TLS connections later

This commit is contained in:
KimLS
2019-06-23 17:04:33 -07:00
parent 3ddfed8bb6
commit 120cf6a4b8
4 changed files with 268 additions and 26 deletions
+38 -5
View File
@@ -191,6 +191,7 @@ FIND_PACKAGE(OpenSSL)
FIND_PACKAGE(Lua51)
FIND_PACKAGE(PerlLibs)
FIND_PACKAGE(Sodium)
FIND_PACKAGE(mbedTLS)
MESSAGE(STATUS "**************************************************")
MESSAGE(STATUS "* Library Detection *")
@@ -215,9 +216,15 @@ ELSE()
ENDIF()
IF(SODIUM_FOUND)
MESSAGE(STATUS "* Sodium: FOUND *")
MESSAGE(STATUS "* libsodium: FOUND *")
ELSE()
MESSAGE(STATUS "* Sodium: MISSING *")
MESSAGE(STATUS "* libsodium: MISSING *")
ENDIF()
IF(MBEDTLS_FOUND)
MESSAGE(STATUS "* mbedTLS: FOUND *")
ELSE()
MESSAGE(STATUS "* mbedTLS: MISSING *")
ENDIF()
MESSAGE(STATUS "**************************************************")
@@ -271,15 +278,41 @@ IF(SODIUM_FOUND)
ENDIF()
ENDIF()
IF(OpenSSL_FOUND)
IF(OpenSSL_FOUND OR MBEDTLS_FOUND)
OPTION(EQEMU_BUILD_LOGIN "Build the login server." ON)
SET(SERVER_LIBS ${SERVER_LIBS} ${OPENSSL_LIBRARIES})
IF(OpenSSL_FOUND AND MBEDTLS_FOUND)
SET(EQEMU_CRYPTO_LIB mbedTLS CACHE STRING "Crypto library to use:
OpenSSL
mbedTLS"
)
IF(EQEMU_CRYPTO_LIB STREQUAL "OpenSSL")
INCLUDE_DIRECTORIES(SYSTEM "${OPENSSL_INCLUDE_DIR}")
SET(SERVER_LIBS ${SERVER_LIBS} ${OPENSSL_LIBRARIES})
ADD_DEFINITIONS(-DEQEMU_USE_OPENSSL)
ELSEIF(EQEMU_CRYPTO_LIB STREQUAL "mbedTLS")
INCLUDE_DIRECTORIES(SYSTEM "${MBEDTLS_INCLUDE_DIR}")
SET(SERVER_LIBS ${SERVER_LIBS} ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY})
ADD_DEFINITIONS(-DEQEMU_USE_MBEDTLS)
ELSE()
MESSAGE(FATAL_ERROR "Unknown crypto library set, must be one of these: mbedTLS, OpenSSL")
ENDIF()
ELSEIF(OpenSSL_FOUND)
INCLUDE_DIRECTORIES(SYSTEM "${OPENSSL_INCLUDE_DIR}")
SET(SERVER_LIBS ${SERVER_LIBS} ${OPENSSL_LIBRARIES})
ADD_DEFINITIONS(-DEQEMU_USE_OPENSSL)
ELSEIF(MBEDTLS_FOUND)
INCLUDE_DIRECTORIES(SYSTEM "${MBEDTLS_INCLUDE_DIR}")
SET(SERVER_LIBS ${SERVER_LIBS} ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY})
ADD_DEFINITIONS(-DEQEMU_USE_MBEDTLS)
ENDIF()
ENDIF()
INCLUDE_DIRECTORIES(SYSTEM "${ZLIB_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES(SYSTEM "${MySQL_INCLUDE_DIR}")
INCLUDE_DIRECTORIES(SYSTEM "${Boost_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES(SYSTEM "${OPENSSL_INCLUDE_DIR}")
INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/glm")
INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/cereal/include")
INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/fmt/include")