From b737f6a9befaba143eac87b8eb5ac068b8f1fab7 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 10 Dec 2021 17:55:23 +0800 Subject: [PATCH] move base_key init Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 6b8f8e146e..6f3338c818 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -655,8 +655,19 @@ 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 = 0; mbedtls_ssl_tls13_handshake_secrets *tls13_hs_secrets = &ssl->handshake->tls13_hs_secrets; + if( from == MBEDTLS_SSL_IS_CLIENT ) + { + base_key = tls13_hs_secrets->client_handshake_traffic_secret; + base_key_len = sizeof( tls13_hs_secrets->client_handshake_traffic_secret ); + } + else + { + base_key = tls13_hs_secrets->server_handshake_traffic_secret; + base_key_len = sizeof( tls13_hs_secrets->server_handshake_traffic_secret ); + } mbedtls_md_type_t const md_type = ssl->handshake->ciphersuite_info->mac; const mbedtls_md_info_t* const md_info = @@ -681,11 +692,6 @@ 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 = tls13_hs_secrets->client_handshake_traffic_secret; - else - base_key = tls13_hs_secrets->server_handshake_traffic_secret; - ret = ssl_tls13_calc_finished_core( md_type, base_key, transcript, dst ); if( ret != 0 ) goto exit; @@ -696,16 +702,7 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context* ssl, exit: /* Erase handshake secrets */ - if( from == MBEDTLS_SSL_IS_CLIENT ) - { - mbedtls_platform_zeroize( base_key, - sizeof( tls13_hs_secrets->client_handshake_traffic_secret ) ); - } - else - { - mbedtls_platform_zeroize( base_key, - sizeof( tls13_hs_secrets->server_handshake_traffic_secret ) ); - } + mbedtls_platform_zeroize( base_key, base_key_len ); mbedtls_platform_zeroize( transcript, sizeof( transcript ) ); return( ret ); }