Merge pull request #5583 from SparkiDev/psk_only_tls_fix

PSK only TLS: fix ENCRYPT_LEN
This commit is contained in:
JacobBarthelmeh
2022-09-12 09:26:28 -06:00
committed by GitHub
3 changed files with 82 additions and 71 deletions

View File

@@ -3093,8 +3093,10 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
; ;
#elif defined(HAVE_NULL_CIPHER) #elif defined(HAVE_NULL_CIPHER)
defaultCipherList = "PSK-NULL-SHA256"; defaultCipherList = "PSK-NULL-SHA256";
#else #elif !defined(NO_AES_CBC)
defaultCipherList = "PSK-AES128-CBC-SHA256"; defaultCipherList = "PSK-AES128-CBC-SHA256";
#else
defaultCipherList = "PSK-AES128-GCM-SHA256";
#endif #endif
if (wolfSSL_CTX_set_cipher_list(ctx, defaultCipherList) if (wolfSSL_CTX_set_cipher_list(ctx, defaultCipherList)
!=WOLFSSL_SUCCESS) { !=WOLFSSL_SUCCESS) {

View File

@@ -2720,8 +2720,10 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
; ;
#elif defined(HAVE_NULL_CIPHER) #elif defined(HAVE_NULL_CIPHER)
defaultCipherList = "PSK-NULL-SHA256"; defaultCipherList = "PSK-NULL-SHA256";
#else #elif !defined(NO_AES_CBC)
defaultCipherList = "PSK-AES128-CBC-SHA256"; defaultCipherList = "PSK-AES128-CBC-SHA256";
#else
defaultCipherList = "PSK-AES128-GCM-SHA256";
#endif #endif
if (SSL_CTX_set_cipher_list(ctx, defaultCipherList) if (SSL_CTX_set_cipher_list(ctx, defaultCipherList)
!= WOLFSSL_SUCCESS) != WOLFSSL_SUCCESS)

View File

@@ -1165,7 +1165,8 @@ enum {
#define MAX_EARLY_DATA_SZ 4096 #define MAX_EARLY_DATA_SZ 4096
#endif #endif
#ifndef WOLFSSL_MAX_RSA_BITS #ifndef NO_RSA
#ifndef WOLFSSL_MAX_RSA_BITS
#ifdef USE_FAST_MATH #ifdef USE_FAST_MATH
/* FP implementation support numbers up to FP_MAX_BITS / 2 bits. */ /* FP implementation support numbers up to FP_MAX_BITS / 2 bits. */
#define WOLFSSL_MAX_RSA_BITS (FP_MAX_BITS / 2) #define WOLFSSL_MAX_RSA_BITS (FP_MAX_BITS / 2)
@@ -1176,14 +1177,16 @@ enum {
/* Integer maths is dynamic but we only go up to 4096 bits. */ /* Integer maths is dynamic but we only go up to 4096 bits. */
#define WOLFSSL_MAX_RSA_BITS 4096 #define WOLFSSL_MAX_RSA_BITS 4096
#endif #endif
#endif #endif
#if (WOLFSSL_MAX_RSA_BITS % 8) #if (WOLFSSL_MAX_RSA_BITS % 8)
#error RSA maximum bit size must be multiple of 8 #error RSA maximum bit size must be multiple of 8
#endif
#endif #endif
/* MySQL wants to be able to use 8192-bit numbers. */ #if !defined(NO_RSA) || !defined(NO_DH) || defined(HAVE_ECC)
#if defined(USE_FAST_MATH) && defined(FP_MAX_BITS) /* MySQL wants to be able to use 8192-bit numbers. */
#if defined(USE_FAST_MATH) && defined(FP_MAX_BITS)
/* Use the FP size up to 8192-bit and down to a min of 1024-bit. */ /* Use the FP size up to 8192-bit and down to a min of 1024-bit. */
#if FP_MAX_BITS >= 16384 #if FP_MAX_BITS >= 16384
#define ENCRYPT_BASE_BITS 8192 #define ENCRYPT_BASE_BITS 8192
@@ -1210,7 +1213,7 @@ enum {
#if WOLFSSL_MAX_RSA_BITS > ENCRYPT_BASE_BITS #if WOLFSSL_MAX_RSA_BITS > ENCRYPT_BASE_BITS
#error "FP_MAX_BITS too small for WOLFSSL_MAX_RSA_BITS" #error "FP_MAX_BITS too small for WOLFSSL_MAX_RSA_BITS"
#endif #endif
#elif defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_SP_MATH) #elif defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_SP_MATH)
/* Use the SP size up to 8192-bit and down to a min of 1024-bit. */ /* Use the SP size up to 8192-bit and down to a min of 1024-bit. */
#if SP_INT_BITS >= 8192 #if SP_INT_BITS >= 8192
#define ENCRYPT_BASE_BITS 8192 #define ENCRYPT_BASE_BITS 8192
@@ -1237,9 +1240,13 @@ enum {
#if !defined(NO_RSA) && WOLFSSL_MAX_RSA_BITS > SP_INT_BITS #if !defined(NO_RSA) && WOLFSSL_MAX_RSA_BITS > SP_INT_BITS
#error "SP_INT_BITS too small for WOLFSSL_MAX_RSA_BITS" #error "SP_INT_BITS too small for WOLFSSL_MAX_RSA_BITS"
#endif #endif
#else #else
/* Integer/heap maths - support 4096-bit. */ /* Integer/heap maths - support 4096-bit. */
#define ENCRYPT_BASE_BITS 4096 #define ENCRYPT_BASE_BITS 4096
#endif
#else
/* No secret from public key operation but PSK key plus length used. */
#define ENCRYPT_BASE_BITS ((MAX_PSK_ID_LEN + 2) * 8)
#endif #endif
#ifdef WOLFSSL_DTLS_CID #ifdef WOLFSSL_DTLS_CID