Migrate MAC setup/abort calls into the software driver
Step 1/x in moving the driver. Separate commits should make for easier
review.
Additional changes on top of just moving code:
* Added a sanity check on the key buffer size for CMAC.
* Transfered responsibility for resetting the core members of the
PSA MAC operation structure back to the core (from the driver
wrapper layer)
Signed-off-by: Steven Cooreman <steven.cooreman@silabs.com>
diff --git a/library/psa_crypto_driver_wrappers.c b/library/psa_crypto_driver_wrappers.c
index 32ea7f5..5d78aed 100644
--- a/library/psa_crypto_driver_wrappers.c
+++ b/library/psa_crypto_driver_wrappers.c
@@ -1610,33 +1610,25 @@
psa_status_t psa_driver_wrapper_mac_abort(
psa_mac_operation_t *operation )
{
- psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
switch( operation->id )
{
#if defined(MBEDTLS_PSA_BUILTIN_MAC)
case PSA_CRYPTO_MBED_TLS_DRIVER_ID:
- status = mbedtls_psa_mac_abort( &operation->ctx.mbedtls_ctx );
- break;
+ return( mbedtls_psa_mac_abort( &operation->ctx.mbedtls_ctx ) );
#endif /* MBEDTLS_PSA_BUILTIN_MAC */
#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT)
#if defined(PSA_CRYPTO_DRIVER_TEST)
case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID:
- status = mbedtls_transparent_test_driver_mac_abort(
- &operation->ctx.transparent_test_driver_ctx );
- break;
+ return( mbedtls_transparent_test_driver_mac_abort(
+ &operation->ctx.transparent_test_driver_ctx ) );
case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID:
- status = mbedtls_opaque_test_driver_mac_abort(
- &operation->ctx.opaque_test_driver_ctx );
- break;
+ return( mbedtls_opaque_test_driver_mac_abort(
+ &operation->ctx.opaque_test_driver_ctx ) );
#endif /* PSA_CRYPTO_DRIVER_TEST */
#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */
default:
- status = PSA_ERROR_INVALID_ARGUMENT;
- break;
+ return( PSA_ERROR_INVALID_ARGUMENT );
}
-
- operation->id = 0;
- return( status );
}
/* End of automatically generated file. */