project(uencrypt LANGUAGES C)
option(USE_WOLFSSL "Use WolfSSL as crypto provider" OFF)
-if (USE_WOLFSSL)
- add_definitions(-DUSE_WOLFSSL)
- find_library(WOLFSSL_LIBRARY wolfssl REQUIRED)
- set(CRYPTO_LIBRARIES ${WOLFSSL_LIBRARY})
+option(USE_MBEDTLS "Use mbedTLS as crypto provider" OFF)
+if (USE_MBEDTLS)
+ if (USE_WOLFSSL)
+ message(WARNING "USE_MBEDTLS and USE_WOLFSSL are both set. Building with USE_MBEDTLS.")
+ endif()
+ add_definitions(-DUSE_MBEDTLS)
+ find_library(MBEDCRYPTO_LIBRARY mbedcrypto REQUIRED)
+ set(CRYPTO_LIBRARIES ${MBEDCRYPTO_LIBRARY})
+ add_executable(${PROJECT_NAME} ${PROJECT_NAME}-mbedtls.c)
else()
- find_package(OpenSSL REQUIRED)
- set(CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
+ add_executable(${PROJECT_NAME} ${PROJECT_NAME}-openssl.c)
+ if (USE_WOLFSSL)
+ add_definitions(-DUSE_WOLFSSL)
+ find_library(WOLFSSL_LIBRARY wolfssl REQUIRED)
+ set(CRYPTO_LIBRARIES ${WOLFSSL_LIBRARY})
+ else()
+ find_package(OpenSSL REQUIRED)
+ set(CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
+ endif()
endif()
-add_executable(${PROJECT_NAME} ${PROJECT_NAME}.c)
target_link_libraries(${PROJECT_NAME} ${CRYPTO_LIBRARIES})
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)