mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
netutils/libwebsockets: Remove hard dependency on mbedTLS
libwebsockets can be built without TLS support. To allow this, it was necessary to create a specific Kconfig option that enables TLS support if OPENSSL_MBEDTLS_WRAPPER is enabled. Otherwise, TLS is not supported (but libwebsockets can still be used with plain ws:// connections). Signed-off-by: Tiago Medicci <tiago.medicci@espressif.com>
This commit is contained in:
parent
c51180d780
commit
d106011a7f
5 changed files with 36 additions and 14 deletions
|
|
@ -21,7 +21,7 @@
|
|||
if(CONFIG_NETUTILS_LIBWEBSOCKETS)
|
||||
|
||||
# ############################################################################
|
||||
# Config and Fetch MbedTLS lib
|
||||
# Config and Fetch libwebsockets
|
||||
# ############################################################################
|
||||
|
||||
set(LIBWEBSOCKETS_DIR ${CMAKE_CURRENT_LIST_DIR}/libwebsockets)
|
||||
|
|
@ -66,7 +66,7 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS)
|
|||
-Wno-shadow)
|
||||
|
||||
set(INCDIR
|
||||
.
|
||||
${CMAKE_CURRENT_LIST_DIR}
|
||||
${LIBWEBSOCKETS_DIR}/lib/core
|
||||
${LIBWEBSOCKETS_DIR}/lib/plat/unix
|
||||
${LIBWEBSOCKETS_DIR}/lib/event-libs
|
||||
|
|
@ -78,9 +78,7 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS)
|
|||
${LIBWEBSOCKETS_DIR}/lib/roles/h1
|
||||
${LIBWEBSOCKETS_DIR}/lib/roles/h2
|
||||
${LIBWEBSOCKETS_DIR}/lib/roles/ws
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include/internal)
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls)
|
||||
|
||||
set(CSRCS
|
||||
${LIBWEBSOCKETS_DIR}/lib/plat/unix/unix-caps.c
|
||||
|
|
@ -146,7 +144,14 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS)
|
|||
${LIBWEBSOCKETS_DIR}/lib/roles/raw-skt/ops-raw-skt.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/roles/raw-file/ops-raw-file.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/roles/http/client/client-http.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/event-libs/poll/poll.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/event-libs/poll/poll.c)
|
||||
|
||||
if(CONFIG_NETUTILS_LIBWEBSOCKETS_TLS)
|
||||
list(APPEND INCDIR ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include/internal)
|
||||
list(
|
||||
APPEND
|
||||
CSRCS
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/tls.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/tls-network.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/tls-sessions.c
|
||||
|
|
@ -157,6 +162,7 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS)
|
|||
${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/mbedtls-ssl.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/mbedtls-session.c
|
||||
${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/mbedtls-client.c)
|
||||
endif()
|
||||
|
||||
if(CONFIG_NETUTILS_MQTTC)
|
||||
list(APPEND INCDIR ${LIBWEBSOCKETS_DIR}/lib/roles/mqtt)
|
||||
|
|
@ -178,7 +184,8 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS)
|
|||
set_property(
|
||||
TARGET nuttx
|
||||
APPEND
|
||||
PROPERTY NUTTX_INCLUDE_DIRECTORIES ${LIBWEBSOCKETS_DIR}/include)
|
||||
PROPERTY NUTTX_INCLUDE_DIRECTORIES ${LIBWEBSOCKETS_DIR}/include
|
||||
${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
nuttx_add_library(libwebsockets STATIC)
|
||||
target_sources(libwebsockets PRIVATE ${CSRCS})
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
config NETUTILS_LIBWEBSOCKETS
|
||||
bool "libwebsockets library (current version)"
|
||||
default n
|
||||
depends on NET && OPENSSL_MBEDTLS_WRAPPER
|
||||
depends on NET
|
||||
---help---
|
||||
Enables the libwebsockets library.
|
||||
|
||||
|
|
@ -16,4 +16,13 @@ config NETUTILS_LIBWEBSOCKETS_VERSION
|
|||
string "Version number"
|
||||
default "4.3.1"
|
||||
|
||||
config NETUTILS_LIBWEBSOCKETS_TLS
|
||||
bool "Enable TLS support"
|
||||
default y
|
||||
depends on OPENSSL_MBEDTLS_WRAPPER
|
||||
---help---
|
||||
Enable TLS in libwebsockets via the OpenSSL-mbedTLS
|
||||
wrapper. Requires CONFIG_OPENSSL_MBEDTLS_WRAPPER.
|
||||
When disabled, only plain ws:// connections are supported.
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -25,7 +25,9 @@ CONFIGURED_APPS += $(APPDIR)/netutils/libwebsockets
|
|||
|
||||
# Allows `<libwebsockets/<>.h>` import.
|
||||
|
||||
CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include
|
||||
CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include
|
||||
CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets
|
||||
CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include
|
||||
CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets
|
||||
CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -118,6 +118,7 @@ CSRCS += \
|
|||
$(LIBWEBSOCKETS_UNPACK)/lib/roles/http/client/client-http.c \
|
||||
$(LIBWEBSOCKETS_UNPACK)/lib/event-libs/poll/poll.c
|
||||
|
||||
ifneq ($(CONFIG_NETUTILS_LIBWEBSOCKETS_TLS),)
|
||||
CSRCS += \
|
||||
$(LIBWEBSOCKETS_UNPACK)/lib/tls/tls.c \
|
||||
$(LIBWEBSOCKETS_UNPACK)/lib/tls/tls-network.c \
|
||||
|
|
@ -128,7 +129,8 @@ CSRCS += \
|
|||
$(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-x509.c \
|
||||
$(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-ssl.c \
|
||||
$(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-session.c \
|
||||
$(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-client.c \
|
||||
$(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-client.c
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_NETUTILS_MQTTC),)
|
||||
CFLAGS += -I$(LIBWEBSOCKETS_UNPACK)/lib/roles/mqtt
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@
|
|||
#define LWS_HAVE_MALLOC_H
|
||||
/* #define LWS_HAVE_MALLOC_TRIM */
|
||||
#define LWS_HAVE_MALLOC_USABLE_SIZE
|
||||
#ifdef CONFIG_CRYPTO_MBEDTLS
|
||||
#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS
|
||||
#define LWS_HAVE_mbedtls_md_setup
|
||||
#define LWS_HAVE_mbedtls_net_init
|
||||
#define LWS_HAVE_mbedtls_rsa_complete
|
||||
|
|
@ -187,8 +187,10 @@
|
|||
|
||||
/* #undef LWS_NO_CLIENT */
|
||||
#define LWS_NO_DAEMONIZE
|
||||
#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS
|
||||
#define LWS_OPENSSL_CLIENT_CERTS "/etc/ssl/certs"
|
||||
#define LWS_OPENSSL_SUPPORT
|
||||
#endif
|
||||
/* #undef LWS_PLAT_OPTEE */
|
||||
#define LWS_PLAT_UNIX
|
||||
/* #undef LWS_PLAT_FREERTOS */
|
||||
|
|
@ -281,7 +283,7 @@
|
|||
/* #undef LWS_WITH_SDEVENT */
|
||||
#define LWS_WITH_LWSAC
|
||||
#define LWS_LOGS_TIMESTAMP
|
||||
#ifdef CONFIG_CRYPTO_MBEDTLS
|
||||
#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS
|
||||
#define LWS_WITH_MBEDTLS
|
||||
#endif
|
||||
/* #undef LWS_WITH_MINIZ */
|
||||
|
|
@ -355,7 +357,7 @@
|
|||
/* #undef LWS_WITH_SYS_NTPCLIENT */
|
||||
#define LWS_WITH_SYS_STATE
|
||||
/* #undef LWS_WITH_THREADPOOL */
|
||||
#ifdef CONFIG_CRYPTO_MBEDTLS
|
||||
#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS
|
||||
#define LWS_WITH_TLS
|
||||
/* #undef LWS_WITH_TLS_JIT_TRUST */
|
||||
#define LWS_WITH_TLS_SESSIONS
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue