#include "blkc.h"
#include "gcipher.h"
#include "mars.h"
-#include "mars-tab.h"
#include "paranoia.h"
/*----- Global variables --------------------------------------------------*/
/*----- Useful tables -----------------------------------------------------*/
-static const uint32 s[512] = MARS_S;
-#define s0 (s + 0)
-#define s1 (s + 256)
-#define bb (s + 265)
+extern const uint32 mars_s[512];
+#define s0 (mars_s + 0)
+#define s1 (mars_s + 256)
+#define bb (mars_s + 265)
/*----- Main code ---------------------------------------------------------*/
x = t[14];
for (ii = 0; ii < 4; ii++) {
for (i = 0; i < 15; i++) {
- x = t[i] + s[x & 511u];
+ x = t[i] + mars_s[x & 511u];
t[i] = x = ROL32(x, 9);
}
}
uint32 kx = *k++, ky = *k++; \
y = a + kx; \
a = ROL32(a, 13); z = a * ky; z = ROL32(z, 5); \
- x = s[y & 511u] ^ z; y = ROL32(y, z); \
+ x = mars_s[y & 511u] ^ z; y = ROL32(y, z); \
z = ROL32(z, 5); x ^= z; x = ROL32(x, z); \
} while (0)
uint32 ky = *--k, kx = *--k; \
z = a * ky; \
a = ROR32(a, 13); y = a + kx; z = ROL32(z, 5); \
- x = s[y & 511u] ^ z; y = ROL32(y, z); \
+ x = mars_s[y & 511u] ^ z; y = ROL32(y, z); \
z = ROL32(z, 5); x ^= z; x = ROL32(x, z); \
} while (0)