diff --git a/src/internal.c b/src/internal.c index 8e559a728..486dc9206 100644 --- a/src/internal.c +++ b/src/internal.c @@ -3562,6 +3562,18 @@ void InitSuites(Suites* suites, ProtocolVersion pv, int keySz, word16 haveRSA, } #endif +#ifdef BUILD_TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 +#ifndef WOLFSSL_OLDTLS_SHA2_CIPHERSUITES + if (tls1_2 && havePSK) +#else + if (tls && havePSK) +#endif + { + suites->suites[idx++] = ECDHE_PSK_BYTE; + suites->suites[idx++] = TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256; + } +#endif + #ifdef BUILD_TLS_PSK_WITH_AES_128_CCM if (tls && havePSK) { suites->suites[idx++] = ECC_BYTE; @@ -10073,6 +10085,21 @@ static int BuildFinished(WOLFSSL* ssl, Hashes* hashes, const byte* sender) } /* switch */ } /* if */ + /* ECC extensions */ + if (first == ECDHE_PSK_BYTE) { + + switch (second) { +#if defined(HAVE_ECC) || defined(HAVE_CURVE25519) || defined(HAVE_CURVE448) + case TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 : + if (requirement == REQUIRES_PSK) + return 1; + break; +#endif /* HAVE_ECC || HAVE_CURVE25519 || HAVE_CURVE448 */ + default: + WOLFSSL_MSG("Unsupported cipher suite, CipherRequires ECC PSK"); + return 0; + } /* switch */ + } /* if */ #endif /* !WOLFSSL_NO_TLS12 */ /* Distinct TLS v1.3 cipher suites with cipher and digest only. */ @@ -10098,7 +10125,8 @@ static int BuildFinished(WOLFSSL* ssl, Hashes* hashes, const byte* sender) #ifndef WOLFSSL_NO_TLS12 if (first != ECC_BYTE && first != CHACHA_BYTE && - first != TLS13_BYTE) { /* normal suites */ + first != TLS13_BYTE && first != ECDHE_PSK_BYTE) { + /* normal suites */ switch (second) { #ifndef NO_RSA @@ -21587,6 +21615,10 @@ static const CipherSuiteInfo cipher_names[] = SUITE_INFO("ECDHE-PSK-AES128-CBC-SHA256","TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256",ECC_BYTE,TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,TLSv1_MINOR,SSLv3_MAJOR), #endif +#ifdef BUILD_TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 + SUITE_INFO("ECDHE-PSK-AES128-GCM-SHA256","TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256",ECDHE_PSK_BYTE,TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,TLSv1_MINOR,SSLv3_MAJOR), +#endif + #ifdef BUILD_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 SUITE_INFO("PSK-CHACHA20-POLY1305","TLS_PSK_WITH_CHACHA20_POLY1305_SHA256",CHACHA_BYTE,TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,TLSv1_2_MINOR,SSLv3_MAJOR), #endif diff --git a/src/keys.c b/src/keys.c index 7a8d417c9..b467275d9 100644 --- a/src/keys.c +++ b/src/keys.c @@ -1226,9 +1226,41 @@ int SetCipherSpecs(WOLFSSL* ssl) } } + if (ssl->options.cipherSuite0 == ECDHE_PSK_BYTE) { + + switch (ssl->options.cipherSuite) { + +#if defined(HAVE_ECC) || defined(HAVE_CURVE25519) || defined(HAVE_CURVE448) +#ifdef BUILD_TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 + case TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 : + ssl->specs.bulk_cipher_algorithm = wolfssl_aes_gcm; + ssl->specs.cipher_type = aead; + ssl->specs.mac_algorithm = sha256_mac; + ssl->specs.kea = ecdhe_psk_kea; + ssl->specs.sig_algo = anonymous_sa_algo; + ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE; + ssl->specs.pad_size = PAD_SHA; + ssl->specs.static_ecdh = 0; + ssl->specs.key_size = AES_128_KEY_SIZE; + ssl->specs.block_size = AES_BLOCK_SIZE; + ssl->specs.iv_size = AES_IV_SIZE; + ssl->specs.aead_mac_size = AES_GCM_AUTH_SZ; + + ssl->options.usingPSK_cipher = 1; + break; +#endif +#endif + + default: + break; + } + } + + if (ssl->options.cipherSuite0 != ECC_BYTE && - ssl->options.cipherSuite0 != CHACHA_BYTE && - ssl->options.cipherSuite0 != TLS13_BYTE) { /* normal suites */ + ssl->options.cipherSuite0 != ECDHE_PSK_BYTE && + ssl->options.cipherSuite0 != CHACHA_BYTE && + ssl->options.cipherSuite0 != TLS13_BYTE) { /* normal suites */ switch (ssl->options.cipherSuite) { #ifdef BUILD_SSL_RSA_WITH_RC4_128_SHA diff --git a/src/tls.c b/src/tls.c index ad0b787b3..4404596f4 100644 --- a/src/tls.c +++ b/src/tls.c @@ -3860,7 +3860,8 @@ static void TLSX_SupportedCurve_ValidateRequest(WOLFSSL* ssl, byte* semaphore) if (ssl->suites->suites[i] == TLS13_BYTE) return; if ((ssl->suites->suites[i] == ECC_BYTE) || - (ssl->suites->suites[i] == CHACHA_BYTE)) { + (ssl->suites->suites[i] == ECDHE_PSK_BYTE) || + (ssl->suites->suites[i] == CHACHA_BYTE)) { #if defined(HAVE_ECC) || defined(HAVE_CURVE25519) || \ defined(HAVE_CURVE448) return; @@ -3888,7 +3889,8 @@ static void TLSX_PointFormat_ValidateRequest(WOLFSSL* ssl, byte* semaphore) if (ssl->suites->suites[i] == TLS13_BYTE) return; if ((ssl->suites->suites[i] == ECC_BYTE) || - (ssl->suites->suites[i] == CHACHA_BYTE)) { + (ssl->suites->suites[i] == ECDHE_PSK_BYTE) || + (ssl->suites->suites[i] == CHACHA_BYTE)) { #if defined(HAVE_ECC) || defined(HAVE_CURVE25519) || \ defined(HAVE_CURVE448) return; @@ -3919,6 +3921,7 @@ static void TLSX_PointFormat_ValidateResponse(WOLFSSL* ssl, byte* semaphore) return; #if defined(HAVE_ECC) || defined(HAVE_CURVE25519) || defined(HAVE_CURVE448) if (ssl->options.cipherSuite0 == ECC_BYTE || + ssl->options.cipherSuite0 == ECDHE_PSK_BYTE || ssl->options.cipherSuite0 == CHACHA_BYTE) { return; } @@ -4439,7 +4442,7 @@ int TLSX_ValidateSupportedCurves(WOLFSSL* ssl, byte first, byte second) { break; } } - if (first == ECC_BYTE || first == CHACHA_BYTE) + if (first == ECC_BYTE || first == ECDHE_PSK_BYTE || first == CHACHA_BYTE) extension = TLSX_Find(ssl->extensions, TLSX_SUPPORTED_GROUPS); if (!extension) return 1; /* no suite restriction */ @@ -11115,7 +11118,8 @@ int TLSX_PopulateExtensions(WOLFSSL* ssl, byte isServer) #endif #ifdef HAVE_NULL_CIPHER - if (cipherSuite0 == ECC_BYTE) { + if (cipherSuite0 == ECC_BYTE || + cipherSuite0 == ECDHE_PSK_BYTE) { if (cipherSuite != TLS_SHA256_SHA256 && cipherSuite != TLS_SHA384_SHA384) { continue; diff --git a/tests/test-dtls-mtu.conf b/tests/test-dtls-mtu.conf index 9ea2e5072..f470a56c5 100644 --- a/tests/test-dtls-mtu.conf +++ b/tests/test-dtls-mtu.conf @@ -43,7 +43,7 @@ -l ECDHE-ECDSA-CHACHA20-POLY1305 -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 DHE-PSK-CHACHA20-POLY1305 +# server DTLSv1.2 DHE-PSK-CHACHA20-POLY1305 -e -u -f @@ -51,7 +51,7 @@ -s -l DHE-PSK-CHACHA20-POLY1305 -# client TLSv1.2 DHE-PSK-CHACHA20-POLY1305 +# client DTLSv1.2 DHE-PSK-CHACHA20-POLY1305 -B 4000,1359 -u -f @@ -59,7 +59,7 @@ -s -l DHE-PSK-CHACHA20-POLY1305 -# server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 +# server DTLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 -e -u -f @@ -67,7 +67,7 @@ -s -l ECDHE-PSK-CHACHA20-POLY1305 -# client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 +# client DTLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 -B 4000,1359 -u -f @@ -75,7 +75,7 @@ -s -l ECDHE-PSK-CHACHA20-POLY1305 -# server TLSv1.2 PSK-CHACHA20-POLY1305 +# server DTLSv1.2 PSK-CHACHA20-POLY1305 -e -u -f @@ -83,7 +83,7 @@ -s -l PSK-CHACHA20-POLY1305 -# client TLSv1.2 PSK-CHACHA20-POLY1305 +# client DTLSv1.2 PSK-CHACHA20-POLY1305 -B 4000,1359 -u -f @@ -234,7 +234,7 @@ -v 3 -l ECDHE-RSA-AES256-SHA -# server TLSv1 ECDHE-ECDSA-NULL-SHA +# server DTLSv1 ECDHE-ECDSA-NULL-SHA -e -u -f @@ -243,7 +243,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1 ECDHE-ECDSA-NULL-SHA +# client DTLSv1 ECDHE-ECDSA-NULL-SHA -B 4000,1355 -u -f @@ -251,7 +251,7 @@ -l ECDHE-ECDSA-NULL-SHA -A ./certs/ca-ecc-cert.pem -# server TLSv1.1 ECDHE-ECDSA-NULL-SHA +# server DTLSv1.1 ECDHE-ECDSA-NULL-SHA -e -u -f @@ -260,7 +260,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1 ECDHE-ECDSA-NULL-SHA +# client DTLSv1 ECDHE-ECDSA-NULL-SHA -B 4000,1355 -u -f @@ -268,7 +268,7 @@ -l ECDHE-ECDSA-NULL-SHA -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 ECDHE-ECDSA-NULL-SHA +# server DTLSv1.2 ECDHE-ECDSA-NULL-SHA -e -u -f @@ -277,7 +277,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1.2 ECDHE-ECDSA-NULL-SHA +# client DTLSv1.2 ECDHE-ECDSA-NULL-SHA -B 4000,1355 -u -f @@ -699,7 +699,7 @@ -l ECDH-ECDSA-AES256-SHA384 -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 +# server DTLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 -e -s -u @@ -707,7 +707,7 @@ -v 3 -l ECDHE-PSK-AES128-CBC-SHA256 -# client TLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 +# client DTLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 -B 4000,1298 -s -u @@ -715,7 +715,7 @@ -v 3 -l ECDHE-PSK-AES128-CBC-SHA256 -# server TLSv1.2 ECDHE-PSK-NULL-SHA256 +# server DTLSv1.2 ECDHE-PSK-NULL-SHA256 -e -s -u @@ -723,7 +723,7 @@ -v 3 -l ECDHE-PSK-NULL-SHA256 -# client TLSv1.2 ECDHE-PSK-NULL-SHA256 +# client DTLSv1.2 ECDHE-PSK-NULL-SHA256 -B 4000,1343 -s -u @@ -1149,7 +1149,7 @@ -l ECDHE-ECDSA-CHACHA20-POLY1305 -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 DHE-PSK-CHACHA20-POLY1305 +# server DTLSv1.2 DHE-PSK-CHACHA20-POLY1305 -e -u 1024 -f @@ -1157,7 +1157,7 @@ -s -l DHE-PSK-CHACHA20-POLY1305 -# client TLSv1.2 DHE-PSK-CHACHA20-POLY1305 +# client DTLSv1.2 DHE-PSK-CHACHA20-POLY1305 -B 4000,983 -u 1024 -f @@ -1165,7 +1165,7 @@ -s -l DHE-PSK-CHACHA20-POLY1305 -# server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 +# server DTLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 -e -u 1024 -f @@ -1173,7 +1173,7 @@ -s -l ECDHE-PSK-CHACHA20-POLY1305 -# client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 +# client DTLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 -B 4000,983 -u 1024 -f @@ -1181,7 +1181,7 @@ -s -l ECDHE-PSK-CHACHA20-POLY1305 -# server TLSv1.2 PSK-CHACHA20-POLY1305 +# server DTLSv1.2 PSK-CHACHA20-POLY1305 -e -u 1024 -f @@ -1189,7 +1189,7 @@ -s -l PSK-CHACHA20-POLY1305 -# client TLSv1.2 PSK-CHACHA20-POLY1305 +# client DTLSv1.2 PSK-CHACHA20-POLY1305 -B 4000,983 -u 1024 -f @@ -1340,7 +1340,7 @@ -v 3 -l ECDHE-RSA-AES256-SHA -# server TLSv1 ECDHE-ECDSA-NULL-SHA +# server DTLSv1 ECDHE-ECDSA-NULL-SHA -e -u 1024 -f @@ -1349,7 +1349,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1 ECDHE-ECDSA-NULL-SHA +# client DTLSv1 ECDHE-ECDSA-NULL-SHA -B 4000,979 -u 1024 -f @@ -1357,7 +1357,7 @@ -l ECDHE-ECDSA-NULL-SHA -A ./certs/ca-ecc-cert.pem -# server TLSv1.1 ECDHE-ECDSA-NULL-SHA +# server DTLSv1.1 ECDHE-ECDSA-NULL-SHA -e -u 1024 -f @@ -1366,7 +1366,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1 ECDHE-ECDSA-NULL-SHA +# client DTLSv1 ECDHE-ECDSA-NULL-SHA -B 4000,979 -u 1024 -f @@ -1374,7 +1374,7 @@ -l ECDHE-ECDSA-NULL-SHA -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 ECDHE-ECDSA-NULL-SHA +# server DTLSv1.2 ECDHE-ECDSA-NULL-SHA -e -u 1024 -f @@ -1383,7 +1383,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1.2 ECDHE-ECDSA-NULL-SHA +# client DTLSv1.2 ECDHE-ECDSA-NULL-SHA -B 4000,979 -u 1024 -f @@ -1805,7 +1805,7 @@ -l ECDH-ECDSA-AES256-SHA384 -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 +# server DTLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 -e -s -u 1024 @@ -1813,7 +1813,7 @@ -v 3 -l ECDHE-PSK-AES128-CBC-SHA256 -# client TLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 +# client DTLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 -B 4000,922 -s -u 1024 @@ -1821,21 +1821,21 @@ -v 3 -l ECDHE-PSK-AES128-CBC-SHA256 -# server TLSv1.2 ECDHE-PSK-AES128-SHA256 +# server DTLSv1.2 ECDHE-PSK-AES128-SHA256 -s -u 1024 -f -v 3 -l ECDHE-PSK-AES128-SHA256 -# client TLSv1.2 ECDHE-PSK-AES128-SHA256 +# client DTLSv1.2 ECDHE-PSK-AES128-SHA256 -s -u 1024 -f -v 3 -l ECDHE-PSK-AES128-SHA256 -# server TLSv1.2 ECDHE-PSK-NULL-SHA256 +# server DTLSv1.2 ECDHE-PSK-NULL-SHA256 -e -s -u 1024 @@ -1843,7 +1843,7 @@ -v 3 -l ECDHE-PSK-NULL-SHA256 -# client TLSv1.2 ECDHE-PSK-NULL-SHA256 +# client DTLSv1.2 ECDHE-PSK-NULL-SHA256 -B 4000,967 -s -u 1024 @@ -2365,7 +2365,7 @@ -l ECDHE-ECDSA-CHACHA20-POLY1305 -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 DHE-PSK-CHACHA20-POLY1305 +# server DTLSv1.2 DHE-PSK-CHACHA20-POLY1305 -e -u 512 -f @@ -2373,7 +2373,7 @@ -s -l DHE-PSK-CHACHA20-POLY1305 -# client TLSv1.2 DHE-PSK-CHACHA20-POLY1305 +# client DTLSv1.2 DHE-PSK-CHACHA20-POLY1305 -B 4000,471 -u 512 -f @@ -2381,7 +2381,7 @@ -s -l DHE-PSK-CHACHA20-POLY1305 -# server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 +# server DTLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 -e -u 512 -f @@ -2389,7 +2389,7 @@ -s -l ECDHE-PSK-CHACHA20-POLY1305 -# client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 +# client DTLSv1.2 ECDHE-PSK-CHACHA20-POLY1305 -B 4000,471 -u 512 -f @@ -2397,7 +2397,7 @@ -s -l ECDHE-PSK-CHACHA20-POLY1305 -# server TLSv1.2 PSK-CHACHA20-POLY1305 +# server DTLSv1.2 PSK-CHACHA20-POLY1305 -e -u 512 -f @@ -2405,7 +2405,7 @@ -s -l PSK-CHACHA20-POLY1305 -# client TLSv1.2 PSK-CHACHA20-POLY1305 +# client DTLSv1.2 PSK-CHACHA20-POLY1305 -B 4000,471 -u 512 -f @@ -2556,7 +2556,7 @@ -v 3 -l ECDHE-RSA-AES256-SHA -# server TLSv1 ECDHE-ECDSA-NULL-SHA +# server DTLSv1 ECDHE-ECDSA-NULL-SHA -e -u 512 -f @@ -2565,7 +2565,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1 ECDHE-ECDSA-NULL-SHA +# client DTLSv1 ECDHE-ECDSA-NULL-SHA -B 4000,467 -u 512 -f @@ -2573,7 +2573,7 @@ -l ECDHE-ECDSA-NULL-SHA -A ./certs/ca-ecc-cert.pem -# server TLSv1.1 ECDHE-ECDSA-NULL-SHA +# server DTLSv1.1 ECDHE-ECDSA-NULL-SHA -e -u 512 -f @@ -2582,7 +2582,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1 ECDHE-ECDSA-NULL-SHA +# client DTLSv1 ECDHE-ECDSA-NULL-SHA -B 4000,467 -u 512 -f @@ -2590,7 +2590,7 @@ -l ECDHE-ECDSA-NULL-SHA -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 ECDHE-ECDSA-NULL-SHA +# server DTLSv1.2 ECDHE-ECDSA-NULL-SHA -e -u 512 -f @@ -2599,7 +2599,7 @@ -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem -# client TLSv1.2 ECDHE-ECDSA-NULL-SHA +# client DTLSv1.2 ECDHE-ECDSA-NULL-SHA -B 4000,467 -u 512 -f @@ -3021,7 +3021,7 @@ -l ECDH-ECDSA-AES256-SHA384 -A ./certs/ca-ecc-cert.pem -# server TLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 +# server DTLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 -e -s -u 512 @@ -3029,7 +3029,7 @@ -v 3 -l ECDHE-PSK-AES128-CBC-SHA256 -# client TLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 +# client DTLSv1.2 ECDHE-PSK-AES128-CBC-SHA256 -B 4000,410 -s -u 512 @@ -3037,7 +3037,7 @@ -v 3 -l ECDHE-PSK-AES128-CBC-SHA256 -# server TLSv1.2 ECDHE-PSK-NULL-SHA256 +# server DTLSv1.2 ECDHE-PSK-NULL-SHA256 -e -s -u 512 @@ -3045,7 +3045,7 @@ -v 3 -l ECDHE-PSK-NULL-SHA256 -# client TLSv1.2 ECDHE-PSK-NULL-SHA256 +# client DTLSv1.2 ECDHE-PSK-NULL-SHA256 -B 4000,455 -s -u 512 diff --git a/tests/test-psk.conf b/tests/test-psk.conf index f4f11b298..f6902b979 100644 --- a/tests/test-psk.conf +++ b/tests/test-psk.conf @@ -5,3 +5,11 @@ # client- standard PSK -s -l PSK-CHACHA20-POLY1305 + +# server +-j +-l ECDHE-PSK-AES128-GCM-SHA256 + +# client +-s +-l ECDHE-PSK-AES128-GCM-SHA256 diff --git a/wolfssl/internal.h b/wolfssl/internal.h index 891edba34..7febc210c 100644 --- a/wolfssl/internal.h +++ b/wolfssl/internal.h @@ -667,6 +667,10 @@ defined(WOLFSSL_AES_128) && defined(HAVE_AES_CBC) #define BUILD_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 #endif + #if !defined(NO_PSK) && !defined(NO_SHA256) && !defined(NO_AES) && \ + defined(WOLFSSL_AES_128) && defined(HAVE_AESGCM) + #define BUILD_TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 + #endif #endif #if defined(HAVE_CHACHA) && defined(HAVE_POLY1305) && !defined(NO_SHA256) #if !defined(NO_OLD_POLY1305) @@ -1050,6 +1054,9 @@ enum { TLS_ECDHE_ECDSA_WITH_CHACHA20_OLD_POLY1305_SHA256 = 0x14, TLS_DHE_RSA_WITH_CHACHA20_OLD_POLY1305_SHA256 = 0x15, + /* ECDHE_PSK RFC8442, first byte is 0xD0 (EDHE_PSK_BYTE) */ + TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = 0x01, + /* TLS v1.3 cipher suites */ TLS_AES_128_GCM_SHA256 = 0x01, TLS_AES_256_GCM_SHA384 = 0x02, @@ -1159,10 +1166,11 @@ enum { #endif enum Misc { - CIPHER_BYTE = 0x00, /* Default ciphers */ - ECC_BYTE = 0xC0, /* ECC first cipher suite byte */ - CHACHA_BYTE = 0xCC, /* ChaCha first cipher suite */ - TLS13_BYTE = 0x13, /* TLS v1.3 first byte of cipher suite */ + CIPHER_BYTE = 0x00, /* Default ciphers */ + ECC_BYTE = 0xC0, /* ECC first cipher suite byte */ + CHACHA_BYTE = 0xCC, /* ChaCha first cipher suite */ + TLS13_BYTE = 0x13, /* TLS v1.3 first byte of cipher suite */ + ECDHE_PSK_BYTE = 0xD0, /* RFC 8442 */ SEND_CERT = 1, SEND_BLANK_CERT = 2,