diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index ed6a445c22..508a5e34ad 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -637,7 +637,6 @@ typedef enum MBEDTLS_SSL_SERVER_NEW_SESSION_TICKET, MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT, #if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) - MBEDTLS_SSL_END_OF_EARLY_DATA, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS, MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY, #endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */ diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 2bde4a8252..5dba0f0c40 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1608,26 +1608,6 @@ static int ssl_tls1_3_process_server_finished( mbedtls_ssl_context *ssl ) return ( mbedtls_ssl_tls13_finished_in_process( ssl ) ); } -/* - * Handler for MBEDTLS_SSL_CLIENT_CERTIFICATE - */ -static int ssl_tls1_3_write_client_certificate( mbedtls_ssl_context *ssl ) -{ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "%s hasn't been implemented", __func__ ) ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY ); - return( 0 ); -} - -/* - * Handler for MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY - */ -static int ssl_tls1_3_write_client_certificate_verify( mbedtls_ssl_context *ssl ) -{ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "%s hasn't been implemented", __func__ ) ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_FINISHED ); - return( 0 ); -} - /* * Handler for MBEDTLS_SSL_CLIENT_FINISHED */ @@ -1701,14 +1681,6 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) ret = ssl_tls1_3_process_server_finished( ssl ); break; - case MBEDTLS_SSL_CLIENT_CERTIFICATE: - ret = ssl_tls1_3_write_client_certificate( ssl ); - break; - - case MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY: - ret = ssl_tls1_3_write_client_certificate_verify( ssl ); - break; - case MBEDTLS_SSL_CLIENT_FINISHED: ret = ssl_tls1_3_write_client_finished( ssl ); break; diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index dd550f7721..f379485854 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -945,7 +945,7 @@ static int ssl_tls13_finished_in_postprocess_cli( mbedtls_ssl_context *ssl ) { int ret = 0; mbedtls_ssl_key_set traffic_keys; - mbedtls_ssl_transform *transform_application; + mbedtls_ssl_transform *transform_application = NULL; ret = mbedtls_ssl_tls13_key_schedule_stage_application( ssl ); if( ret != 0 ) @@ -986,18 +986,18 @@ static int ssl_tls13_finished_in_postprocess_cli( mbedtls_ssl_context *ssl ) ssl->transform_application = transform_application; - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_END_OF_EARLY_DATA ); + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_FINISHED ); cleanup: mbedtls_platform_zeroize( &traffic_keys, sizeof(mbedtls_ssl_key_set) ); - if( ret != 0) - { - mbedtls_free( transform_application ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + if( ret != 0) + { + mbedtls_free( transform_application ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } return( ret ); }