Generate precomputed tables as sources in `precomps/'.
[u/mdw/catacomb] / symm / square-mktab.c
index a2e90e3..cc26f58 100644 (file)
@@ -228,8 +228,8 @@ int main(void)
  * Square tables [generated]\n\
  */\n\
 \n\
-#ifndef CATACOMB_SQUARE_TAB_H\n\
-#define CATACOMB_SQUARE_TAB_H\n\
+#include <mLib/bits.h>\n\
+\n\
 ");
 
   /* --- Write out the S-box --- */
@@ -238,27 +238,27 @@ int main(void)
   fputs("\
 /* --- The byte substitution and its inverse --- */\n\
 \n\
-#define SQUARE_S {                                                     \\\n\
+const octet square_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 SQUARE_SI {                                                    \\\n\
+const octet square_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);
   }
@@ -269,40 +269,36 @@ int main(void)
   fputs("\
 /* --- The big round tables --- */\n\
 \n\
-#define SQUARE_T {                                                     \\\n\
+const uint32 square_t[4][256] = {\n\
   { ", stdout);
   for (j = 0; j < 4; j++) {
     for (i = 0; i < 256; i++) {
       printf("0x%08x", 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 SQUARE_TI {                                                    \\\n\
+const uint32 square_ti[4][256] = {\n\
   { ", stdout);
   for (j = 0; j < 4; j++) {
     for (i = 0; i < 256; i++) {
       printf("0x%08x", 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);
     }
@@ -314,20 +310,18 @@ int main(void)
   fputs("\
 /* --- The key schedule tables --- */\n\
 \n\
-#define SQUARE_U {                                                     \\\n\
+const uint32 square_u[4][256] = {\n\
   { ", stdout);
   for (j = 0; j < 4; j++) {
     for (i = 0; i < 256; i++) {
       printf("0x%08x", 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);
     }
@@ -339,22 +333,20 @@ int main(void)
   fputs("\
 /* --- The round constants --- */\n\
 \n\
-#define SQUARE_RCON {                                                  \\\n\
+const octet square_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);