#include "ghash-def.h"
#include "hash.h"
#include "whirlpool.h"
-#include "whirlpool-tab.h"
#if defined(HAVE_UINT64)
# define USE64
/*----- Static variables --------------------------------------------------*/
-static const kludge64 C[10] = WHIRLPOOL_C;
+extern const kludge64 whirlpool_c[10];
#ifdef USE64
-static const kludge64 T[8][256] = WHIRLPOOL_T;
+extern const kludge64 whirlpool_t[8][256];
#else
-static const uint32 U[4][256] = WHIRLPOOL_U, V[4][256] = WHIRLPOOL_V;
+extern const uint32 whirlpool_u[4][256], whirlpool_v[4][256];
#endif
/*----- Main code ---------------------------------------------------------*/
(LO64(x) >> ((j) * 8)) : \
(HI64(x) >> ((j) * 8 - 32)))
-#define TT(v, i, j) T[j][BYTE(v[OFFSET(i, j)], j)]
+#define TT(v, i, j) whirlpool_t[j][BYTE(v[OFFSET(i, j)], j)]
#define XROW(vv, v, i) do { \
XOR64(vv[i], vv[i], TT(v, i, 1)); \
#define BYTE(x, j) U8((x) >> (((j) & 3) * 8))
-#define UUL(v, i, j) U[j & 3][BYTE(v[OFFSET(i, j)].lo, j)]
-#define VVL(v, i, j) V[j & 3][BYTE(v[OFFSET(i, j)].lo, j)]
-#define UUH(v, i, j) U[j & 3][BYTE(v[OFFSET(i, j)].hi, j)]
-#define VVH(v, i, j) V[j & 3][BYTE(v[OFFSET(i, j)].hi, j)]
+#define UUL(v, i, j) whirlpool_u[j & 3][BYTE(v[OFFSET(i, j)].lo, j)]
+#define VVL(v, i, j) whirlpool_v[j & 3][BYTE(v[OFFSET(i, j)].lo, j)]
+#define UUH(v, i, j) whirlpool_u[j & 3][BYTE(v[OFFSET(i, j)].hi, j)]
+#define VVH(v, i, j) whirlpool_v[j & 3][BYTE(v[OFFSET(i, j)].hi, j)]
#define XROW(vv, v, i) do { \
vv[i].lo ^= UUL(v, i, 1); vv[i].hi ^= VVL(v, i, 1); \
void whirlpool_compress(whirlpool_ctx *ctx, const void *sbuf)
{
kludge64 m[8], k[8], kk[8], v[8], vv[8];
- const kludge64 *c = C;
+ const kludge64 *c = whirlpool_c;
const octet *s = sbuf;
int i;