Use shared function for error translation
diff --git a/library/pk_wrap.c b/library/pk_wrap.c
index 5e83602..301d226 100644
--- a/library/pk_wrap.c
+++ b/library/pk_wrap.c
@@ -761,30 +761,6 @@
type == MBEDTLS_PK_ECDSA );
}
-/* translate PSA errors to best PK approximation */
-static int pk_err_from_psa( psa_status_t status )
-{
- switch( status )
- {
- case PSA_SUCCESS:
- return( 0 );
- case PSA_ERROR_NOT_SUPPORTED:
- return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE );
- case PSA_ERROR_INSUFFICIENT_MEMORY:
- return( MBEDTLS_ERR_PK_ALLOC_FAILED );
- case PSA_ERROR_COMMUNICATION_FAILURE:
- case PSA_ERROR_HARDWARE_FAILURE:
- case PSA_ERROR_TAMPERING_DETECTED:
- return( MBEDTLS_ERR_PK_HW_ACCEL_FAILED );
- case PSA_ERROR_INSUFFICIENT_ENTROPY:
- return( MBEDTLS_ERR_ECP_RANDOM_FAILED );
- case PSA_ERROR_BAD_STATE:
- return( MBEDTLS_ERR_PK_BAD_INPUT_DATA );
- default: /* should never happen */
- return( MBEDTLS_ERR_PK_HW_ACCEL_FAILED );
- }
-}
-
/*
* Simultaneously convert and move raw MPI from the beginning of a buffer
* to an ASN.1 MPI at the end of the buffer.
@@ -882,7 +858,7 @@
* buggy anyway). */
status = psa_get_key_information( *key, NULL, &bits );
if( status != PSA_SUCCESS )
- return( pk_err_from_psa( status ) );
+ return( mbedtls_psa_err_translate_pk( status ) );
buf_len = MBEDTLS_ECDSA_MAX_SIG_LEN( bits );
@@ -890,7 +866,7 @@
status = psa_asymmetric_sign( *key, alg, hash, hash_len,
sig, buf_len, sig_len );
if( status != PSA_SUCCESS )
- return( pk_err_from_psa( status ) );
+ return( mbedtls_psa_err_translate_pk( status ) );
/* transcode it to ASN.1 sequence */
return( pk_ecdsa_sig_asn1_from_psa( sig, sig_len, buf_len ) );