Skip to content

Commit

Permalink
Reorganize PSA INVALID_PADDING handling for test Mbed-TLS#5 in pk_rsa…
Browse files Browse the repository at this point in the history
…_verify_ext_test_vec()

Signed-off-by: Neil Armstrong <[email protected]>
  • Loading branch information
superna9999 committed Apr 22, 2022
1 parent 09030a3 commit 6e6967f
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions tests/suites/test_suite_pk.function
Original file line number Diff line number Diff line change
Expand Up @@ -531,19 +531,25 @@ void pk_rsa_verify_ext_test_vec( data_t * message_str, int digest,
digest, hash_result, hash_len,
result_str->x, sig_len );

/* Mbed TLS distinguishes "invalid padding" from "valid padding but
* the rest of the signature is invalid". This has little use in
* practice and PSA doesn't report this distinction.
* In this case, PSA returns PSA_ERROR_INVALID_SIGNATURE translated
* to MBEDTLS_ERR_RSA_VERIFY_FAILED
*/
#if defined(MBEDTLS_USE_PSA_CRYPTO)
if( result == MBEDTLS_ERR_RSA_INVALID_PADDING &&
ret == MBEDTLS_ERR_RSA_VERIFY_FAILED )
TEST_EQUAL( ret, MBEDTLS_ERR_RSA_VERIFY_FAILED);
if( result == MBEDTLS_ERR_RSA_INVALID_PADDING )
{
/* mbedtls_pk_verify_ext() may return MBEDTLS_ERR_RSA_INVALID_PADDING
* error depending on which path was taken.
* If the PSA path is used, it won't because Mbed TLS
* distinguishes "invalid padding" from "valid padding but
* the rest of the signature is invalid". This has little use in
* practice and PSA doesn't report this distinction.
* In this case, PSA returns PSA_ERROR_INVALID_SIGNATURE translated
* to MBEDTLS_ERR_RSA_VERIFY_FAILED
*/
TEST_ASSERT( ret == result || ret == MBEDTLS_ERR_RSA_VERIFY_FAILED );
}
else
#endif
TEST_EQUAL( ret, result );
{
TEST_EQUAL( ret, result );
}

exit:
mbedtls_pk_free( &pk );
Expand Down

0 comments on commit 6e6967f

Please sign in to comment.