introduce sent/recv extensions field

And remove `extensions_present`

Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
This commit is contained in:
Jerry Yu 2022-08-29 15:25:36 +08:00
parent ffa1582793
commit 0c354a211b
7 changed files with 235 additions and 191 deletions

View file

@ -106,6 +106,14 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl,
*olen = hostname_len + 9;
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
mbedtls_tls13_set_sent_ext_mask( ssl,
MBEDTLS_TLS_EXT_SERVERNAME );
MBEDTLS_SSL_DEBUG_MSG(
4, ( "sent %s extension",
mbedtls_tls13_get_extension_name(
MBEDTLS_TLS_EXT_SERVERNAME ) ) );
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
return( 0 );
}
#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */
@ -177,6 +185,14 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl,
/* Extension length = *out_len - 2 (ext_type) - 2 (ext_len) */
MBEDTLS_PUT_UINT16_BE( *out_len - 4, buf, 2 );
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
mbedtls_tls13_set_sent_ext_mask( ssl,
MBEDTLS_TLS_EXT_ALPN );
MBEDTLS_SSL_DEBUG_MSG(
4, ( "sent %s extension",
mbedtls_tls13_get_extension_name(
MBEDTLS_TLS_EXT_ALPN ) ) );
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
return( 0 );
}
#endif /* MBEDTLS_SSL_ALPN */
@ -296,7 +312,11 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl,
*out_len = p - buf;
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_GROUPS;
mbedtls_tls13_set_sent_ext_mask( ssl,
MBEDTLS_TLS_EXT_SUPPORTED_GROUPS );
MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension",
mbedtls_tls13_get_extension_name(
MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) );
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
return( 0 );
@ -557,7 +577,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl,
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
/* Keeping track of the included extensions */
handshake->extensions_present = MBEDTLS_SSL_EXT_NONE;
handshake->sent_extensions = MBEDTLS_SSL_EXT_NONE;
#endif
/* First write extensions, then the total length */