mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-05 19:35:48 +03:00
@@ -4653,57 +4653,6 @@ mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig( unsigned char sig )
|
|||||||
}
|
}
|
||||||
#endif /* MBEDTLS_PK_C && ( MBEDTLS_RSA_C || MBEDTLS_ECDSA_C ) */
|
#endif /* MBEDTLS_PK_C && ( MBEDTLS_RSA_C || MBEDTLS_ECDSA_C ) */
|
||||||
|
|
||||||
#if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \
|
|
||||||
defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)
|
|
||||||
|
|
||||||
/* Find an entry in a signature-hash set matching a given hash algorithm. */
|
|
||||||
mbedtls_md_type_t mbedtls_ssl_sig_hash_set_find( mbedtls_ssl_sig_hash_set_t *set,
|
|
||||||
mbedtls_pk_type_t sig_alg )
|
|
||||||
{
|
|
||||||
switch( sig_alg )
|
|
||||||
{
|
|
||||||
case MBEDTLS_PK_RSA:
|
|
||||||
return( set->rsa );
|
|
||||||
case MBEDTLS_PK_ECDSA:
|
|
||||||
return( set->ecdsa );
|
|
||||||
default:
|
|
||||||
return( MBEDTLS_MD_NONE );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add a signature-hash-pair to a signature-hash set */
|
|
||||||
void mbedtls_ssl_sig_hash_set_add( mbedtls_ssl_sig_hash_set_t *set,
|
|
||||||
mbedtls_pk_type_t sig_alg,
|
|
||||||
mbedtls_md_type_t md_alg )
|
|
||||||
{
|
|
||||||
switch( sig_alg )
|
|
||||||
{
|
|
||||||
case MBEDTLS_PK_RSA:
|
|
||||||
if( set->rsa == MBEDTLS_MD_NONE )
|
|
||||||
set->rsa = md_alg;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MBEDTLS_PK_ECDSA:
|
|
||||||
if( set->ecdsa == MBEDTLS_MD_NONE )
|
|
||||||
set->ecdsa = md_alg;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allow exactly one hash algorithm for each signature. */
|
|
||||||
void mbedtls_ssl_sig_hash_set_const_hash( mbedtls_ssl_sig_hash_set_t *set,
|
|
||||||
mbedtls_md_type_t md_alg )
|
|
||||||
{
|
|
||||||
set->rsa = md_alg;
|
|
||||||
set->ecdsa = md_alg;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* MBEDTLS_SSL_PROTO_TLS1_2) &&
|
|
||||||
MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert from MBEDTLS_SSL_HASH_XXX to MBEDTLS_MD_XXX
|
* Convert from MBEDTLS_SSL_HASH_XXX to MBEDTLS_MD_XXX
|
||||||
*/
|
*/
|
||||||
@@ -7944,6 +7893,55 @@ exit:
|
|||||||
}
|
}
|
||||||
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)
|
||||||
|
|
||||||
|
/* Find an entry in a signature-hash set matching a given hash algorithm. */
|
||||||
|
mbedtls_md_type_t mbedtls_ssl_sig_hash_set_find( mbedtls_ssl_sig_hash_set_t *set,
|
||||||
|
mbedtls_pk_type_t sig_alg )
|
||||||
|
{
|
||||||
|
switch( sig_alg )
|
||||||
|
{
|
||||||
|
case MBEDTLS_PK_RSA:
|
||||||
|
return( set->rsa );
|
||||||
|
case MBEDTLS_PK_ECDSA:
|
||||||
|
return( set->ecdsa );
|
||||||
|
default:
|
||||||
|
return( MBEDTLS_MD_NONE );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add a signature-hash-pair to a signature-hash set */
|
||||||
|
void mbedtls_ssl_sig_hash_set_add( mbedtls_ssl_sig_hash_set_t *set,
|
||||||
|
mbedtls_pk_type_t sig_alg,
|
||||||
|
mbedtls_md_type_t md_alg )
|
||||||
|
{
|
||||||
|
switch( sig_alg )
|
||||||
|
{
|
||||||
|
case MBEDTLS_PK_RSA:
|
||||||
|
if( set->rsa == MBEDTLS_MD_NONE )
|
||||||
|
set->rsa = md_alg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MBEDTLS_PK_ECDSA:
|
||||||
|
if( set->ecdsa == MBEDTLS_MD_NONE )
|
||||||
|
set->ecdsa = md_alg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Allow exactly one hash algorithm for each signature. */
|
||||||
|
void mbedtls_ssl_sig_hash_set_const_hash( mbedtls_ssl_sig_hash_set_t *set,
|
||||||
|
mbedtls_md_type_t md_alg )
|
||||||
|
{
|
||||||
|
set->rsa = md_alg;
|
||||||
|
set->ecdsa = md_alg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */
|
||||||
|
|
||||||
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
|
#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
|
||||||
|
|
||||||
#endif /* MBEDTLS_SSL_TLS_C */
|
#endif /* MBEDTLS_SSL_TLS_C */
|
||||||
|
Reference in New Issue
Block a user