mirror of
https://github.com/espressif/mbedtls.git
synced 2026-09-15 06:49:55 +00:00
test_suite_psa_crypto: Extended aead_multipart_state_test for PSA_ALG_CCM
Signed-off-by: Minos Galanakis <[email protected]>
This commit is contained in:
@@ -6490,11 +6490,32 @@ void aead_multipart_state_test(int key_type_arg, data_t *key_data,
|
||||
PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len));
|
||||
|
||||
if (operation.alg == PSA_ALG_CCM) {
|
||||
PSA_ASSERT(psa_aead_finish(&operation, final_data,
|
||||
/* For CCM, finishing without setting lengths must fail. */
|
||||
TEST_EQUAL(psa_aead_finish(&operation, final_data,
|
||||
finish_output_size,
|
||||
&output_part_length,
|
||||
tag_buffer, tag_length,
|
||||
&tag_size));
|
||||
&tag_size),
|
||||
PSA_ERROR_INVALID_ARGUMENT);
|
||||
psa_aead_abort(&operation);
|
||||
|
||||
PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg));
|
||||
PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len));
|
||||
|
||||
PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len,
|
||||
input_data->len));
|
||||
PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x,
|
||||
additional_data->len));
|
||||
PSA_ASSERT(psa_aead_update(&operation, input_data->x,
|
||||
input_data->len, output_data,
|
||||
output_size, &output_length));
|
||||
|
||||
TEST_EQUAL(psa_aead_finish(&operation, final_data,
|
||||
finish_output_size,
|
||||
&output_part_length,
|
||||
tag_buffer, tag_length,
|
||||
&tag_size),
|
||||
PSA_SUCCESS);
|
||||
} else {
|
||||
PSA_ASSERT(psa_aead_finish(&operation, final_data,
|
||||
finish_output_size,
|
||||
@@ -6562,11 +6583,34 @@ void aead_multipart_state_test(int key_type_arg, data_t *key_data,
|
||||
PSA_AEAD_NONCE_MAX_SIZE,
|
||||
&nonce_length));
|
||||
if (operation.alg == PSA_ALG_CCM) {
|
||||
PSA_ASSERT(psa_aead_finish(&operation, final_data,
|
||||
/* For CCM, finishing without setting lengths must fail. */
|
||||
TEST_EQUAL(psa_aead_finish(&operation, final_data,
|
||||
finish_output_size,
|
||||
&output_part_length,
|
||||
tag_buffer, tag_length,
|
||||
&tag_size));
|
||||
&tag_size),
|
||||
PSA_ERROR_INVALID_ARGUMENT);
|
||||
psa_aead_abort(&operation);
|
||||
|
||||
PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg));
|
||||
PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer,
|
||||
PSA_AEAD_NONCE_MAX_SIZE,
|
||||
&nonce_length));
|
||||
|
||||
PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len,
|
||||
input_data->len));
|
||||
PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x,
|
||||
additional_data->len));
|
||||
PSA_ASSERT(psa_aead_update(&operation, input_data->x,
|
||||
input_data->len, output_data,
|
||||
output_size, &output_length));
|
||||
|
||||
TEST_EQUAL(psa_aead_finish(&operation, final_data,
|
||||
finish_output_size,
|
||||
&output_part_length,
|
||||
tag_buffer, tag_length,
|
||||
&tag_size),
|
||||
PSA_SUCCESS);
|
||||
} else {
|
||||
PSA_ASSERT(psa_aead_finish(&operation, final_data,
|
||||
finish_output_size,
|
||||
|
||||
Reference in New Issue
Block a user