diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 9433c0dc81..5479815c52 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -249,17 +249,17 @@ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) -#define MBEDTLS_SSL_SIG_ALG( sig, hash ) (( hash << 8 ) | sig) -#define MBEDTLS_SSL_SIG_FROM_SIG_ALG(alg) (alg & 0xFF) -#define MBEDTLS_SSL_HASH_FROM_SIG_ALG(alg) (alg >> 8) +#define MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( sig, hash ) (( hash << 8 ) | sig) +#define MBEDTLS_SSL_TLS12_SIG_ALG_FROM_SIG_AND_HASH_ALG(alg) (alg & 0xFF) +#define MBEDTLS_SSL_TLS12_HASH_ALG_FROM_SIG_AND_HASH_ALG(alg) (alg >> 8) #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_RSA_C) -#define MBEDTLS_SSL_SIG_ALG_SET( hash ) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_SIG_ECDSA, hash ), \ - MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_SIG_RSA, hash ), +#define MBEDTLS_SSL_SIG_ALG_SET( hash ) MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, hash ), \ + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, hash ), #elif defined(MBEDTLS_ECDSA_C) -#define MBEDTLS_SSL_SIG_ALG_SET( hash ) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_SIG_ECDSA, hash ), +#define MBEDTLS_SSL_SIG_ALG_SET( hash ) MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, hash ), #elif defined(MBEDTLS_RSA_C) -#define MBEDTLS_SSL_SIG_ALG_SET( hash ) MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_SIG_RSA, hash ), +#define MBEDTLS_SSL_SIG_ALG_SET( hash ) MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, hash ), #else #define MBEDTLS_SSL_SIG_ALG_SET( hash ) #endif diff --git a/library/ssl_tls.c b/library/ssl_tls.c index ea1e6badac..34817d9edc 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -7666,8 +7666,10 @@ unsigned int mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( for( i = 0; received_sig_algs[i] != MBEDTLS_TLS_SIG_NONE; i++ ) { - if( sig_alg == MBEDTLS_SSL_SIG_FROM_SIG_ALG( received_sig_algs[i] ) ) - return MBEDTLS_SSL_HASH_FROM_SIG_ALG( received_sig_algs[i] ); + if( sig_alg == MBEDTLS_SSL_TLS12_SIG_ALG_FROM_SIG_AND_HASH_ALG( + received_sig_algs[i] ) ) + return MBEDTLS_SSL_TLS12_HASH_ALG_FROM_SIG_AND_HASH_ALG( + received_sig_algs[i] ); } return( MBEDTLS_SSL_HASH_NONE );