Remove checksum update function pointer from SSL handshake params

This commit is contained in:
Hanno Becker 2019-08-15 17:04:57 +01:00
parent 533f5b1d8d
commit 8a4b59049b
3 changed files with 9 additions and 14 deletions

View file

@ -499,7 +499,6 @@ struct mbedtls_ssl_handshake_params
#endif #endif
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
void (*update_checksum)(mbedtls_ssl_context *, const unsigned char *, size_t);
void (*calc_verify)(const mbedtls_ssl_context *, unsigned char *, size_t *); void (*calc_verify)(const mbedtls_ssl_context *, unsigned char *, size_t *);
#if !defined(MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE) #if !defined(MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE)
@ -1838,6 +1837,9 @@ static inline int mbedtls_ssl_session_get_compression(
#endif #endif
} }
void mbedtls_ssl_update_checksum( mbedtls_ssl_context *,
const unsigned char *, size_t );
#define MBEDTLS_SSL_CHK(f) do { if( ( ret = f ) < 0 ) goto cleanup; } while( 0 ) #define MBEDTLS_SSL_CHK(f) do { if( ( ret = f ) < 0 ) goto cleanup; } while( 0 )
#if defined(MBEDTLS_USE_TINYCRYPT) #if defined(MBEDTLS_USE_TINYCRYPT)

View file

@ -1138,7 +1138,7 @@ static int ssl_parse_client_hello_v2( mbedtls_ssl_context *ssl )
return( ret ); return( ret );
} }
ssl->handshake->update_checksum( ssl, buf + 2, n ); mbedtls_ssl_update_checksum( ssl, buf + 2, n );
buf = ssl->in_msg; buf = ssl->in_msg;
n = ssl->in_left - 5; n = ssl->in_left - 5;
@ -1523,7 +1523,7 @@ read_record_header:
MBEDTLS_SSL_DEBUG_BUF( 4, "record contents", buf, msg_len ); MBEDTLS_SSL_DEBUG_BUF( 4, "record contents", buf, msg_len );
ssl->handshake->update_checksum( ssl, buf, msg_len ); mbedtls_ssl_update_checksum( ssl, buf, msg_len );
/* /*
* Handshake layer: * Handshake layer:

View file

@ -834,9 +834,6 @@ static int tls_prf_sha384( const unsigned char *secret, size_t slen,
#endif /* MBEDTLS_SHA512_C */ #endif /* MBEDTLS_SHA512_C */
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
static void ssl_update_checksum( mbedtls_ssl_context *,
const unsigned char *, size_t );
#if defined(MBEDTLS_SSL_PROTO_SSL3) #if defined(MBEDTLS_SSL_PROTO_SSL3)
static void ssl_calc_verify_ssl( const mbedtls_ssl_context *, unsigned char *, size_t * ); static void ssl_calc_verify_ssl( const mbedtls_ssl_context *, unsigned char *, size_t * );
static void ssl_calc_finished_ssl( mbedtls_ssl_context *, unsigned char *, int ); static void ssl_calc_finished_ssl( mbedtls_ssl_context *, unsigned char *, int );
@ -4158,7 +4155,7 @@ int mbedtls_ssl_write_handshake_msg( mbedtls_ssl_context *ssl )
/* Update running hashes of handshake messages seen */ /* Update running hashes of handshake messages seen */
if( hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST ) if( hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST )
ssl->handshake->update_checksum( ssl, ssl->out_msg, ssl->out_msglen ); mbedtls_ssl_update_checksum( ssl, ssl->out_msg, ssl->out_msglen );
} }
/* Either send now, or just save to be sent (and resent) later */ /* Either send now, or just save to be sent (and resent) later */
@ -4615,9 +4612,7 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl )
mbedtls_ssl_handshake_params * const hs = ssl->handshake; mbedtls_ssl_handshake_params * const hs = ssl->handshake;
if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && hs != NULL ) if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && hs != NULL )
{ mbedtls_ssl_update_checksum( ssl, ssl->in_msg, ssl->in_hslen );
ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen );
}
/* Handshake message is complete, increment counter */ /* Handshake message is complete, increment counter */
#if defined(MBEDTLS_SSL_PROTO_DTLS) #if defined(MBEDTLS_SSL_PROTO_DTLS)
@ -7389,8 +7384,8 @@ void mbedtls_ssl_reset_checksum( mbedtls_ssl_context *ssl )
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
} }
static void ssl_update_checksum( mbedtls_ssl_context *ssl, void mbedtls_ssl_update_checksum( mbedtls_ssl_context *ssl,
const unsigned char *buf, size_t len ) const unsigned char *buf, size_t len )
{ {
#if defined(MBEDTLS_SSL_PROTO_SSL3) || defined(MBEDTLS_SSL_PROTO_TLS1) || \ #if defined(MBEDTLS_SSL_PROTO_SSL3) || defined(MBEDTLS_SSL_PROTO_TLS1) || \
defined(MBEDTLS_SSL_PROTO_TLS1_1) defined(MBEDTLS_SSL_PROTO_TLS1_1)
@ -8001,8 +7996,6 @@ static void ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake )
#endif #endif
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
handshake->update_checksum = ssl_update_checksum;
#if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \
defined(MBEDTLS_KEY_EXCHANGE__WITH_CERT__ENABLED) defined(MBEDTLS_KEY_EXCHANGE__WITH_CERT__ENABLED)
mbedtls_ssl_sig_hash_set_init( &handshake->hash_algs ); mbedtls_ssl_sig_hash_set_init( &handshake->hash_algs );