diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function index d95503ad8c..332b9a7948 100644 --- a/tests/suites/test_suite_aes.function +++ b/tests/suites/test_suite_aes.function @@ -468,32 +468,38 @@ void aes_misc_params() /* END_CASE */ /* BEGIN_CASE */ -void aes_ecb_copy_context(data_t *key_str, data_t *src_str) +void aes_ecb_copy_context(data_t *key, data_t *src) { unsigned char output1[16], output2[16], plain[16]; mbedtls_aes_context ctx1, ctx2, ctx3; + TEST_EQUAL(src->len, 16); + // Set key and encrypt with original context mbedtls_aes_init(&ctx1); - TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx1, key_str->x, - key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx1, key->x, + key->len * 8) == 0); TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx1, MBEDTLS_AES_ENCRYPT, - src_str->x, output1) == 0); - + src->x, output1) == 0); ctx2 = ctx1; - TEST_ASSERT(mbedtls_aes_setkey_dec(&ctx1, key_str->x, - key_str->len * 8) == 0); + + // Set key for decryption with original context + TEST_ASSERT(mbedtls_aes_setkey_dec(&ctx1, key->x, + key->len * 8) == 0); ctx3 = ctx1; + + // Wipe the original context to make sure nothing from it is used memset(&ctx1, 0, sizeof(ctx1)); - // Encrypt and decrypt with copied context + // Encrypt with copied context TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx2, MBEDTLS_AES_ENCRYPT, - src_str->x, output2) == 0); + src->x, output2) == 0); + ASSERT_COMPARE(output1, 16, output2, 16); + + // Decrypt with copied context TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx3, MBEDTLS_AES_DECRYPT, output1, plain) == 0); - - TEST_ASSERT(mbedtls_test_hexcmp(output1, output2, 16, 16) == 0); - TEST_ASSERT(mbedtls_test_hexcmp(src_str->x, plain, src_str->len, 16) == 0); + ASSERT_COMPARE(src->x, 16, plain, 16); } /* END_CASE */