aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/test/aes256cbc_decrypt_block.c
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2015-05-30 05:13:44 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2015-05-30 05:13:44 +0300
commit1109190cc2edd86f12cdd16847f3e80e48dccc50 (patch)
treea688b89f7e4ede0defaeb79ffb8e8a99ece5a395 /test/aes256cbc_decrypt_block.c
parentsupport AES-{128,192}-cbc (diff)
downloadaes-tools-1109190cc2edd86f12cdd16847f3e80e48dccc50.tar.gz
aes-tools-1109190cc2edd86f12cdd16847f3e80e48dccc50.zip
detach key expansion routines
Block encryption/decryption routines now don't expand key schedules on each call.
Diffstat (limited to '')
-rw-r--r--test/aes256cbc_decrypt_block.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/test/aes256cbc_decrypt_block.c b/test/aes256cbc_decrypt_block.c
index bac98e3..bb082d5 100644
--- a/test/aes256cbc_decrypt_block.c
+++ b/test/aes256cbc_decrypt_block.c
@@ -21,6 +21,7 @@ int main(int argc, char** argv)
{
__declspec(align(16)) AesBlock128 plain, cipher, iv;
__declspec(align(16)) AesBlock256 key;
+ __declspec(align(16)) Aes256KeySchedule key_schedule, inverted_schedule;
if (argc < 3)
exit_with_usage(argv[0]);
@@ -37,6 +38,9 @@ int main(int argc, char** argv)
exit_with_usage(argv[0]);
}
+ aes256_expand_key_schedule(&key, &key_schedule);
+ aes256_invert_key_schedule(&key_schedule, &inverted_schedule);
+
for (int i = 3; i < argc; ++i)
{
if (parse_aes_block128(&cipher, argv[i]) != 0)
@@ -44,7 +48,7 @@ int main(int argc, char** argv)
fprintf(stderr, "Invalid 128-bit AES block '%s'\n", argv[i]);
continue;
}
- plain = aes256cbc_decrypt(cipher, &key, &iv);
+ plain = aes256cbc_decrypt(cipher, &inverted_schedule, &iv);
print_aes_block128(&plain);
}