aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/test/aes128cbc_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/aes128cbc_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/aes128cbc_decrypt_block.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/test/aes128cbc_decrypt_block.c b/test/aes128cbc_decrypt_block.c
index 1a77cdf..3bd5d74 100644
--- a/test/aes128cbc_decrypt_block.c
+++ b/test/aes128cbc_decrypt_block.c
@@ -20,6 +20,7 @@ static void exit_with_usage(const char* argv0)
int main(int argc, char** argv)
{
__declspec(align(16)) AesBlock128 plain, key, cipher, iv;
+ __declspec(align(16)) Aes128KeySchedule key_schedule, inverted_schedule;
if (argc < 3)
exit_with_usage(argv[0]);
@@ -36,6 +37,9 @@ int main(int argc, char** argv)
exit_with_usage(argv[0]);
}
+ aes128_expand_key_schedule(key, &key_schedule);
+ aes128_invert_key_schedule(&key_schedule, &inverted_schedule);
+
for (int i = 3; i < argc; ++i)
{
if (parse_aes_block128(&cipher, argv[i]) != 0)
@@ -43,7 +47,7 @@ int main(int argc, char** argv)
fprintf(stderr, "Invalid 128-bit AES block '%s'\n", argv[i]);
continue;
}
- plain = aes128cbc_decrypt(cipher, key, &iv);
+ plain = aes128cbc_decrypt(cipher, &inverted_schedule, &iv);
print_aes_block128(&plain);
}