X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/4d47e1571e6a3fd88ebd956a18a4b362d2f98755..ffec48800022b6872951eca188d2ceedef8dd5c8:/rijndael-mktab.c diff --git a/rijndael-mktab.c b/rijndael-mktab.c index b07207b..1779709 100644 --- a/rijndael-mktab.c +++ b/rijndael-mktab.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: rijndael-mktab.c,v 1.2 2000/06/18 23:12:15 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 * @@ -27,17 +27,6 @@ * MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: rijndael-mktab.c,v $ - * 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 @@ -172,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 --- */ @@ -184,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); } } @@ -208,17 +197,17 @@ 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); } } /* --- Round constants --- */ -void rcon(void) +static void rcon(void) { unsigned r = 1; int i; @@ -288,7 +277,7 @@ int main(void) { ", stdout); for (j = 0; j < 4; j++) { for (i = 0; i < 256; i++) { - printf("0x%08x", t[j][i]); + printf("0x%08lx", (unsigned long)t[j][i]); if (i == 255) { if (j == 3) fputs(" } \\\n}\n\n", stdout); @@ -308,7 +297,7 @@ int main(void) { ", stdout); for (j = 0; j < 4; j++) { for (i = 0; i < 256; i++) { - printf("0x%08x", ti[j][i]); + printf("0x%08lx", (unsigned long)ti[j][i]); if (i == 255) { if (j == 3) fputs(" } \\\n}\n\n", stdout); @@ -333,7 +322,7 @@ int main(void) { ", stdout); for (j = 0; j < 4; j++) { for (i = 0; i < 256; i++) { - printf("0x%08x", u[j][i]); + printf("0x%08lx", (unsigned long)u[j][i]); if (i == 255) { if (j == 3) fputs(" } \\\n}\n\n", stdout);