diff --git a/ChangeLog b/ChangeLog
index f83ad1774eb6bcefc6ac64ecf7cbabea773d9726..d797944ef7895ff73d692fff00918625612d0eb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,30 @@
+2002-02-13  Niels M�ller  <nisse@cuckoo.hack.org>
+
+	* aes.c (aes_encrypt): Don't unroll the innerloop.
+	(aes_encrypt): Don't unroll the loop for the final round.
+	(aes_decrypt): Likewise, no loop unrolling.
+
+	* aes-set-key.c (aes_set_key): Reversed the order of the inverted
+	subkeys. They are now stored in the same order as they are used.
+
+	* aes-tables.c (itable): New bigger table, generated by aesdata.c. 
+
+	* aes.c (aes_decrypt): Rewrote to use the bigger tables.
+
 2002-02-12  Niels M�ller  <nisse@cuckoo.hack.org>
 
+	* aes.c (aes_encrypt): Interleave computation and output in the
+	final round.
+
+	* aes-internal.h (AES_SMALL): New macro.
+
+	* aes.c (aes_encrypt): Optionally use smaller rotating inner loop.
+
+	* aes-tables.c (dtbl): Replaced with table generated by aesdata.
+
+	* aes.c (aes_encrypt): Rewrite, now uses larger tables in order to
+	avoid rotates.
+
 	* sparc/aes.asm (aes_encrypt): Strength reduced on j, getting rid
 	of one register and one instruction in the inner loop.
 
diff --git a/aes-tables.c b/aes-tables.c
index 14208b624f2500b5ea098e93c838d1625baa5a35..fcc4a5b1f0e93a67c8a102ffb69adb098c355645 100644
--- a/aes-tables.c
+++ b/aes-tables.c
@@ -376,7 +376,7 @@ const uint32_t itable[_AES_TABLE_SIZE][0x100] =
     0x6184cb7b,0x70b632d5,0x745c6c48,0x4257b8d0,
   },
 #if !AES_SMALL
-  { 
+  { /* Before: itable[1] */
     0xa7f45150,0x65417e53,0xa4171ac3,0x5e273a96,
     0x6bab3bcb,0x459d1ff1,0x58faacab,0x03e34b93,
     0xfa302055,0x6d76adf6,0x76cc8891,0x4c02f525,
@@ -441,7 +441,7 @@ const uint32_t itable[_AES_TABLE_SIZE][0x100] =
     0xc31d1672,0x25e2bc0c,0x493c288b,0x950dff41,
     0x01a83971,0xb30c08de,0xe4b4d89c,0xc1566490,
     0x84cb7b61,0xb632d570,0x5c6c4874,0x57b8d042,
-  },{ 
+  },{ /* Before: itable[2] */
     0xf45150a7,0x417e5365,0x171ac3a4,0x273a965e,
     0xab3bcb6b,0x9d1ff145,0xfaacab58,0xe34b9303,
     0x302055fa,0x76adf66d,0xcc889176,0x02f5254c,
@@ -506,7 +506,7 @@ const uint32_t itable[_AES_TABLE_SIZE][0x100] =
     0x1d1672c3,0xe2bc0c25,0x3c288b49,0x0dff4195,
     0xa8397101,0x0c08deb3,0xb4d89ce4,0x566490c1,
     0xcb7b6184,0x32d570b6,0x6c48745c,0xb8d04257,
-  },{ 
+  },{ /* Before: itable[3] */
     0x5150a7f4,0x7e536541,0x1ac3a417,0x3a965e27,
     0x3bcb6bab,0x1ff1459d,0xacab58fa,0x4b9303e3,
     0x2055fa30,0xadf66d76,0x889176cc,0xf5254c02,