math/mpreduce.h: Missing include files.
[u/mdw/catacomb] / symm / tiger-mktab.c
index 5029330..5ddbb03 100644 (file)
 
 #include "tiger-base.h"
 
-/*----- Data structures ---------------------------------------------------*/
-
 /*----- Static variables --------------------------------------------------*/
 
-static kludge64 s[4][256];
+static kludge64 tiger_s[4][256];
 
 /*----- Main code ---------------------------------------------------------*/
 
@@ -62,7 +60,7 @@ void gen(const char *buf, unsigned passes)
   for (i = 0; i < 256; i++) {
     for (j = 0; j < 4; j++) {
       uint32 z = 0x01010101 * i;
-      SET64(s[j][i], z, z);
+      SET64(tiger_s[j][i], z, z);
     }
   }
 
@@ -83,15 +81,15 @@ void gen(const char *buf, unsigned passes)
        }
        for (b = 0; b < 32; b += 8) {
          n = U8(LO64(ss[q]) >> b);
-         t = (LO64(s[k][j]) ^ LO64(s[k][n])) & (0xff << b);
-         SET64(s[k][j], HI64(s[k][j]), LO64(s[k][j]) ^ t);
-         SET64(s[k][n], HI64(s[k][n]), LO64(s[k][n]) ^ t);
+         t = (LO64(tiger_s[k][j]) ^ LO64(tiger_s[k][n])) & (0xff << b);
+         SET64(tiger_s[k][j], HI64(tiger_s[k][j]), LO64(tiger_s[k][j]) ^ t);
+         SET64(tiger_s[k][n], HI64(tiger_s[k][n]), LO64(tiger_s[k][n]) ^ t);
        }
        for (b = 0; b < 32; b += 8) {
          n = U8(HI64(ss[q]) >> b);
-         t = (HI64(s[k][j]) ^ HI64(s[k][n])) & (0xff << b);
-         SET64(s[k][j], HI64(s[k][j]) ^ t, LO64(s[k][j]));
-         SET64(s[k][n], HI64(s[k][n]) ^ t, LO64(s[k][n]));
+         t = (HI64(tiger_s[k][j]) ^ HI64(tiger_s[k][n])) & (0xff << b);
+         SET64(tiger_s[k][j], HI64(tiger_s[k][j]) ^ t, LO64(tiger_s[k][j]));
+         SET64(tiger_s[k][n], HI64(tiger_s[k][n]) ^ t, LO64(tiger_s[k][n]));
        }
       }
     }
@@ -110,36 +108,28 @@ int main(void)
  * S-boxes for Tiger [generated]\n\
  */\n\
 \n\
-#ifndef CATACOMB_TIGER_TAB_H\n\
-#define CATACOMB_TIGER_TAB_H\n\
+#include <mLib/bits.h>\n\
 \n\
-#define TIGER_S {                                                      \\\n\
+const kludge64 tiger_s[4][256] = {\n\
   { ", stdout);
 
   for (i = 0; i < 4; i++) {
     for (j = 0; j < 256; j++) {
-#ifdef HAVE_UINT64
-      printf("{ 0x%016llxull }", s[i][j].i);
-#else
-      printf("{ 0x%08lx, 0x%08lx }",
-            (unsigned long)s[i][j].hi, (unsigned long)s[i][j].lo);
-#endif
+      printf("X64(%08lx, %08lx)",
+            (unsigned long)HI64(tiger_s[i][j]),
+            (unsigned long)LO64(tiger_s[i][j]));
       if (j == 255) {
        if (i == 3)
-         fputs(" }             \\\n}\n", stdout);
+         fputs(" }\n};\n", stdout);
        else
-         fputs(" },            \\\n\
-                                                                       \\\n\
-  { ", stdout);
+         fputs(" },\n\n  { ", stdout);
       } else if (j % 2 == 1)
-       fputs(",                \\\n    ", stdout);
+       fputs(",\n    ", stdout);
       else
        fputs(", ", stdout);
     }
   }
 
-  fputs("\n#endif\n", stdout);
-
   if (fclose(stdout)) {
     fprintf(stderr, "error writing data\n");
     exit(EXIT_FAILURE);