Merge pull request #9721 from dgarske/x25519_nb

Add X25519 non-blocking support and async example improvements
This commit is contained in:
Sean Parkinson
2026-02-12 07:56:58 +10:00
committed by GitHub
39 changed files with 2727 additions and 564 deletions
+11 -4
View File
@@ -59,6 +59,7 @@
#include <wolfssl/ssl.h> /* compatibility layer */
#include <wolfssl/error-ssl.h>
#include <wolfssl/wolfcrypt/error-crypt.h>
#include <wolfssl/test.h>
#include <tests/utils.h>
@@ -4811,8 +4812,11 @@ int test_ssl_memio_do_handshake(test_ssl_memio_ctx* ctx, int max_rounds,
}
else {
err = wolfSSL_get_error(ctx->c_ssl, ret);
if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE) {
if (err == WC_NO_ERR_TRACE(MP_WOULDBLOCK)) {
/* retry non-blocking math */
}
else if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE) {
char buff[WOLFSSL_MAX_ERROR_SZ];
fprintf(stderr, "error = %d, %s\n", err,
wolfSSL_ERR_error_string((word32)err, buff));
@@ -4833,8 +4837,11 @@ int test_ssl_memio_do_handshake(test_ssl_memio_ctx* ctx, int max_rounds,
}
else {
err = wolfSSL_get_error(ctx->s_ssl, ret);
if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE) {
if (err == WC_NO_ERR_TRACE(MP_WOULDBLOCK)) {
/* retry non-blocking math */
}
else if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE) {
char buff[WOLFSSL_MAX_ERROR_SZ];
fprintf(stderr, "error = %d, %s\n", err,
wolfSSL_ERR_error_string((word32)err, buff));
+19 -5
View File
@@ -21,6 +21,7 @@
#include <tests/unit.h>
#include <tests/utils.h>
#include <wolfssl/wolfcrypt/error-crypt.h>
#ifdef HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES
@@ -182,9 +183,16 @@ int test_memio_do_handshake(WOLFSSL *ssl_c, WOLFSSL *ssl_s,
}
else {
err = wolfSSL_get_error(ssl_c, ret);
if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE)
if (err == WC_NO_ERR_TRACE(MP_WOULDBLOCK)) {
/* retry non-blocking math */
}
else if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE) {
char buff[WOLFSSL_MAX_ERROR_SZ];
fprintf(stderr, "memio client error = %d, %s\n", err,
wolfSSL_ERR_error_string((word32)err, buff));
return -1;
}
}
}
if (!hs_s) {
@@ -196,9 +204,16 @@ int test_memio_do_handshake(WOLFSSL *ssl_c, WOLFSSL *ssl_s,
}
else {
err = wolfSSL_get_error(ssl_s, ret);
if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE)
if (err == WC_NO_ERR_TRACE(MP_WOULDBLOCK)) {
/* retry non-blocking math */
}
else if (err != WOLFSSL_ERROR_WANT_READ &&
err != WOLFSSL_ERROR_WANT_WRITE) {
char buff[WOLFSSL_MAX_ERROR_SZ];
fprintf(stderr, "memio server error = %d, %s\n", err,
wolfSSL_ERR_error_string((word32)err, buff));
return -1;
}
}
}
handshake_complete = hs_c && hs_s;
@@ -792,4 +807,3 @@ void DEBUG_WRITE_DER(const byte* der, int derSz, const char* fileName)
}
}
#endif