forked from libssh2/libssh2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
crypto: add support for the mbedTLS backend
Closes libssh2#132
- Loading branch information
Showing
5 changed files
with
1,061 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# - Try to find mbedTLS | ||
# Once done this will define | ||
# | ||
# Read-Only variables | ||
# MBEDTLS_FOUND - system has mbedTLS | ||
# MBEDTLS_INCLUDE_DIR - the mbedTLS include directory | ||
# MBEDTLS_LIBRARY_DIR - the mbedTLS library directory | ||
# MBEDTLS_LIBRARIES - Link these to use mbedTLS | ||
# MBEDTLS_LIBRARY - path to mbedTLS library | ||
# MBEDX509_LIBRARY - path to mbedTLS X.509 library | ||
# MBEDCRYPTO_LIBRARY - path to mbedTLS Crypto library | ||
|
||
FIND_PATH(MBEDTLS_INCLUDE_DIR mbedtls/version.h) | ||
|
||
IF(MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARIES) | ||
# Already in cache, be silent | ||
SET(MBEDTLS_FIND_QUIETLY TRUE) | ||
ENDIF() | ||
|
||
FIND_LIBRARY(MBEDTLS_LIBRARY NAMES mbedtls libmbedtls libmbedx509) | ||
FIND_LIBRARY(MBEDX509_LIBRARY NAMES mbedx509 libmbedx509) | ||
FIND_LIBRARY(MBEDCRYPTO_LIBRARY NAMES mbedcrypto libmbedcrypto) | ||
|
||
IF(MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARY AND MBEDX509_LIBRARY AND MBEDCRYPTO_LIBRARY) | ||
SET(MBEDTLS_FOUND TRUE) | ||
ENDIF() | ||
|
||
IF(MBEDTLS_FOUND) | ||
# split mbedTLS into -L and -l linker options, so we can set them for pkg-config | ||
GET_FILENAME_COMPONENT(MBEDTLS_LIBRARY_DIR ${MBEDTLS_LIBRARY} PATH) | ||
GET_FILENAME_COMPONENT(MBEDTLS_LIBRARY_FILE ${MBEDTLS_LIBRARY} NAME_WE) | ||
GET_FILENAME_COMPONENT(MBEDX509_LIBRARY_FILE ${MBEDX509_LIBRARY} NAME_WE) | ||
GET_FILENAME_COMPONENT(MBEDCRYPTO_LIBRARY_FILE ${MBEDCRYPTO_LIBRARY} NAME_WE) | ||
STRING(REGEX REPLACE "^lib" "" MBEDTLS_LIBRARY_FILE ${MBEDTLS_LIBRARY_FILE}) | ||
STRING(REGEX REPLACE "^lib" "" MBEDX509_LIBRARY_FILE ${MBEDX509_LIBRARY_FILE}) | ||
STRING(REGEX REPLACE "^lib" "" MBEDCRYPTO_LIBRARY_FILE ${MBEDCRYPTO_LIBRARY_FILE}) | ||
SET(MBEDTLS_LIBRARIES "-L${MBEDTLS_LIBRARY_DIR} -l${MBEDTLS_LIBRARY_FILE} -l${MBEDX509_LIBRARY_FILE} -l${MBEDCRYPTO_LIBRARY_FILE}") | ||
|
||
IF(NOT MBEDTLS_FIND_QUIETLY) | ||
MESSAGE(STATUS "Found mbedTLS:") | ||
FILE(READ ${MBEDTLS_INCLUDE_DIR}/mbedtls/version.h MBEDTLSCONTENT) | ||
STRING(REGEX MATCH "MBEDTLS_VERSION_STRING +\"[0-9|.]+\"" MBEDTLSMATCH ${MBEDTLSCONTENT}) | ||
IF (MBEDTLSMATCH) | ||
STRING(REGEX REPLACE "MBEDTLS_VERSION_STRING +\"([0-9|.]+)\"" "\\1" MBEDTLS_VERSION ${MBEDTLSMATCH}) | ||
MESSAGE(STATUS " version ${MBEDTLS_VERSION}") | ||
ENDIF(MBEDTLSMATCH) | ||
MESSAGE(STATUS " TLS: ${MBEDTLS_LIBRARY}") | ||
MESSAGE(STATUS " X509: ${MBEDX509_LIBRARY}") | ||
MESSAGE(STATUS " Crypto: ${MBEDCRYPTO_LIBRARY}") | ||
ENDIF(NOT MBEDTLS_FIND_QUIETLY) | ||
ELSE(MBEDTLS_FOUND) | ||
IF(MBEDTLS_FIND_REQUIRED) | ||
MESSAGE(FATAL_ERROR "Could not find mbedTLS") | ||
ENDIF(MBEDTLS_FIND_REQUIRED) | ||
ENDIF(MBEDTLS_FOUND) | ||
|
||
MARK_AS_ADVANCED( | ||
MBEDTLS_INCLUDE_DIR | ||
MBEDTLS_LIBRARY_DIR | ||
MBEDTLS_LIBRARIES | ||
MBEDTLS_LIBRARY | ||
MBEDX509_LIBRARY | ||
MBEDCRYPTO_LIBRARY | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.