diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index ea0c55bff..88f0fe57f 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -655,7 +655,6 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context* ssl, size_t transcript_len; unsigned char *base_key = NULL; - size_t base_key_len; mbedtls_md_type_t const md_type = ssl->handshake->ciphersuite_info->mac; const mbedtls_md_info_t* const md_info = @@ -678,15 +677,9 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context* ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "handshake hash", transcript, transcript_len ); if( from == MBEDTLS_SSL_IS_CLIENT ) - { base_key = ssl->handshake->tls13_hs_secrets.client_handshake_traffic_secret; - base_key_len = sizeof( ssl->handshake->tls13_hs_secrets.client_handshake_traffic_secret ); - } else - { base_key = ssl->handshake->tls13_hs_secrets.server_handshake_traffic_secret; - base_key_len = sizeof( ssl->handshake->tls13_hs_secrets.server_handshake_traffic_secret ); - } ret = ssl_tls13_calc_finished_core( md_type, base_key, transcript, dst ); if( ret != 0 ) @@ -698,7 +691,10 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context* ssl, exit: /* Erase handshake secrets */ - mbedtls_platform_zeroize( base_key, base_key_len ); + if( from == MBEDTLS_SSL_IS_CLIENT ) + mbedtls_platform_zeroize( base_key, sizeof( ssl->handshake->tls13_hs_secrets.client_handshake_traffic_secret ) ); + else + mbedtls_platform_zeroize( base_key, sizeof( ssl->handshake->tls13_hs_secrets.server_handshake_traffic_secret ) ); mbedtls_platform_zeroize( transcript, sizeof( transcript ) ); return( ret ); }