Add TLS 1.3 ciphersuites
Signed-off-by: Hanno Becker <hanno.becker@arm.com>
This commit is contained in:
parent
2aec149e13
commit
8ca26923eb
2 changed files with 63 additions and 0 deletions
|
@ -256,6 +256,13 @@ extern "C" {
|
||||||
#define MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAD /**< TLS 1.2 */
|
#define MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAD /**< TLS 1.2 */
|
||||||
#define MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAE /**< TLS 1.2 */
|
#define MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAE /**< TLS 1.2 */
|
||||||
|
|
||||||
|
/* RFC 8446, Appendix B.4 */
|
||||||
|
#define MBEDTLS_TLS1_3_AES_128_GCM_SHA256 0x1301 /**< TLS 1.3 */
|
||||||
|
#define MBEDTLS_TLS1_3_AES_256_GCM_SHA384 0x1302 /**< TLS 1.3 */
|
||||||
|
#define MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256 0x1303 /**< TLS 1.3 */
|
||||||
|
#define MBEDTLS_TLS1_3_AES_128_CCM_SHA256 0x1304 /**< TLS 1.3 */
|
||||||
|
#define MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256 0x1305 /**< TLS 1.3 */
|
||||||
|
|
||||||
/* Reminder: update mbedtls_ssl_premaster_secret when adding a new key exchange.
|
/* Reminder: update mbedtls_ssl_premaster_secret when adding a new key exchange.
|
||||||
* Reminder: update MBEDTLS_KEY_EXCHANGE__xxx below
|
* Reminder: update MBEDTLS_KEY_EXCHANGE__xxx below
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -52,6 +52,15 @@ static const int ciphersuite_preference[] =
|
||||||
#if defined(MBEDTLS_SSL_CIPHERSUITES)
|
#if defined(MBEDTLS_SSL_CIPHERSUITES)
|
||||||
MBEDTLS_SSL_CIPHERSUITES,
|
MBEDTLS_SSL_CIPHERSUITES,
|
||||||
#else
|
#else
|
||||||
|
#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL)
|
||||||
|
/* TLS 1.3 ciphersuites */
|
||||||
|
MBEDTLS_TLS1_3_AES_128_GCM_SHA256,
|
||||||
|
MBEDTLS_TLS1_3_AES_256_GCM_SHA384,
|
||||||
|
MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256,
|
||||||
|
MBEDTLS_TLS1_3_AES_128_CCM_SHA256,
|
||||||
|
MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256,
|
||||||
|
#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */
|
||||||
|
|
||||||
/* Chacha-Poly ephemeral suites */
|
/* Chacha-Poly ephemeral suites */
|
||||||
MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
|
MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
|
||||||
MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
|
MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
|
||||||
|
@ -283,6 +292,53 @@ static const int ciphersuite_preference[] =
|
||||||
|
|
||||||
static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
|
static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
|
||||||
{
|
{
|
||||||
|
#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL)
|
||||||
|
#if defined(MBEDTLS_AES_C)
|
||||||
|
#if defined(MBEDTLS_GCM_C)
|
||||||
|
#if defined(MBEDTLS_SHA512_C)
|
||||||
|
{ MBEDTLS_TLS1_3_AES_256_GCM_SHA384, "TLS1-3-AES-256-GCM-SHA384",
|
||||||
|
MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384,
|
||||||
|
MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
0 },
|
||||||
|
#endif /* MBEDTLS_SHA512_C */
|
||||||
|
#if defined(MBEDTLS_SHA256_C)
|
||||||
|
{ MBEDTLS_TLS1_3_AES_128_GCM_SHA256, "TLS1-3-AES-128-GCM-SHA256",
|
||||||
|
MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256,
|
||||||
|
MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
0 },
|
||||||
|
#endif /* MBEDTLS_SHA256_C */
|
||||||
|
#endif /* MBEDTLS_GCM_C */
|
||||||
|
#if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_SHA256_C)
|
||||||
|
{ MBEDTLS_TLS1_3_AES_128_CCM_SHA256, "TLS1-3-AES-128-CCM-SHA256",
|
||||||
|
MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256,
|
||||||
|
MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
0 },
|
||||||
|
{ MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256, "TLS1-3-AES-128-CCM-8-SHA256",
|
||||||
|
MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256,
|
||||||
|
MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
MBEDTLS_CIPHERSUITE_SHORT_TAG },
|
||||||
|
#endif /* MBEDTLS_SHA256_C && MBEDTLS_CCM_C */
|
||||||
|
#endif /* MBEDTLS_AES_C */
|
||||||
|
#if defined(MBEDTLS_CHACHAPOLY_C) && defined(MBEDTLS_SHA256_C)
|
||||||
|
{ MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256,
|
||||||
|
"TLS1-3-CHACHA20-POLY1305-SHA256",
|
||||||
|
MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
|
||||||
|
MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_4,
|
||||||
|
0 // field not used in TLS 1.3 implementation
|
||||||
|
},
|
||||||
|
#endif /* MBEDTLS_CHACHAPOLY_C && MBEDTLS_SHA256_C */
|
||||||
|
#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */
|
||||||
|
|
||||||
#if defined(MBEDTLS_CHACHAPOLY_C) && \
|
#if defined(MBEDTLS_CHACHAPOLY_C) && \
|
||||||
defined(MBEDTLS_SHA256_C) && \
|
defined(MBEDTLS_SHA256_C) && \
|
||||||
defined(MBEDTLS_SSL_PROTO_TLS1_2)
|
defined(MBEDTLS_SSL_PROTO_TLS1_2)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue