1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-07-30 22:43:08 +03:00

Fix psa_key_derivation_input_integer() not detecting bad state

Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
This commit is contained in:
Waleed Elmelegy
2025-03-03 12:35:28 +00:00
parent 89e9fa0978
commit c8c89eda5d
3 changed files with 19 additions and 0 deletions

View File

@ -0,0 +1,3 @@
Bugfix
* Fix issue where psa_key_derivation_input_integer() is not detecting
bad state after an operation has been aborted.

View File

@ -4751,6 +4751,12 @@ static psa_status_t psa_key_derivation_input_internal(
psa_status_t status; psa_status_t status;
psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation);
if (kdf_alg == 0) {
/* This is a blank or aborted operation. */
status = PSA_ERROR_BAD_STATE;
goto exit;
}
status = psa_key_derivation_check_input_type(step, key_type); status = psa_key_derivation_check_input_type(step, key_type);
if (status != PSA_SUCCESS) { if (status != PSA_SUCCESS) {
goto exit; goto exit;

View File

@ -4566,6 +4566,16 @@ void derive_input(int alg_arg,
} }
TEST_EQUAL(actual_output_status, expected_output_status); TEST_EQUAL(actual_output_status, expected_output_status);
/* Test calling input functions after operation has been aborted
result in PSA_ERROR_BAD_STATE error.
*/
psa_key_derivation_abort(&operation);
TEST_EQUAL(psa_key_derivation_input_bytes(
&operation, steps[0],
inputs[0]->x, inputs[0]->len),
PSA_ERROR_BAD_STATE);
exit: exit:
psa_key_derivation_abort(&operation); psa_key_derivation_abort(&operation);
for (i = 0; i < ARRAY_LENGTH(keys); i++) { for (i = 0; i < ARRAY_LENGTH(keys); i++) {