From 84cc90f63ac1f1604572da25bff694b9262a5312 Mon Sep 17 00:00:00 2001 From: Waleed Elmelegy Date: Wed, 27 Nov 2024 15:44:53 +0000 Subject: [PATCH] Improve parameter checking in psa_export_public_key_iop_setup() Signed-off-by: Waleed Elmelegy --- tf-psa-crypto/core/psa_crypto.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tf-psa-crypto/core/psa_crypto.c b/tf-psa-crypto/core/psa_crypto.c index 038bd986c0..827a228c64 100644 --- a/tf-psa-crypto/core/psa_crypto.c +++ b/tf-psa-crypto/core/psa_crypto.c @@ -1714,18 +1714,23 @@ psa_status_t psa_export_public_key_iop_setup(psa_export_public_key_iop_t *operat } private_key_attributes = slot->attr; - if (status != PSA_SUCCESS) { + + private_key_type = psa_get_key_type(&private_key_attributes); + + if (!PSA_KEY_TYPE_IS_KEY_PAIR(private_key_type)) { + status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - private_key_type = psa_get_key_type(&private_key_attributes); if (!PSA_KEY_TYPE_IS_ECC_KEY_PAIR(private_key_type)) { + status = PSA_ERROR_NOT_SUPPORTED; goto exit; } key_size = PSA_EXPORT_KEY_OUTPUT_SIZE(private_key_type, psa_get_key_bits(&private_key_attributes)); if (key_size == 0) { + status = PSA_ERROR_INVALID_ARGUMENT; goto exit; }