mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
d823106aa6
Implement asio-ssl layer with three classes in asio::ssl::mbedtls: * context -- replaces SSL_CTX, used mainly as a container to options, certs, keys * engine -- replaces SSL, implements the actual mbedtls operations * bio -- implements openssl BIO specifically tailered to mbedtls and its asio usage Further updates: * asio: Used shared_ptr<> for bio pairs * asio: Add error checks to mbedtls-bio * asio: Address potential ssl-context ownership issue * asio: Address potential bio-engine ownership issue
45 lines
1.6 KiB
CMake
45 lines
1.6 KiB
CMake
if(NOT CONFIG_LWIP_IPV6 AND NOT CMAKE_BUILD_EARLY_EXPANSION)
|
|
# note: the component is still included in the build so it can become visible again in config
|
|
# without needing to re-run CMake. However no source or header files are built.
|
|
message(STATUS "IPV6 support is disabled so the asio component will not be built")
|
|
idf_component_register()
|
|
return()
|
|
endif()
|
|
|
|
set(asio_sources "asio/asio/src/asio.cpp")
|
|
|
|
if(CONFIG_ASIO_SSL_SUPPORT)
|
|
if(CONFIG_ASIO_USE_ESP_OPENSSL)
|
|
list(APPEND asio_sources
|
|
"port/src/asio_ssl_impl.cpp"
|
|
"port/mbedtls/src/mbedtls_context.cpp"
|
|
"port/mbedtls/src/mbedtls_engine.cpp")
|
|
set(asio_priv_includes "port/mbedtls/include")
|
|
endif()
|
|
|
|
if(CONFIG_ASIO_USE_ESP_WOLFSSL)
|
|
list(APPEND asio_sources
|
|
"asio/asio/src/asio_ssl.cpp")
|
|
endif()
|
|
endif()
|
|
|
|
idf_component_register(SRCS ${asio_sources}
|
|
INCLUDE_DIRS "asio/asio/include" "port/include"
|
|
PRIV_INCLUDE_DIRS ${asio_priv_includes}
|
|
REQUIRES lwip)
|
|
|
|
if(CONFIG_ASIO_SSL_SUPPORT)
|
|
if(CONFIG_ASIO_USE_ESP_WOLFSSL)
|
|
idf_component_get_property(wolflib esp-wolfssl COMPONENT_LIB)
|
|
idf_component_get_property(wolfdir esp-wolfssl COMPONENT_DIR)
|
|
|
|
target_link_libraries(${COMPONENT_LIB} PUBLIC ${wolflib})
|
|
target_include_directories(${COMPONENT_LIB} PUBLIC ${wolfdir}/wolfssl/wolfssl)
|
|
endif()
|
|
|
|
if(CONFIG_ASIO_USE_ESP_OPENSSL)
|
|
idf_component_get_property(mbedtls mbedtls COMPONENT_LIB)
|
|
target_link_libraries(${COMPONENT_LIB} PUBLIC ${mbedtls})
|
|
endif()
|
|
endif()
|