Generate precomputed tables as sources in `precomps/'.
[u/mdw/catacomb] / symm / rijndael-mktab.c
index 4260de6..91007cc 100644 (file)
@@ -230,8 +230,7 @@ int main(void)
  * Rijndael tables [generated]\n\
  */\n\
 \n\
-#ifndef CATACOMB_RIJNDAEL_TAB_H\n\
-#define CATACOMB_RIJNDAEL_TAB_H\n\
+#include \"rijndael-base.h\"\n\
 ");
 
   /* --- Write out the S-box --- */
@@ -240,27 +239,27 @@ int main(void)
   fputs("\
 /* --- The byte substitution and its inverse --- */\n\
 \n\
-#define RIJNDAEL_S {                                                   \\\n\
+const octet rijndael_s[256] = {\n\
   ", stdout);
   for (i = 0; i < 256; i++) {
     printf("0x%02x", s[i]);
     if (i == 255)
-      fputs("                  \\\n}\n\n", stdout);
+      fputs("\n};\n\n", stdout);
     else if (i % 8 == 7)
-      fputs(",                 \\\n  ", stdout);
+      fputs(",\n  ", stdout);
     else
       fputs(", ", stdout);
   }
 
   fputs("\
-#define RIJNDAEL_SI {                                                  \\\n\
+const octet rijndael_si[256] = {\n\
   ", stdout);
   for (i = 0; i < 256; i++) {
     printf("0x%02x", si[i]);
     if (i == 255)
-      fputs("                  \\\n}\n\n", stdout);
+      fputs("\n};\n\n", stdout);
     else if (i % 8 == 7)
-      fputs(",                 \\\n  ", stdout);
+      fputs(",\n  ", stdout);
     else
       fputs(", ", stdout);
   }
@@ -271,40 +270,36 @@ int main(void)
   fputs("\
 /* --- The big round tables --- */\n\
 \n\
-#define RIJNDAEL_T {                                                   \\\n\
+const uint32 rijndael_t[4][256] = {\n\
   { ", stdout);
   for (j = 0; j < 4; j++) {
     for (i = 0; i < 256; i++) {
       printf("0x%08lx", (unsigned long)t[j][i]);
       if (i == 255) {
        if (j == 3)
-         fputs(" }                     \\\n}\n\n", stdout);
+         fputs(" }\n};\n\n", stdout);
        else
-         fputs(" },                    \\\n\
-                                                                       \\\n\
-  { ", stdout);
+         fputs(" },\n\n  { ", stdout);
       } else if (i % 4 == 3)
-       fputs(",                        \\\n    ", stdout);
+       fputs(",\n    ", stdout);
       else
        fputs(", ", stdout);
     }
   }
 
   fputs("\
-#define RIJNDAEL_TI {                                                  \\\n\
+const uint32 rijndael_ti[4][256] = {\n\
   { ", stdout);
   for (j = 0; j < 4; j++) {
     for (i = 0; i < 256; i++) {
       printf("0x%08lx", (unsigned long)ti[j][i]);
       if (i == 255) {
        if (j == 3)
-         fputs(" }                     \\\n}\n\n", stdout);
+         fputs(" }\n};\n\n", stdout);
        else
-         fputs(" },                    \\\n\
-                                                                       \\\n\
-  { ", stdout);
+         fputs(" },\n\n  { ", stdout);
       } else if (i % 4 == 3)
-       fputs(",                        \\\n    ", stdout);
+       fputs(",\n    ", stdout);
       else
        fputs(", ", stdout);
     }
@@ -316,20 +311,18 @@ int main(void)
   fputs("\
 /* --- The decryption key schedule tables --- */\n\
 \n\
-#define RIJNDAEL_U {                                                   \\\n\
+const uint32 rijndael_u[4][256] = {\n\
   { ", stdout);
   for (j = 0; j < 4; j++) {
     for (i = 0; i < 256; i++) {
       printf("0x%08lx", (unsigned long)u[j][i]);
       if (i == 255) {
        if (j == 3)
-         fputs(" }                     \\\n}\n\n", stdout);
+         fputs(" }\n};\n\n", stdout);
        else
-         fputs(" },                    \\\n\
-                                                                       \\\n\
-  { ", stdout);
+         fputs(" },\n\n  { ", stdout);
       } else if (i % 4 == 3)
-       fputs(",                        \\\n    ", stdout);
+       fputs(",\n    ", stdout);
       else
        fputs(", ", stdout);
     }
@@ -341,22 +334,20 @@ int main(void)
   fputs("\
 /* --- The round constants --- */\n\
 \n\
-#define RIJNDAEL_RCON {                                                        \\\n\
+const octet rijndael_rcon[32] = {\n\
   ", stdout);
   for (i = 0; i < sizeof(rc); i++) {
     printf("0x%02x", rc[i]);
     if (i == sizeof(rc) - 1)
-      fputs("                  \\\n}\n\n", stdout);
+      fputs("\n};\n", stdout);
     else if (i % 8 == 7)
-      fputs(",                 \\\n  ", stdout);
+      fputs(",\n  ", stdout);
     else
       fputs(", ", stdout);
   }
 
   /* --- Done --- */
 
-  puts("#endif");
-
   if (fclose(stdout)) {
     fprintf(stderr, "error writing data\n");
     exit(EXIT_FAILURE);