Commit Graph

16 Commits

Author SHA1 Message Date
Stephen Heumann
4ffd064204 Add comments and copyright notices. 2017-06-27 23:30:58 -05:00
Stephen Heumann
e46264f0c4 Small decryption optimization, saving a value in a register between rounds. 2017-06-27 22:35:57 -05:00
Stephen Heumann
634ff1e865 Optimize decryption code.
AddRoundKey is integrated into InvMixColumn and InvFinalRoundStep, rather than being done separately.
2017-06-27 20:44:14 -05:00
Stephen Heumann
18dabeb621 Allow number of test iters to be given on command line. 2017-06-27 20:07:07 -05:00
Stephen Heumann
d9b8467bb7 Rename some interfaces. 2017-06-27 19:42:53 -05:00
Stephen Heumann
14fe68de79 Time decryption as well as encryption. 2017-06-27 19:35:38 -05:00
Stephen Heumann
a522ab6d88 Optimize decryption a bit. 2017-06-27 19:24:06 -05:00
Stephen Heumann
46fcb3badc Add support for AES-256 decryption. 2017-06-27 18:35:04 -05:00
Stephen Heumann
0e3e511ba8 Add basic decryption implementation for AES-128 and AES-192. 2017-06-27 18:17:00 -05:00
Stephen Heumann
9d9f62444d Add timing test. 2017-06-27 12:45:58 -05:00
Stephen Heumann
4314644e75 Update to also support AES-192 and AES-256. 2017-06-27 01:36:56 -05:00
Stephen Heumann
293828584f Optimize key expansion a bit, removing unnecessary loads. 2017-06-26 22:22:55 -05:00
Stephen Heumann
f04000c83d Save a few cycles by not reloading the last written byte between rounds. 2017-06-26 21:49:16 -05:00
Stephen Heumann
75aac0daa9 Save a couple values on the stack rather than looking them up again.
This is cycle-neutral (assuming a page-aligned DP), but it reduces instruction bytes and therefore may give a speedup on accelerators with caches.
2017-06-26 21:13:25 -05:00
Stephen Heumann
301021e75e Cut out a few instructions by reusing subexpressions in registers. 2017-06-26 20:53:17 -05:00
Stephen Heumann
3df0080371 Initial working implementation of AES-128 encryption. 2017-06-26 20:41:44 -05:00