Clarify return value of pk_check_pair()

This commit is contained in:
Manuel Pégourié-Gonnard 2018-10-24 12:37:44 +02:00
parent 20678b2ae2
commit eaeb7b23ff
2 changed files with 9 additions and 3 deletions

View file

@ -503,7 +503,11 @@ int mbedtls_pk_encrypt( mbedtls_pk_context *ctx,
* \param pub Context holding a public key. * \param pub Context holding a public key.
* \param prv Context holding a private (and public) key. * \param prv Context holding a private (and public) key.
* *
* \return 0 on success or MBEDTLS_ERR_PK_BAD_INPUT_DATA * \return \c 0 on success (keys were checked and match each other).
* \return #MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE if the keys could not
* be checked - in that case they may or may not match.
* \return #MBEDTLS_ERR_PK_BAD_INPUT_DATA if a context is invalid.
* \return Another non-zero value if the keys do not match.
*/ */
int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, const mbedtls_pk_context *prv ); int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, const mbedtls_pk_context *prv );

View file

@ -456,12 +456,14 @@ int mbedtls_pk_encrypt( mbedtls_pk_context *ctx,
int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, const mbedtls_pk_context *prv ) int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, const mbedtls_pk_context *prv )
{ {
if( pub == NULL || pub->pk_info == NULL || if( pub == NULL || pub->pk_info == NULL ||
prv == NULL || prv->pk_info == NULL || prv == NULL || prv->pk_info == NULL )
prv->pk_info->check_pair_func == NULL )
{ {
return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); return( MBEDTLS_ERR_PK_BAD_INPUT_DATA );
} }
if( prv->pk_info->check_pair_func == NULL )
return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE );
if( prv->pk_info->type == MBEDTLS_PK_RSA_ALT ) if( prv->pk_info->type == MBEDTLS_PK_RSA_ALT )
{ {
if( pub->pk_info->type != MBEDTLS_PK_RSA ) if( pub->pk_info->type != MBEDTLS_PK_RSA )