Skip to content

Commit 9210470

Browse files
committed
x
1 parent eb204e0 commit 9210470

File tree

6 files changed

+40
-14
lines changed

6 files changed

+40
-14
lines changed

.sai.json

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -262,14 +262,15 @@
262262
"platforms": "none, coverity/x86_64/gcc",
263263
"cpack": "export STAMP=`git log -1 --pretty=format:%h` && rm -f libwebsockets.tgz && tar czvf libwebsockets.tgz cov-int && script -q -c \"cat /etc/coverity/secrets.sh | lws-minimal-http-client-post-form https://scan.coverity.com:443/builds?project=warmcat%2Flibwebsockets --form file=@libwebsockets.tgz --form version=${STAMP} --form 'description=lws qa'\" /dev/null",
264264
"branches": "coverity"
265-
},
266-
# awkward, we also want to test mbedtls, but coverity blocks on SSL build needing manual intervention
267-
"coverity-mbedtls": {
268-
"cmake": "-DLWS_WITH_MBEDTLS=1 -DLWS_WITHOUT_EXTENSIONS=0 -DLWS_WITH_CGI=1 -DLWS_IPV6=1 -DLWS_WITH_HTTP_PROXY=1 -DLWS_WITH_RANGES=1 -DLWS_WITH_THREADPOOL=1 -DLWS_WITH_CBOR=1 -DLWS_WITH_JOSE=1 -DLWS_WITH_COSE=1 -DLWS_WITH_SYS_DHCP_CLIENT=1 -DLWS_WITH_FTS=1 -DLWS_WITH_STRUCT_SQLITE3=1 -DLWS_ROLE_DBUS=1 -DLWS_WITH_SYS_ASYNC_DNS=1 -DLWS_WITH_SYS_ASYNC_DNS_DNSSEC=1 -DLWS_WITH_WEBRTC=1 -DLWS_WITH_DHT=1 -DLWS_WITH_ASYNC_QUEUE=1 -DLWS_WITH_SYS_FAULT_INJECTION=1 -DLWS_WITH_TLS_JIT_TRUST=1 -DLWS_ROLE_MQTT=1 -DLWS_ROLE_RAW_PROXY=1 -DLWS_WITH_EVENT_LIBS=1 -DLWS_WITH_LIBUV=1 -DLWS_WITH_STRUCT_JSON=1 -DLWS_WITH_LWS_DSH=1 -DLWS_WITH_SECURE_STREAMS_PROXY_API=1",
269-
"platforms": "none, coverity/x86_64/gcc",
270-
"cpack": "export STAMP=`git log -1 --pretty=format:%h` && rm -f libwebsockets.tgz && tar czvf libwebsockets.tgz cov-int && script -q -c \"cat /etc/coverity/secrets.sh | lws-minimal-http-client-post-form https://scan.coverity.com:443/builds?project=warmcat%2Flibwebsockets --form file=@libwebsockets.tgz --form version=${STAMP} --form 'description=lws qa'\" /dev/null",
271-
"branches": "coverity"
272265
}
266+
# ,
267+
# awkward, we also want to test mbedtls, but coverity blocks on SSL build needing manual intervention
268+
# "coverity-mbedtls": {
269+
# "cmake": "-DLWS_WITH_MBEDTLS=1 -DLWS_WITHOUT_EXTENSIONS=0 -DLWS_WITH_CGI=1 -DLWS_IPV6=1 -DLWS_WITH_HTTP_PROXY=1 -DLWS_WITH_RANGES=1 -DLWS_WITH_THREADPOOL=1 -DLWS_WITH_CBOR=1 -DLWS_WITH_JOSE=1 -DLWS_WITH_COSE=1 -DLWS_WITH_SYS_DHCP_CLIENT=1 -DLWS_WITH_FTS=1 -DLWS_WITH_STRUCT_SQLITE3=1 -DLWS_ROLE_DBUS=1 -DLWS_WITH_SYS_ASYNC_DNS=1 -DLWS_WITH_SYS_ASYNC_DNS_DNSSEC=1 -DLWS_WITH_WEBRTC=1 -DLWS_WITH_DHT=1 -DLWS_WITH_ASYNC_QUEUE=1 -DLWS_WITH_SYS_FAULT_INJECTION=1 -DLWS_WITH_TLS_JIT_TRUST=1 -DLWS_ROLE_MQTT=1 -DLWS_ROLE_RAW_PROXY=1 -DLWS_WITH_EVENT_LIBS=1 -DLWS_WITH_LIBUV=1 -DLWS_WITH_STRUCT_JSON=1 -DLWS_WITH_LWS_DSH=1 -DLWS_WITH_SECURE_STREAMS_PROXY_API=1",
270+
# "platforms": "none, coverity/x86_64/gcc",
271+
# "cpack": "export STAMP=`git log -1 --pretty=format:%h` && rm -f libwebsockets.tgz && tar czvf libwebsockets.tgz cov-int && script -q -c \"cat /etc/coverity/secrets.sh | lws-minimal-http-client-post-form https://scan.coverity.com:443/builds?project=warmcat%2Flibwebsockets --form file=@libwebsockets.tgz --form version=${STAMP} --form 'description=lws qa'\" /dev/null",
272+
# "branches": "coverity"
273+
# }
273274

274275
}
275276
}

cmake/lws_config.h.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
#cmakedefine LWS_HAVE_MALLOC_TRIM
6868
#cmakedefine LWS_HAVE_MALLOC_USABLE_SIZE
6969
#cmakedefine LWS_HAVE_mbedtls_md_setup
70+
#cmakedefine LWS_HAVE_mbedtls_ssl_export_keying_material
7071
#cmakedefine LWS_HAVE_mbedtls_net_init
7172
#cmakedefine LWS_HAVE_mbedtls_rsa_complete
7273
#cmakedefine LWS_HAVE_mbedtls_internal_aes_encrypt

lib/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,6 @@ list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/system)
144144
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/media)
145145
add_subdirectory(core)
146146
add_subdirectory(misc)
147-
add_subdirectory(media)
148-
149147
if (LWS_WITH_TRANSCODE)
150148
set_source_files_properties(media/transcode/transcode.c PROPERTIES COMPILE_FLAGS "-Wno-conversion -Wno-sign-conversion")
151149
endif()
@@ -240,6 +238,8 @@ endif()
240238
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/secure-streams/serialized/client)
241239
add_subdirectory(secure-streams/serialized/client)
242240

241+
add_subdirectory(media)
242+
243243
if (LWS_WITH_STATIC)
244244
if (LWS_STATIC_PIC)
245245
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

lib/tls/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,7 @@ if (LWS_WITH_MBEDTLS)
473473
set(LWS_HAVE_mbedtls_md_setup 1 CACHE BOOL x) # not on xenial 2.2
474474
set(LWS_HAVE_mbedtls_rsa_complete 1 CACHE BOOL x) # not on xenial 2.2
475475
set(LWS_HAVE_mbedtls_internal_aes_encrypt 1 CACHE BOOL x) # not on xenial 2.2
476+
set(LWS_HAVE_mbedtls_ssl_export_keying_material 1 CACHE BOOL x)
476477
else()
477478
CHECK_C_SOURCE_COMPILES("#include <mbedtls/x509_crt.h>\nint main(void) { struct mbedtls_x509_crt c; c.authority_key_id.keyIdentifier.tag = MBEDTLS_ASN1_OCTET_STRING; return c.authority_key_id.keyIdentifier.tag; }\n" LWS_HAVE_MBEDTLS_AUTH_KEY_ID)
478479
CHECK_C_SOURCE_COMPILES("#include <mbedtls/ssl.h>\nint main(void) { void *v = (void *)mbedtls_ssl_set_verify; return !!v; }\n" LWS_HAVE_mbedtls_ssl_set_verify)
@@ -489,6 +490,7 @@ if (LWS_WITH_MBEDTLS)
489490
CHECK_FUNCTION_EXISTS(mbedtls_md_setup LWS_HAVE_mbedtls_md_setup PARENT_SCOPE) # not on xenial 2.2
490491
CHECK_FUNCTION_EXISTS(mbedtls_rsa_complete LWS_HAVE_mbedtls_rsa_complete PARENT_SCOPE) # not on xenial 2.2
491492
CHECK_FUNCTION_EXISTS(mbedtls_internal_aes_encrypt LWS_HAVE_mbedtls_internal_aes_encrypt PARENT_SCOPE) # not on xenial 2.2
493+
CHECK_FUNCTION_EXISTS(mbedtls_ssl_export_keying_material LWS_HAVE_mbedtls_ssl_export_keying_material PARENT_SCOPE)
492494
endif()
493495
else()
494496
CHECK_FUNCTION_EXISTS(${VARIA}TLS_client_method LWS_HAVE_TLS_CLIENT_METHOD PARENT_SCOPE)

lib/tls/mbedtls/lws-gendtls.c

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,11 @@ lws_gendtls_create(struct lws_gendtls_ctx *ctx,
226226
int
227227
lws_gendtls_handshake_done(struct lws_gendtls_ctx *ctx)
228228
{
229+
#if defined(MBEDTLS_VERSION_NUMBER) && MBEDTLS_VERSION_NUMBER >= 0x03000000
229230
return mbedtls_ssl_is_handshake_over(&ctx->ssl);
231+
#else
232+
return ctx->ssl.MBEDTLS_PRIVATE(state) == MBEDTLS_SSL_HANDSHAKE_OVER;
233+
#endif
230234
}
231235

232236
void
@@ -263,8 +267,11 @@ lws_gendtls_set_key_mem(struct lws_gendtls_ctx *ctx, const uint8_t *key, size_t
263267
int ret;
264268

265269
if ((ret = mbedtls_pk_parse_key(&ctx->pkey, (const unsigned char *)key, len,
266-
NULL, 0,
267-
mbedtls_ctr_drbg_random, &ctx->ctr_drbg)) != 0) {
270+
NULL, 0
271+
#if defined(MBEDTLS_VERSION_NUMBER) && MBEDTLS_VERSION_NUMBER >= 0x03000000
272+
, mbedtls_ctr_drbg_random, &ctx->ctr_drbg
273+
#endif
274+
)) != 0) {
268275
printf("mbedtls_pk_parse_key failed: -0x%x\n", -ret);
269276
return -1;
270277
}
@@ -367,6 +374,7 @@ lws_gendtls_export_keying_material(struct lws_gendtls_ctx *ctx, const char *labe
367374
size_t label_len, const uint8_t *context,
368375
size_t context_len, uint8_t *out, size_t out_len)
369376
{
377+
#if defined(LWS_HAVE_mbedtls_ssl_export_keying_material)
370378
int use_context = (context != NULL);
371379

372380
if (mbedtls_ssl_export_keying_material(&ctx->ssl, out, out_len,
@@ -376,6 +384,18 @@ lws_gendtls_export_keying_material(struct lws_gendtls_ctx *ctx, const char *labe
376384
return -1;
377385

378386
return 0;
387+
#else
388+
(void)ctx;
389+
(void)label;
390+
(void)label_len;
391+
(void)context;
392+
(void)context_len;
393+
(void)out;
394+
(void)out_len;
395+
396+
lwsl_err("%s: requires MBEDTLS_SSL_EXPORT_KEYS\n", __func__);
397+
return -1;
398+
#endif
379399
}
380400

381401
int

lib/tls/mbedtls/lws-genhash.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,14 +278,16 @@ lws_genhmac_init(struct lws_genhmac_ctx *ctx, enum lws_genhmac_types type,
278278
if (!ctx->hmac)
279279
return -1;
280280

281-
#if !defined(LWS_HAVE_mbedtls_md_setup)
282-
if (mbedtls_md_init_ctx(&ctx->ctx, ctx->hmac))
281+
#if defined(LWS_HAVE_mbedtls_md_setup) || \
282+
(defined(MBEDTLS_VERSION_NUMBER) && MBEDTLS_VERSION_NUMBER >= 0x03000000)
283+
if (mbedtls_md_setup(&ctx->ctx, ctx->hmac, 1))
283284
return -1;
284285
#else
285-
if (mbedtls_md_setup(&ctx->ctx, ctx->hmac, 1))
286+
if (mbedtls_md_init_ctx(&ctx->ctx, ctx->hmac))
286287
return -1;
287288
#endif
288289

290+
289291
if (mbedtls_md_hmac_starts(&ctx->ctx, key, key_len)) {
290292
mbedtls_md_free(&ctx->ctx);
291293
ctx->hmac = NULL;

0 commit comments

Comments
 (0)