From 4d4ee3b2db470c1a132c49f81bb94c71bea3ee60 Mon Sep 17 00:00:00 2001 From: Anthony Hu Date: Wed, 8 Jun 2022 16:06:24 -0400 Subject: [PATCH 1/2] Support psk ciphersuites in benchmarks. Also fixed some small errors during shutdown in benchmarks. Tested with: ./configure --enable-psk CFLAGS=-DWOLFSSL_STATIC_PSK make all check ./examples/benchmark/tls_bench --- IDE/STM32Cube/wolfssl_example.c | 8 ++++---- examples/benchmark/tls_bench.c | 24 ++++++++++++++++++++++-- examples/server/server.c | 2 +- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/IDE/STM32Cube/wolfssl_example.c b/IDE/STM32Cube/wolfssl_example.c index 89c40ee6c..39ae86f93 100644 --- a/IDE/STM32Cube/wolfssl_example.c +++ b/IDE/STM32Cube/wolfssl_example.c @@ -973,11 +973,11 @@ static void client_thread(const void* args) #endif } info->client.ret = ret; - info->client.done = 1; + info->server.done = 1; osThreadSuspend(info->client.threadId); if (info->doShutdown) - info->client.done = 1; + info->server.done = 1; } while (!info->doShutdown); osThreadTerminate(info->client.threadId); @@ -1248,11 +1248,11 @@ static void server_thread(const void* args) #endif } info->server.ret = ret; - info->server.done = 1; + info->client.done = 1; osThreadSuspend(info->server.threadId); if (info->doShutdown) - info->server.done = 1; + info->client.done = 1; } while (!info->doShutdown); osThreadTerminate(info->server.threadId); diff --git a/examples/benchmark/tls_bench.c b/examples/benchmark/tls_bench.c index e7d90fb2e..60817c4f8 100644 --- a/examples/benchmark/tls_bench.c +++ b/examples/benchmark/tls_bench.c @@ -968,6 +968,19 @@ static int bench_tls_client(info_t* info) } #endif +#ifndef NO_PSK + wolfSSL_CTX_set_psk_client_callback(cli_ctx, my_psk_client_cb); + #ifdef WOLFSSL_TLS13 + #if !defined(WOLFSSL_PSK_TLS13_CB) && !defined(WOLFSSL_PSK_ONE_ID) + wolfSSL_CTX_set_psk_client_cs_callback(cli_ctx, my_psk_client_cs_cb); + #else + wolfSSL_CTX_set_psk_client_tls13_callback(cli_ctx, my_psk_client_tls13_cb); + #endif + #endif + wolfSSL_CTX_set_psk_callback_ctx(cli_ctx, (void*)info->cipher); +#endif /* !NO_PSK */ + + /* Allocate and initialize a packet sized buffer */ writeBuf = (unsigned char*)XMALLOC(info->packetSize, NULL, DYNAMIC_TYPE_TMP_BUFFER); @@ -1186,7 +1199,7 @@ static void* client_thread(void* args) ret = bench_tls_client(info); pthread_cond_signal(&info->to_server.cond); - info->to_client.done = 1; + info->to_server.done = 1; info->client.ret = ret; return NULL; @@ -1413,6 +1426,13 @@ static int bench_tls_server(info_t* info) } #endif +#ifndef NO_PSK + wolfSSL_CTX_set_psk_server_callback(srv_ctx, my_psk_server_cb); + #ifdef WOLFSSL_TLS13 + wolfSSL_CTX_set_psk_server_tls13_callback(srv_ctx, my_psk_server_tls13_cb); + #endif +#endif /* !NO_PSK */ + /* Allocate read buffer */ readBufSz = info->packetSize; readBuf = (unsigned char*)XMALLOC(readBufSz, NULL, DYNAMIC_TYPE_TMP_BUFFER); @@ -1633,7 +1653,7 @@ static void* server_thread(void* args) } pthread_cond_signal(&info->to_client.cond); - info->to_server.done = 1; + info->to_client.done = 1; info->server.ret = ret; return NULL; diff --git a/examples/server/server.c b/examples/server/server.c index 3e92e9d9d..25b6c1cf3 100644 --- a/examples/server/server.c +++ b/examples/server/server.c @@ -2473,7 +2473,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args) #ifndef NO_PSK const char *defaultCipherList = cipherList; - SSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb); + wolfSSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb); #ifdef WOLFSSL_TLS13 wolfSSL_CTX_set_psk_server_tls13_callback(ctx, my_psk_server_tls13_cb); #endif From 22eee3206d6126397985da8684e6d4a5b872789e Mon Sep 17 00:00:00 2001 From: Anthony Hu Date: Tue, 14 Jun 2022 11:13:28 -0400 Subject: [PATCH 2/2] Fixups from review by dgarske --- IDE/STM32Cube/wolfssl_example.c | 4 ++-- examples/benchmark/tls_bench.c | 4 ++-- examples/server/server.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/IDE/STM32Cube/wolfssl_example.c b/IDE/STM32Cube/wolfssl_example.c index 39ae86f93..74f506a0a 100644 --- a/IDE/STM32Cube/wolfssl_example.c +++ b/IDE/STM32Cube/wolfssl_example.c @@ -973,7 +973,7 @@ static void client_thread(const void* args) #endif } info->client.ret = ret; - info->server.done = 1; + info->client.done = 1; osThreadSuspend(info->client.threadId); if (info->doShutdown) @@ -1248,7 +1248,7 @@ static void server_thread(const void* args) #endif } info->server.ret = ret; - info->client.done = 1; + info->server.done = 1; osThreadSuspend(info->server.threadId); if (info->doShutdown) diff --git a/examples/benchmark/tls_bench.c b/examples/benchmark/tls_bench.c index 60817c4f8..ba5ca2fb2 100644 --- a/examples/benchmark/tls_bench.c +++ b/examples/benchmark/tls_bench.c @@ -1199,7 +1199,7 @@ static void* client_thread(void* args) ret = bench_tls_client(info); pthread_cond_signal(&info->to_server.cond); - info->to_server.done = 1; + info->to_client.done = 1; info->client.ret = ret; return NULL; @@ -1653,7 +1653,7 @@ static void* server_thread(void* args) } pthread_cond_signal(&info->to_client.cond); - info->to_client.done = 1; + info->to_server.done = 1; info->server.ret = ret; return NULL; diff --git a/examples/server/server.c b/examples/server/server.c index 25b6c1cf3..3e92e9d9d 100644 --- a/examples/server/server.c +++ b/examples/server/server.c @@ -2473,7 +2473,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args) #ifndef NO_PSK const char *defaultCipherList = cipherList; - wolfSSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb); + SSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb); #ifdef WOLFSSL_TLS13 wolfSSL_CTX_set_psk_server_tls13_callback(ctx, my_psk_server_tls13_cb); #endif