If MbedTLS and OpenSSL are installed, the user can not decide which library should be used. OpenSSL will be used first.
https://github.com/goToMain/libosdp/blob/master/src/CMakeLists.txt#L39C1-L46C8
# optionally, find and use OpenSSL or MbedTLS
find_package(OpenSSL)
if (NOT OpenSSL_FOUND)
find_package(MbedTLS)
else()
set(MbedTLS_FOUND FALSE)
endif()
A selection would be nice instead:
-DCONFIG_OSDP_CRYPTO=mbedtls
set(CONFIG_OSDP_CRYPTO_DEFAULT "tinyaes")
set(CONFIG_OSDP_CRYPTO "${CONFIG_OSDP_CRYPTO_DEFAULT}" CACHE STRING
"Select crypto backend: tinyAES, mbedtls, openssl")
set_property(CACHE CONFIG_OSDP_CRYPTO PROPERTY STRINGS tinyAES mbedtls openssl)
string(TOLOWER "${CONFIG_OSDP_CRYPTO}" CONFIG_OSDP_CRYPTO)
set(VALID_BACKENDS tinyaes mbedtls openssl)
list(FIND VALID_BACKENDS "${CONFIG_OSDP_CRYPTO}" INDEX)
if(INDEX EQUAL -1)
message(WARNING
"Invalid CONFIG_OSDP_CRYPTO='${CONFIG_OSDP_CRYPTO}', falling back to default '${CONFIG_OSDP_CRYPTO_DEFAULT}'")
set(CONFIG_OSDP_CRYPTO "${CONFIG_OSDP_CRYPTO_DEFAULT}")
else()
message(STATUS "Using crypto backend: ${CONFIG_OSDP_CRYPTO}")
endif()
if(CONFIG_OSDP_CRYPTO STREQUAL "mbedtls")
find_package(MbedTLS REQUIRED)
if(NOT MbedTLS_FOUND)
message(FATAL_ERROR "mbedtls requested but not found on the system")
endif()
elseif(CONFIG_OSDP_CRYPTO STREQUAL "openssl")
find_package(OpenSSL REQUIRED)
if(NOT OpenSSL_FOUND)
message(FATAL_ERROR "OpenSSL requested but not found on the system")
endif()
endif()
If MbedTLS and OpenSSL are installed, the user can not decide which library should be used. OpenSSL will be used first.
https://github.com/goToMain/libosdp/blob/master/src/CMakeLists.txt#L39C1-L46C8
A selection would be nice instead:
-DCONFIG_OSDP_CRYPTO=mbedtls