Replace directly access for sig_hashes

Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
This commit is contained in:
Jerry Yu 2021-12-22 11:12:47 +08:00
parent 08e2ceae18
commit 0e5bcb6bf5
3 changed files with 10 additions and 8 deletions

View file

@ -209,7 +209,7 @@ static int ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf,
{ {
unsigned char *p = buf; unsigned char *p = buf;
size_t sig_alg_len = 0; size_t sig_alg_len = 0;
const int *md; const int *md = mbedtls_ssl_conf_get_sig_algs( ssl->conf );
#if defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECDSA_C) #if defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECDSA_C)
unsigned char *sig_alg_list = buf + 6; unsigned char *sig_alg_list = buf + 6;
@ -223,10 +223,10 @@ static int ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf,
MBEDTLS_SSL_DEBUG_MSG( 3, MBEDTLS_SSL_DEBUG_MSG( 3,
( "client hello, adding signature_algorithms extension" ) ); ( "client hello, adding signature_algorithms extension" ) );
if( ssl->conf->sig_hashes == NULL ) if( md == NULL )
return( MBEDTLS_ERR_SSL_BAD_CONFIG ); return( MBEDTLS_ERR_SSL_BAD_CONFIG );
for( md = ssl->conf->sig_hashes; *md != MBEDTLS_MD_NONE; md++ ) for( ; *md != MBEDTLS_MD_NONE; md++ )
{ {
#if defined(MBEDTLS_ECDSA_C) #if defined(MBEDTLS_ECDSA_C)
sig_alg_len += 2; sig_alg_len += 2;
@ -253,7 +253,8 @@ static int ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf,
*/ */
sig_alg_len = 0; sig_alg_len = 0;
for( md = ssl->conf->sig_hashes; *md != MBEDTLS_MD_NONE; md++ ) for( md = mbedtls_ssl_conf_get_sig_algs( ssl->conf );
*md != MBEDTLS_MD_NONE; md++ )
{ {
#if defined(MBEDTLS_ECDSA_C) #if defined(MBEDTLS_ECDSA_C)
sig_alg_list[sig_alg_len++] = mbedtls_ssl_hash_from_md_alg( *md ); sig_alg_list[sig_alg_len++] = mbedtls_ssl_hash_from_md_alg( *md );

View file

@ -2798,7 +2798,8 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl )
/* /*
* Supported signature algorithms * Supported signature algorithms
*/ */
for( cur = ssl->conf->sig_hashes; *cur != MBEDTLS_MD_NONE; cur++ ) for( cur = mbedtls_ssl_conf_get_sig_algs( ssl->conf );
*cur != MBEDTLS_MD_NONE; cur++ )
{ {
unsigned char hash = mbedtls_ssl_hash_from_md_alg( *cur ); unsigned char hash = mbedtls_ssl_hash_from_md_alg( *cur );

View file

@ -6858,12 +6858,12 @@ int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_i
int mbedtls_ssl_check_sig_hash( const mbedtls_ssl_context *ssl, int mbedtls_ssl_check_sig_hash( const mbedtls_ssl_context *ssl,
mbedtls_md_type_t md ) mbedtls_md_type_t md )
{ {
const int *cur; const int *cur = mbedtls_ssl_conf_get_sig_algs( ssl->conf );
if( ssl->conf->sig_hashes == NULL ) if( cur == NULL )
return( -1 ); return( -1 );
for( cur = ssl->conf->sig_hashes; *cur != MBEDTLS_MD_NONE; cur++ ) for( ; *cur != MBEDTLS_MD_NONE; cur++ )
if( *cur == (int) md ) if( *cur == (int) md )
return( 0 ); return( 0 );