diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 8e339ea79..0bb9e8e65 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3448,6 +3448,7 @@ psa_status_t psa_sign_hash_complete( size_t *signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_status_t numops_status = PSA_ERROR_CORRUPTION_DETECTED; *signature_length = 0; @@ -3470,8 +3471,9 @@ psa_status_t psa_sign_hash_complete( signature_length); /* Update ops count with work done. */ + numops_status = psa_driver_wrapper_sign_hash_get_num_ops(operation, &operation->num_ops); if (status == PSA_SUCCESS) { - status = psa_driver_wrapper_sign_hash_get_num_ops(operation, &operation->num_ops); + status = numops_status; } exit: @@ -3592,6 +3594,7 @@ psa_status_t psa_verify_hash_complete( psa_verify_hash_interruptible_operation_t *operation) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_status_t numops_status = PSA_ERROR_CORRUPTION_DETECTED; /* Check that start has been called first, and that operation has not * previously errored. */ @@ -3603,8 +3606,9 @@ psa_status_t psa_verify_hash_complete( status = psa_driver_wrapper_verify_hash_complete(operation); /* Update ops count with work done. */ + numops_status = psa_driver_wrapper_verify_hash_get_num_ops(operation, &operation->num_ops); if (status == PSA_SUCCESS) { - status = psa_driver_wrapper_verify_hash_get_num_ops(operation, &operation->num_ops); + status = numops_status; } exit: