Merge branch 'fixes'
[u/mdw/catacomb] / rijndael-mktab.c
index f5a73b8..1779709 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: rijndael-mktab.c,v 1.3 2000/10/14 17:13:19 mdw Exp $
+ * $Id: rijndael-mktab.c,v 1.4 2004/04/08 01:36:15 mdw Exp $
  *
  * Build precomputed tables for the Rijndael block cipher
  *
  * MA 02111-1307, USA.
  */
 
-/*----- Revision history --------------------------------------------------* 
- *
- * $Log: rijndael-mktab.c,v $
- * Revision 1.3  2000/10/14 17:13:19  mdw
- * Fix some compile errors.
- *
- * Revision 1.2  2000/06/18 23:12:15  mdw
- * Change typesetting of Galois Field names.
- *
- * Revision 1.1  2000/06/17 11:56:07  mdw
- * New cipher.
- *
- */
-
 /*----- Header files ------------------------------------------------------*/
 
 #include <assert.h>
@@ -175,11 +161,11 @@ static void tbox(void)
     a = s[i];
     b = a << 1; if (b & 0x100) b ^= S_MOD;
     c = a ^ b;
-    w = (b << 0) | (a << 8) | (a << 16) | (c << 24);
+    w = (c << 0) | (a << 8) | (a << 16) | (b << 24);
     t[0][i] = w;
-    t[1][i] = ROL32(w, 8);
-    t[2][i] = ROL32(w, 16);
-    t[3][i] = ROL32(w, 24);
+    t[1][i] = ROR32(w, 8);
+    t[2][i] = ROR32(w, 16);
+    t[3][i] = ROR32(w, 24);
 
     /* --- Build a backwards t-box entry --- */
 
@@ -187,11 +173,11 @@ static void tbox(void)
     b = mul(si[i], 0x09, S_MOD);
     c = mul(si[i], 0x0d, S_MOD);
     d = mul(si[i], 0x0b, S_MOD);
-    w = (a << 0) | (b << 8) | (c << 16) | (d << 24);
+    w = (d << 0) | (c << 8) | (b << 16) | (a << 24);
     ti[0][i] = w;
-    ti[1][i] = ROL32(w, 8);
-    ti[2][i] = ROL32(w, 16);
-    ti[3][i] = ROL32(w, 24);
+    ti[1][i] = ROR32(w, 8);
+    ti[2][i] = ROR32(w, 16);
+    ti[3][i] = ROR32(w, 24);
   }
 }
 
@@ -211,11 +197,11 @@ static void ubox(void)
     b = mul(i, 0x09, S_MOD);
     c = mul(i, 0x0d, S_MOD);
     d = mul(i, 0x0b, S_MOD);
-    w = (a << 0) | (b << 8) | (c << 16) | (d << 24);
+    w = (d << 0) | (c << 8) | (b << 16) | (a << 24);
     u[0][i] = w;
-    u[1][i] = ROL32(w, 8);
-    u[2][i] = ROL32(w, 16);
-    u[3][i] = ROL32(w, 24);
+    u[1][i] = ROR32(w, 8);
+    u[2][i] = ROR32(w, 16);
+    u[3][i] = ROR32(w, 24);
   }
 }