This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
use OPpAVHVSWITCH_MASK
[perl5.git] / sbox32_hash.h
CommitLineData
9d5e3f1a
YO
1#ifndef DEBUG_SBOX32_HASH
2#define DEBUG_SBOX32_HASH 0
3
4#include "zaphod32_hash.h"
5
6#if DEBUG_SBOX32_HASH == 1
7#include <stdio.h>
8#define SBOX32_WARN6(pat,v0,v1,v2,v3,v4,v5) printf(pat, v0, v1, v2, v3, v4, v5)
9#define SBOX32_WARN5(pat,v0,v1,v2,v3,v4) printf(pat, v0, v1, v2, v3, v4)
10#define SBOX32_WARN4(pat,v0,v1,v2,v3) printf(pat, v0, v1, v2, v3)
11#define SBOX32_WARN3(pat,v0,v1,v2) printf(pat, v0, v1, v2)
12#define SBOX32_WARN2(pat,v0,v1) printf(pat, v0, v1)
13#define NOTE3(pat,v0,v1,v2) printf(pat, v0, v1, v2)
14#elif DEBUG_SBOX32_HASH == 2
15#define SBOX32_WARN6(pat,v0,v1,v2,v3,v4,v5)
16#define SBOX32_WARN5(pat,v0,v1,v2,v3,v4)
17#define SBOX32_WARN4(pat,v0,v1,v2,v3)
18#define SBOX32_WARN3(pat,v0,v1,v2)
19#define SBOX32_WARN2(pat,v0,v1)
20#define NOTE3(pat,v0,v1,v2) printf(pat, v0, v1, v2)
21#else
22#define SBOX32_WARN6(pat,v0,v1,v2,v3,v4,v5)
23#define SBOX32_WARN5(pat,v0,v1,v2,v3,v4)
24#define SBOX32_WARN4(pat,v0,v1,v2,v3)
25#define SBOX32_WARN3(pat,v0,v1,v2)
26#define NOTE3(pat,v0,v1,v2)
27#define SBOX32_WARN2(pat,v0,v1)
28#endif
29
30#ifndef PERL_SEEN_HV_FUNC_H
31#if !defined(U32)
32 #include <stdint.h>
33 #define U32 uint32_t
34#endif
35
36#if !defined(U8)
37 #define U8 unsigned char
38#endif
39
40#if !defined(U16)
41 #define U16 uint16_t
42#endif
43
44#ifndef STRLEN
45#define STRLEN int
46#endif
47#endif
48
49#ifndef SBOX32_STATIC_INLINE
50#ifdef PERL_STATIC_INLINE
51#define SBOX32_STATIC_INLINE PERL_STATIC_INLINE
52#else
53#define SBOX32_STATIC_INLINE static inline
54#endif
55#endif
56
57#ifndef STMT_START
58#define STMT_START do
59#define STMT_END while(0)
60#endif
61
62#ifndef U8TO32_LE
63#define U8TO32_LE(ptr) (*((const U32 *)(ptr)))
64#endif
65#ifndef U8TO16_LE
66#define U8TO16_LE(ptr) (*((const U16 *)(ptr)))
67#endif
68
69#ifndef SBOX32_MAX_LEN
70#define SBOX32_MAX_LEN 256
71#endif
72
73#ifndef SBOX32_STATE_WORDS
74#define SBOX32_STATE_WORDS (1 + (SBOX32_MAX_LEN * 256))
75#define SBOX32_STATE_BYTES (SBOX32_STATE_WORDS * sizeof(U32))
76#define SBOX32_STATE_BITS (SBOX32_STATE_BYTES * 8)
77#endif
78
79#define SBOX32_MIX4(v0,v1,v2,v3,text) STMT_START { \
80 SBOX32_WARN5("v0=%08x v1=%08x v2=%08x v3=%08x - SBOX32_MIX4 %s\n", \
81 (unsigned int)v0, (unsigned int)v1, \
82 (unsigned int)v2, (unsigned int)v3, text); \
83 v0 = ROTL32(v0,13) - v3; \
84 v1 ^= v2; \
85 v3 = ROTL32(v3, 9) + v1; \
86 v2 ^= v0; \
87 v0 = ROTL32(v0,14) ^ v3; \
88 v1 = ROTL32(v1,25) - v2; \
89 v3 ^= v1; \
90 v2 = ROTL32(v2, 4) - v0; \
91} STMT_END
92
93#define SBOX32_MIX3(v0,v1,v2,text) STMT_START { \
94 SBOX32_WARN4("v0=%08x v1=%08x v2=%08x - SBOX32_MIX3 %s\n", \
95 (unsigned int)v0,(unsigned int)v1,(unsigned int)v2, text ); \
96 v0 = ROTL32(v0,16) - v2; \
97 v1 = ROTR32(v1,13) ^ v2; \
98 v2 = ROTL32(v2,17) + v1; \
99 v0 = ROTR32(v0, 2) + v1; \
100 v1 = ROTR32(v1,17) - v0; \
101 v2 = ROTR32(v2, 7) ^ v0; \
102} STMT_END
103
104#if SBOX32_MAX_LEN > 256
105#error "SBOX32_MAX_LEN is set too high!"
106#elif SBOX32_MAX_LEN == 256
107#define case_256_SBOX32(hash,state,key) _SBOX32_CASE(256,hash,state,key)
108#else
109#define case_256_SBOX32(hash,state,key) /**/
110#endif
111#if SBOX32_MAX_LEN >= 255
112#define case_255_SBOX32(hash,state,key) _SBOX32_CASE(255,hash,state,key)
113#else
114#define case_255_SBOX32(hash,state,key) /**/
115#endif
116#if SBOX32_MAX_LEN >= 254
117#define case_254_SBOX32(hash,state,key) _SBOX32_CASE(254,hash,state,key)
118#else
119#define case_254_SBOX32(hash,state,key) /**/
120#endif
121#if SBOX32_MAX_LEN >= 253
122#define case_253_SBOX32(hash,state,key) _SBOX32_CASE(253,hash,state,key)
123#else
124#define case_253_SBOX32(hash,state,key) /**/
125#endif
126#if SBOX32_MAX_LEN >= 252
127#define case_252_SBOX32(hash,state,key) _SBOX32_CASE(252,hash,state,key)
128#else
129#define case_252_SBOX32(hash,state,key) /**/
130#endif
131#if SBOX32_MAX_LEN >= 251
132#define case_251_SBOX32(hash,state,key) _SBOX32_CASE(251,hash,state,key)
133#else
134#define case_251_SBOX32(hash,state,key) /**/
135#endif
136#if SBOX32_MAX_LEN >= 250
137#define case_250_SBOX32(hash,state,key) _SBOX32_CASE(250,hash,state,key)
138#else
139#define case_250_SBOX32(hash,state,key) /**/
140#endif
141#if SBOX32_MAX_LEN >= 249
142#define case_249_SBOX32(hash,state,key) _SBOX32_CASE(249,hash,state,key)
143#else
144#define case_249_SBOX32(hash,state,key) /**/
145#endif
146#if SBOX32_MAX_LEN >= 248
147#define case_248_SBOX32(hash,state,key) _SBOX32_CASE(248,hash,state,key)
148#else
149#define case_248_SBOX32(hash,state,key) /**/
150#endif
151#if SBOX32_MAX_LEN >= 247
152#define case_247_SBOX32(hash,state,key) _SBOX32_CASE(247,hash,state,key)
153#else
154#define case_247_SBOX32(hash,state,key) /**/
155#endif
156#if SBOX32_MAX_LEN >= 246
157#define case_246_SBOX32(hash,state,key) _SBOX32_CASE(246,hash,state,key)
158#else
159#define case_246_SBOX32(hash,state,key) /**/
160#endif
161#if SBOX32_MAX_LEN >= 245
162#define case_245_SBOX32(hash,state,key) _SBOX32_CASE(245,hash,state,key)
163#else
164#define case_245_SBOX32(hash,state,key) /**/
165#endif
166#if SBOX32_MAX_LEN >= 244
167#define case_244_SBOX32(hash,state,key) _SBOX32_CASE(244,hash,state,key)
168#else
169#define case_244_SBOX32(hash,state,key) /**/
170#endif
171#if SBOX32_MAX_LEN >= 243
172#define case_243_SBOX32(hash,state,key) _SBOX32_CASE(243,hash,state,key)
173#else
174#define case_243_SBOX32(hash,state,key) /**/
175#endif
176#if SBOX32_MAX_LEN >= 242
177#define case_242_SBOX32(hash,state,key) _SBOX32_CASE(242,hash,state,key)
178#else
179#define case_242_SBOX32(hash,state,key) /**/
180#endif
181#if SBOX32_MAX_LEN >= 241
182#define case_241_SBOX32(hash,state,key) _SBOX32_CASE(241,hash,state,key)
183#else
184#define case_241_SBOX32(hash,state,key) /**/
185#endif
186#if SBOX32_MAX_LEN >= 240
187#define case_240_SBOX32(hash,state,key) _SBOX32_CASE(240,hash,state,key)
188#else
189#define case_240_SBOX32(hash,state,key) /**/
190#endif
191#if SBOX32_MAX_LEN >= 239
192#define case_239_SBOX32(hash,state,key) _SBOX32_CASE(239,hash,state,key)
193#else
194#define case_239_SBOX32(hash,state,key) /**/
195#endif
196#if SBOX32_MAX_LEN >= 238
197#define case_238_SBOX32(hash,state,key) _SBOX32_CASE(238,hash,state,key)
198#else
199#define case_238_SBOX32(hash,state,key) /**/
200#endif
201#if SBOX32_MAX_LEN >= 237
202#define case_237_SBOX32(hash,state,key) _SBOX32_CASE(237,hash,state,key)
203#else
204#define case_237_SBOX32(hash,state,key) /**/
205#endif
206#if SBOX32_MAX_LEN >= 236
207#define case_236_SBOX32(hash,state,key) _SBOX32_CASE(236,hash,state,key)
208#else
209#define case_236_SBOX32(hash,state,key) /**/
210#endif
211#if SBOX32_MAX_LEN >= 235
212#define case_235_SBOX32(hash,state,key) _SBOX32_CASE(235,hash,state,key)
213#else
214#define case_235_SBOX32(hash,state,key) /**/
215#endif
216#if SBOX32_MAX_LEN >= 234
217#define case_234_SBOX32(hash,state,key) _SBOX32_CASE(234,hash,state,key)
218#else
219#define case_234_SBOX32(hash,state,key) /**/
220#endif
221#if SBOX32_MAX_LEN >= 233
222#define case_233_SBOX32(hash,state,key) _SBOX32_CASE(233,hash,state,key)
223#else
224#define case_233_SBOX32(hash,state,key) /**/
225#endif
226#if SBOX32_MAX_LEN >= 232
227#define case_232_SBOX32(hash,state,key) _SBOX32_CASE(232,hash,state,key)
228#else
229#define case_232_SBOX32(hash,state,key) /**/
230#endif
231#if SBOX32_MAX_LEN >= 231
232#define case_231_SBOX32(hash,state,key) _SBOX32_CASE(231,hash,state,key)
233#else
234#define case_231_SBOX32(hash,state,key) /**/
235#endif
236#if SBOX32_MAX_LEN >= 230
237#define case_230_SBOX32(hash,state,key) _SBOX32_CASE(230,hash,state,key)
238#else
239#define case_230_SBOX32(hash,state,key) /**/
240#endif
241#if SBOX32_MAX_LEN >= 229
242#define case_229_SBOX32(hash,state,key) _SBOX32_CASE(229,hash,state,key)
243#else
244#define case_229_SBOX32(hash,state,key) /**/
245#endif
246#if SBOX32_MAX_LEN >= 228
247#define case_228_SBOX32(hash,state,key) _SBOX32_CASE(228,hash,state,key)
248#else
249#define case_228_SBOX32(hash,state,key) /**/
250#endif
251#if SBOX32_MAX_LEN >= 227
252#define case_227_SBOX32(hash,state,key) _SBOX32_CASE(227,hash,state,key)
253#else
254#define case_227_SBOX32(hash,state,key) /**/
255#endif
256#if SBOX32_MAX_LEN >= 226
257#define case_226_SBOX32(hash,state,key) _SBOX32_CASE(226,hash,state,key)
258#else
259#define case_226_SBOX32(hash,state,key) /**/
260#endif
261#if SBOX32_MAX_LEN >= 225
262#define case_225_SBOX32(hash,state,key) _SBOX32_CASE(225,hash,state,key)
263#else
264#define case_225_SBOX32(hash,state,key) /**/
265#endif
266#if SBOX32_MAX_LEN >= 224
267#define case_224_SBOX32(hash,state,key) _SBOX32_CASE(224,hash,state,key)
268#else
269#define case_224_SBOX32(hash,state,key) /**/
270#endif
271#if SBOX32_MAX_LEN >= 223
272#define case_223_SBOX32(hash,state,key) _SBOX32_CASE(223,hash,state,key)
273#else
274#define case_223_SBOX32(hash,state,key) /**/
275#endif
276#if SBOX32_MAX_LEN >= 222
277#define case_222_SBOX32(hash,state,key) _SBOX32_CASE(222,hash,state,key)
278#else
279#define case_222_SBOX32(hash,state,key) /**/
280#endif
281#if SBOX32_MAX_LEN >= 221
282#define case_221_SBOX32(hash,state,key) _SBOX32_CASE(221,hash,state,key)
283#else
284#define case_221_SBOX32(hash,state,key) /**/
285#endif
286#if SBOX32_MAX_LEN >= 220
287#define case_220_SBOX32(hash,state,key) _SBOX32_CASE(220,hash,state,key)
288#else
289#define case_220_SBOX32(hash,state,key) /**/
290#endif
291#if SBOX32_MAX_LEN >= 219
292#define case_219_SBOX32(hash,state,key) _SBOX32_CASE(219,hash,state,key)
293#else
294#define case_219_SBOX32(hash,state,key) /**/
295#endif
296#if SBOX32_MAX_LEN >= 218
297#define case_218_SBOX32(hash,state,key) _SBOX32_CASE(218,hash,state,key)
298#else
299#define case_218_SBOX32(hash,state,key) /**/
300#endif
301#if SBOX32_MAX_LEN >= 217
302#define case_217_SBOX32(hash,state,key) _SBOX32_CASE(217,hash,state,key)
303#else
304#define case_217_SBOX32(hash,state,key) /**/
305#endif
306#if SBOX32_MAX_LEN >= 216
307#define case_216_SBOX32(hash,state,key) _SBOX32_CASE(216,hash,state,key)
308#else
309#define case_216_SBOX32(hash,state,key) /**/
310#endif
311#if SBOX32_MAX_LEN >= 215
312#define case_215_SBOX32(hash,state,key) _SBOX32_CASE(215,hash,state,key)
313#else
314#define case_215_SBOX32(hash,state,key) /**/
315#endif
316#if SBOX32_MAX_LEN >= 214
317#define case_214_SBOX32(hash,state,key) _SBOX32_CASE(214,hash,state,key)
318#else
319#define case_214_SBOX32(hash,state,key) /**/
320#endif
321#if SBOX32_MAX_LEN >= 213
322#define case_213_SBOX32(hash,state,key) _SBOX32_CASE(213,hash,state,key)
323#else
324#define case_213_SBOX32(hash,state,key) /**/
325#endif
326#if SBOX32_MAX_LEN >= 212
327#define case_212_SBOX32(hash,state,key) _SBOX32_CASE(212,hash,state,key)
328#else
329#define case_212_SBOX32(hash,state,key) /**/
330#endif
331#if SBOX32_MAX_LEN >= 211
332#define case_211_SBOX32(hash,state,key) _SBOX32_CASE(211,hash,state,key)
333#else
334#define case_211_SBOX32(hash,state,key) /**/
335#endif
336#if SBOX32_MAX_LEN >= 210
337#define case_210_SBOX32(hash,state,key) _SBOX32_CASE(210,hash,state,key)
338#else
339#define case_210_SBOX32(hash,state,key) /**/
340#endif
341#if SBOX32_MAX_LEN >= 209
342#define case_209_SBOX32(hash,state,key) _SBOX32_CASE(209,hash,state,key)
343#else
344#define case_209_SBOX32(hash,state,key) /**/
345#endif
346#if SBOX32_MAX_LEN >= 208
347#define case_208_SBOX32(hash,state,key) _SBOX32_CASE(208,hash,state,key)
348#else
349#define case_208_SBOX32(hash,state,key) /**/
350#endif
351#if SBOX32_MAX_LEN >= 207
352#define case_207_SBOX32(hash,state,key) _SBOX32_CASE(207,hash,state,key)
353#else
354#define case_207_SBOX32(hash,state,key) /**/
355#endif
356#if SBOX32_MAX_LEN >= 206
357#define case_206_SBOX32(hash,state,key) _SBOX32_CASE(206,hash,state,key)
358#else
359#define case_206_SBOX32(hash,state,key) /**/
360#endif
361#if SBOX32_MAX_LEN >= 205
362#define case_205_SBOX32(hash,state,key) _SBOX32_CASE(205,hash,state,key)
363#else
364#define case_205_SBOX32(hash,state,key) /**/
365#endif
366#if SBOX32_MAX_LEN >= 204
367#define case_204_SBOX32(hash,state,key) _SBOX32_CASE(204,hash,state,key)
368#else
369#define case_204_SBOX32(hash,state,key) /**/
370#endif
371#if SBOX32_MAX_LEN >= 203
372#define case_203_SBOX32(hash,state,key) _SBOX32_CASE(203,hash,state,key)
373#else
374#define case_203_SBOX32(hash,state,key) /**/
375#endif
376#if SBOX32_MAX_LEN >= 202
377#define case_202_SBOX32(hash,state,key) _SBOX32_CASE(202,hash,state,key)
378#else
379#define case_202_SBOX32(hash,state,key) /**/
380#endif
381#if SBOX32_MAX_LEN >= 201
382#define case_201_SBOX32(hash,state,key) _SBOX32_CASE(201,hash,state,key)
383#else
384#define case_201_SBOX32(hash,state,key) /**/
385#endif
386#if SBOX32_MAX_LEN >= 200
387#define case_200_SBOX32(hash,state,key) _SBOX32_CASE(200,hash,state,key)
388#else
389#define case_200_SBOX32(hash,state,key) /**/
390#endif
391#if SBOX32_MAX_LEN >= 199
392#define case_199_SBOX32(hash,state,key) _SBOX32_CASE(199,hash,state,key)
393#else
394#define case_199_SBOX32(hash,state,key) /**/
395#endif
396#if SBOX32_MAX_LEN >= 198
397#define case_198_SBOX32(hash,state,key) _SBOX32_CASE(198,hash,state,key)
398#else
399#define case_198_SBOX32(hash,state,key) /**/
400#endif
401#if SBOX32_MAX_LEN >= 197
402#define case_197_SBOX32(hash,state,key) _SBOX32_CASE(197,hash,state,key)
403#else
404#define case_197_SBOX32(hash,state,key) /**/
405#endif
406#if SBOX32_MAX_LEN >= 196
407#define case_196_SBOX32(hash,state,key) _SBOX32_CASE(196,hash,state,key)
408#else
409#define case_196_SBOX32(hash,state,key) /**/
410#endif
411#if SBOX32_MAX_LEN >= 195
412#define case_195_SBOX32(hash,state,key) _SBOX32_CASE(195,hash,state,key)
413#else
414#define case_195_SBOX32(hash,state,key) /**/
415#endif
416#if SBOX32_MAX_LEN >= 194
417#define case_194_SBOX32(hash,state,key) _SBOX32_CASE(194,hash,state,key)
418#else
419#define case_194_SBOX32(hash,state,key) /**/
420#endif
421#if SBOX32_MAX_LEN >= 193
422#define case_193_SBOX32(hash,state,key) _SBOX32_CASE(193,hash,state,key)
423#else
424#define case_193_SBOX32(hash,state,key) /**/
425#endif
426#if SBOX32_MAX_LEN >= 192
427#define case_192_SBOX32(hash,state,key) _SBOX32_CASE(192,hash,state,key)
428#else
429#define case_192_SBOX32(hash,state,key) /**/
430#endif
431#if SBOX32_MAX_LEN >= 191
432#define case_191_SBOX32(hash,state,key) _SBOX32_CASE(191,hash,state,key)
433#else
434#define case_191_SBOX32(hash,state,key) /**/
435#endif
436#if SBOX32_MAX_LEN >= 190
437#define case_190_SBOX32(hash,state,key) _SBOX32_CASE(190,hash,state,key)
438#else
439#define case_190_SBOX32(hash,state,key) /**/
440#endif
441#if SBOX32_MAX_LEN >= 189
442#define case_189_SBOX32(hash,state,key) _SBOX32_CASE(189,hash,state,key)
443#else
444#define case_189_SBOX32(hash,state,key) /**/
445#endif
446#if SBOX32_MAX_LEN >= 188
447#define case_188_SBOX32(hash,state,key) _SBOX32_CASE(188,hash,state,key)
448#else
449#define case_188_SBOX32(hash,state,key) /**/
450#endif
451#if SBOX32_MAX_LEN >= 187
452#define case_187_SBOX32(hash,state,key) _SBOX32_CASE(187,hash,state,key)
453#else
454#define case_187_SBOX32(hash,state,key) /**/
455#endif
456#if SBOX32_MAX_LEN >= 186
457#define case_186_SBOX32(hash,state,key) _SBOX32_CASE(186,hash,state,key)
458#else
459#define case_186_SBOX32(hash,state,key) /**/
460#endif
461#if SBOX32_MAX_LEN >= 185
462#define case_185_SBOX32(hash,state,key) _SBOX32_CASE(185,hash,state,key)
463#else
464#define case_185_SBOX32(hash,state,key) /**/
465#endif
466#if SBOX32_MAX_LEN >= 184
467#define case_184_SBOX32(hash,state,key) _SBOX32_CASE(184,hash,state,key)
468#else
469#define case_184_SBOX32(hash,state,key) /**/
470#endif
471#if SBOX32_MAX_LEN >= 183
472#define case_183_SBOX32(hash,state,key) _SBOX32_CASE(183,hash,state,key)
473#else
474#define case_183_SBOX32(hash,state,key) /**/
475#endif
476#if SBOX32_MAX_LEN >= 182
477#define case_182_SBOX32(hash,state,key) _SBOX32_CASE(182,hash,state,key)
478#else
479#define case_182_SBOX32(hash,state,key) /**/
480#endif
481#if SBOX32_MAX_LEN >= 181
482#define case_181_SBOX32(hash,state,key) _SBOX32_CASE(181,hash,state,key)
483#else
484#define case_181_SBOX32(hash,state,key) /**/
485#endif
486#if SBOX32_MAX_LEN >= 180
487#define case_180_SBOX32(hash,state,key) _SBOX32_CASE(180,hash,state,key)
488#else
489#define case_180_SBOX32(hash,state,key) /**/
490#endif
491#if SBOX32_MAX_LEN >= 179
492#define case_179_SBOX32(hash,state,key) _SBOX32_CASE(179,hash,state,key)
493#else
494#define case_179_SBOX32(hash,state,key) /**/
495#endif
496#if SBOX32_MAX_LEN >= 178
497#define case_178_SBOX32(hash,state,key) _SBOX32_CASE(178,hash,state,key)
498#else
499#define case_178_SBOX32(hash,state,key) /**/
500#endif
501#if SBOX32_MAX_LEN >= 177
502#define case_177_SBOX32(hash,state,key) _SBOX32_CASE(177,hash,state,key)
503#else
504#define case_177_SBOX32(hash,state,key) /**/
505#endif
506#if SBOX32_MAX_LEN >= 176
507#define case_176_SBOX32(hash,state,key) _SBOX32_CASE(176,hash,state,key)
508#else
509#define case_176_SBOX32(hash,state,key) /**/
510#endif
511#if SBOX32_MAX_LEN >= 175
512#define case_175_SBOX32(hash,state,key) _SBOX32_CASE(175,hash,state,key)
513#else
514#define case_175_SBOX32(hash,state,key) /**/
515#endif
516#if SBOX32_MAX_LEN >= 174
517#define case_174_SBOX32(hash,state,key) _SBOX32_CASE(174,hash,state,key)
518#else
519#define case_174_SBOX32(hash,state,key) /**/
520#endif
521#if SBOX32_MAX_LEN >= 173
522#define case_173_SBOX32(hash,state,key) _SBOX32_CASE(173,hash,state,key)
523#else
524#define case_173_SBOX32(hash,state,key) /**/
525#endif
526#if SBOX32_MAX_LEN >= 172
527#define case_172_SBOX32(hash,state,key) _SBOX32_CASE(172,hash,state,key)
528#else
529#define case_172_SBOX32(hash,state,key) /**/
530#endif
531#if SBOX32_MAX_LEN >= 171
532#define case_171_SBOX32(hash,state,key) _SBOX32_CASE(171,hash,state,key)
533#else
534#define case_171_SBOX32(hash,state,key) /**/
535#endif
536#if SBOX32_MAX_LEN >= 170
537#define case_170_SBOX32(hash,state,key) _SBOX32_CASE(170,hash,state,key)
538#else
539#define case_170_SBOX32(hash,state,key) /**/
540#endif
541#if SBOX32_MAX_LEN >= 169
542#define case_169_SBOX32(hash,state,key) _SBOX32_CASE(169,hash,state,key)
543#else
544#define case_169_SBOX32(hash,state,key) /**/
545#endif
546#if SBOX32_MAX_LEN >= 168
547#define case_168_SBOX32(hash,state,key) _SBOX32_CASE(168,hash,state,key)
548#else
549#define case_168_SBOX32(hash,state,key) /**/
550#endif
551#if SBOX32_MAX_LEN >= 167
552#define case_167_SBOX32(hash,state,key) _SBOX32_CASE(167,hash,state,key)
553#else
554#define case_167_SBOX32(hash,state,key) /**/
555#endif
556#if SBOX32_MAX_LEN >= 166
557#define case_166_SBOX32(hash,state,key) _SBOX32_CASE(166,hash,state,key)
558#else
559#define case_166_SBOX32(hash,state,key) /**/
560#endif
561#if SBOX32_MAX_LEN >= 165
562#define case_165_SBOX32(hash,state,key) _SBOX32_CASE(165,hash,state,key)
563#else
564#define case_165_SBOX32(hash,state,key) /**/
565#endif
566#if SBOX32_MAX_LEN >= 164
567#define case_164_SBOX32(hash,state,key) _SBOX32_CASE(164,hash,state,key)
568#else
569#define case_164_SBOX32(hash,state,key) /**/
570#endif
571#if SBOX32_MAX_LEN >= 163
572#define case_163_SBOX32(hash,state,key) _SBOX32_CASE(163,hash,state,key)
573#else
574#define case_163_SBOX32(hash,state,key) /**/
575#endif
576#if SBOX32_MAX_LEN >= 162
577#define case_162_SBOX32(hash,state,key) _SBOX32_CASE(162,hash,state,key)
578#else
579#define case_162_SBOX32(hash,state,key) /**/
580#endif
581#if SBOX32_MAX_LEN >= 161
582#define case_161_SBOX32(hash,state,key) _SBOX32_CASE(161,hash,state,key)
583#else
584#define case_161_SBOX32(hash,state,key) /**/
585#endif
586#if SBOX32_MAX_LEN >= 160
587#define case_160_SBOX32(hash,state,key) _SBOX32_CASE(160,hash,state,key)
588#else
589#define case_160_SBOX32(hash,state,key) /**/
590#endif
591#if SBOX32_MAX_LEN >= 159
592#define case_159_SBOX32(hash,state,key) _SBOX32_CASE(159,hash,state,key)
593#else
594#define case_159_SBOX32(hash,state,key) /**/
595#endif
596#if SBOX32_MAX_LEN >= 158
597#define case_158_SBOX32(hash,state,key) _SBOX32_CASE(158,hash,state,key)
598#else
599#define case_158_SBOX32(hash,state,key) /**/
600#endif
601#if SBOX32_MAX_LEN >= 157
602#define case_157_SBOX32(hash,state,key) _SBOX32_CASE(157,hash,state,key)
603#else
604#define case_157_SBOX32(hash,state,key) /**/
605#endif
606#if SBOX32_MAX_LEN >= 156
607#define case_156_SBOX32(hash,state,key) _SBOX32_CASE(156,hash,state,key)
608#else
609#define case_156_SBOX32(hash,state,key) /**/
610#endif
611#if SBOX32_MAX_LEN >= 155
612#define case_155_SBOX32(hash,state,key) _SBOX32_CASE(155,hash,state,key)
613#else
614#define case_155_SBOX32(hash,state,key) /**/
615#endif
616#if SBOX32_MAX_LEN >= 154
617#define case_154_SBOX32(hash,state,key) _SBOX32_CASE(154,hash,state,key)
618#else
619#define case_154_SBOX32(hash,state,key) /**/
620#endif
621#if SBOX32_MAX_LEN >= 153
622#define case_153_SBOX32(hash,state,key) _SBOX32_CASE(153,hash,state,key)
623#else
624#define case_153_SBOX32(hash,state,key) /**/
625#endif
626#if SBOX32_MAX_LEN >= 152
627#define case_152_SBOX32(hash,state,key) _SBOX32_CASE(152,hash,state,key)
628#else
629#define case_152_SBOX32(hash,state,key) /**/
630#endif
631#if SBOX32_MAX_LEN >= 151
632#define case_151_SBOX32(hash,state,key) _SBOX32_CASE(151,hash,state,key)
633#else
634#define case_151_SBOX32(hash,state,key) /**/
635#endif
636#if SBOX32_MAX_LEN >= 150
637#define case_150_SBOX32(hash,state,key) _SBOX32_CASE(150,hash,state,key)
638#else
639#define case_150_SBOX32(hash,state,key) /**/
640#endif
641#if SBOX32_MAX_LEN >= 149
642#define case_149_SBOX32(hash,state,key) _SBOX32_CASE(149,hash,state,key)
643#else
644#define case_149_SBOX32(hash,state,key) /**/
645#endif
646#if SBOX32_MAX_LEN >= 148
647#define case_148_SBOX32(hash,state,key) _SBOX32_CASE(148,hash,state,key)
648#else
649#define case_148_SBOX32(hash,state,key) /**/
650#endif
651#if SBOX32_MAX_LEN >= 147
652#define case_147_SBOX32(hash,state,key) _SBOX32_CASE(147,hash,state,key)
653#else
654#define case_147_SBOX32(hash,state,key) /**/
655#endif
656#if SBOX32_MAX_LEN >= 146
657#define case_146_SBOX32(hash,state,key) _SBOX32_CASE(146,hash,state,key)
658#else
659#define case_146_SBOX32(hash,state,key) /**/
660#endif
661#if SBOX32_MAX_LEN >= 145
662#define case_145_SBOX32(hash,state,key) _SBOX32_CASE(145,hash,state,key)
663#else
664#define case_145_SBOX32(hash,state,key) /**/
665#endif
666#if SBOX32_MAX_LEN >= 144
667#define case_144_SBOX32(hash,state,key) _SBOX32_CASE(144,hash,state,key)
668#else
669#define case_144_SBOX32(hash,state,key) /**/
670#endif
671#if SBOX32_MAX_LEN >= 143
672#define case_143_SBOX32(hash,state,key) _SBOX32_CASE(143,hash,state,key)
673#else
674#define case_143_SBOX32(hash,state,key) /**/
675#endif
676#if SBOX32_MAX_LEN >= 142
677#define case_142_SBOX32(hash,state,key) _SBOX32_CASE(142,hash,state,key)
678#else
679#define case_142_SBOX32(hash,state,key) /**/
680#endif
681#if SBOX32_MAX_LEN >= 141
682#define case_141_SBOX32(hash,state,key) _SBOX32_CASE(141,hash,state,key)
683#else
684#define case_141_SBOX32(hash,state,key) /**/
685#endif
686#if SBOX32_MAX_LEN >= 140
687#define case_140_SBOX32(hash,state,key) _SBOX32_CASE(140,hash,state,key)
688#else
689#define case_140_SBOX32(hash,state,key) /**/
690#endif
691#if SBOX32_MAX_LEN >= 139
692#define case_139_SBOX32(hash,state,key) _SBOX32_CASE(139,hash,state,key)
693#else
694#define case_139_SBOX32(hash,state,key) /**/
695#endif
696#if SBOX32_MAX_LEN >= 138
697#define case_138_SBOX32(hash,state,key) _SBOX32_CASE(138,hash,state,key)
698#else
699#define case_138_SBOX32(hash,state,key) /**/
700#endif
701#if SBOX32_MAX_LEN >= 137
702#define case_137_SBOX32(hash,state,key) _SBOX32_CASE(137,hash,state,key)
703#else
704#define case_137_SBOX32(hash,state,key) /**/
705#endif
706#if SBOX32_MAX_LEN >= 136
707#define case_136_SBOX32(hash,state,key) _SBOX32_CASE(136,hash,state,key)
708#else
709#define case_136_SBOX32(hash,state,key) /**/
710#endif
711#if SBOX32_MAX_LEN >= 135
712#define case_135_SBOX32(hash,state,key) _SBOX32_CASE(135,hash,state,key)
713#else
714#define case_135_SBOX32(hash,state,key) /**/
715#endif
716#if SBOX32_MAX_LEN >= 134
717#define case_134_SBOX32(hash,state,key) _SBOX32_CASE(134,hash,state,key)
718#else
719#define case_134_SBOX32(hash,state,key) /**/
720#endif
721#if SBOX32_MAX_LEN >= 133
722#define case_133_SBOX32(hash,state,key) _SBOX32_CASE(133,hash,state,key)
723#else
724#define case_133_SBOX32(hash,state,key) /**/
725#endif
726#if SBOX32_MAX_LEN >= 132
727#define case_132_SBOX32(hash,state,key) _SBOX32_CASE(132,hash,state,key)
728#else
729#define case_132_SBOX32(hash,state,key) /**/
730#endif
731#if SBOX32_MAX_LEN >= 131
732#define case_131_SBOX32(hash,state,key) _SBOX32_CASE(131,hash,state,key)
733#else
734#define case_131_SBOX32(hash,state,key) /**/
735#endif
736#if SBOX32_MAX_LEN >= 130
737#define case_130_SBOX32(hash,state,key) _SBOX32_CASE(130,hash,state,key)
738#else
739#define case_130_SBOX32(hash,state,key) /**/
740#endif
741#if SBOX32_MAX_LEN >= 129
742#define case_129_SBOX32(hash,state,key) _SBOX32_CASE(129,hash,state,key)
743#else
744#define case_129_SBOX32(hash,state,key) /**/
745#endif
746#if SBOX32_MAX_LEN >= 128
747#define case_128_SBOX32(hash,state,key) _SBOX32_CASE(128,hash,state,key)
748#else
749#define case_128_SBOX32(hash,state,key) /**/
750#endif
751#if SBOX32_MAX_LEN >= 127
752#define case_127_SBOX32(hash,state,key) _SBOX32_CASE(127,hash,state,key)
753#else
754#define case_127_SBOX32(hash,state,key) /**/
755#endif
756#if SBOX32_MAX_LEN >= 126
757#define case_126_SBOX32(hash,state,key) _SBOX32_CASE(126,hash,state,key)
758#else
759#define case_126_SBOX32(hash,state,key) /**/
760#endif
761#if SBOX32_MAX_LEN >= 125
762#define case_125_SBOX32(hash,state,key) _SBOX32_CASE(125,hash,state,key)
763#else
764#define case_125_SBOX32(hash,state,key) /**/
765#endif
766#if SBOX32_MAX_LEN >= 124
767#define case_124_SBOX32(hash,state,key) _SBOX32_CASE(124,hash,state,key)
768#else
769#define case_124_SBOX32(hash,state,key) /**/
770#endif
771#if SBOX32_MAX_LEN >= 123
772#define case_123_SBOX32(hash,state,key) _SBOX32_CASE(123,hash,state,key)
773#else
774#define case_123_SBOX32(hash,state,key) /**/
775#endif
776#if SBOX32_MAX_LEN >= 122
777#define case_122_SBOX32(hash,state,key) _SBOX32_CASE(122,hash,state,key)
778#else
779#define case_122_SBOX32(hash,state,key) /**/
780#endif
781#if SBOX32_MAX_LEN >= 121
782#define case_121_SBOX32(hash,state,key) _SBOX32_CASE(121,hash,state,key)
783#else
784#define case_121_SBOX32(hash,state,key) /**/
785#endif
786#if SBOX32_MAX_LEN >= 120
787#define case_120_SBOX32(hash,state,key) _SBOX32_CASE(120,hash,state,key)
788#else
789#define case_120_SBOX32(hash,state,key) /**/
790#endif
791#if SBOX32_MAX_LEN >= 119
792#define case_119_SBOX32(hash,state,key) _SBOX32_CASE(119,hash,state,key)
793#else
794#define case_119_SBOX32(hash,state,key) /**/
795#endif
796#if SBOX32_MAX_LEN >= 118
797#define case_118_SBOX32(hash,state,key) _SBOX32_CASE(118,hash,state,key)
798#else
799#define case_118_SBOX32(hash,state,key) /**/
800#endif
801#if SBOX32_MAX_LEN >= 117
802#define case_117_SBOX32(hash,state,key) _SBOX32_CASE(117,hash,state,key)
803#else
804#define case_117_SBOX32(hash,state,key) /**/
805#endif
806#if SBOX32_MAX_LEN >= 116
807#define case_116_SBOX32(hash,state,key) _SBOX32_CASE(116,hash,state,key)
808#else
809#define case_116_SBOX32(hash,state,key) /**/
810#endif
811#if SBOX32_MAX_LEN >= 115
812#define case_115_SBOX32(hash,state,key) _SBOX32_CASE(115,hash,state,key)
813#else
814#define case_115_SBOX32(hash,state,key) /**/
815#endif
816#if SBOX32_MAX_LEN >= 114
817#define case_114_SBOX32(hash,state,key) _SBOX32_CASE(114,hash,state,key)
818#else
819#define case_114_SBOX32(hash,state,key) /**/
820#endif
821#if SBOX32_MAX_LEN >= 113
822#define case_113_SBOX32(hash,state,key) _SBOX32_CASE(113,hash,state,key)
823#else
824#define case_113_SBOX32(hash,state,key) /**/
825#endif
826#if SBOX32_MAX_LEN >= 112
827#define case_112_SBOX32(hash,state,key) _SBOX32_CASE(112,hash,state,key)
828#else
829#define case_112_SBOX32(hash,state,key) /**/
830#endif
831#if SBOX32_MAX_LEN >= 111
832#define case_111_SBOX32(hash,state,key) _SBOX32_CASE(111,hash,state,key)
833#else
834#define case_111_SBOX32(hash,state,key) /**/
835#endif
836#if SBOX32_MAX_LEN >= 110
837#define case_110_SBOX32(hash,state,key) _SBOX32_CASE(110,hash,state,key)
838#else
839#define case_110_SBOX32(hash,state,key) /**/
840#endif
841#if SBOX32_MAX_LEN >= 109
842#define case_109_SBOX32(hash,state,key) _SBOX32_CASE(109,hash,state,key)
843#else
844#define case_109_SBOX32(hash,state,key) /**/
845#endif
846#if SBOX32_MAX_LEN >= 108
847#define case_108_SBOX32(hash,state,key) _SBOX32_CASE(108,hash,state,key)
848#else
849#define case_108_SBOX32(hash,state,key) /**/
850#endif
851#if SBOX32_MAX_LEN >= 107
852#define case_107_SBOX32(hash,state,key) _SBOX32_CASE(107,hash,state,key)
853#else
854#define case_107_SBOX32(hash,state,key) /**/
855#endif
856#if SBOX32_MAX_LEN >= 106
857#define case_106_SBOX32(hash,state,key) _SBOX32_CASE(106,hash,state,key)
858#else
859#define case_106_SBOX32(hash,state,key) /**/
860#endif
861#if SBOX32_MAX_LEN >= 105
862#define case_105_SBOX32(hash,state,key) _SBOX32_CASE(105,hash,state,key)
863#else
864#define case_105_SBOX32(hash,state,key) /**/
865#endif
866#if SBOX32_MAX_LEN >= 104
867#define case_104_SBOX32(hash,state,key) _SBOX32_CASE(104,hash,state,key)
868#else
869#define case_104_SBOX32(hash,state,key) /**/
870#endif
871#if SBOX32_MAX_LEN >= 103
872#define case_103_SBOX32(hash,state,key) _SBOX32_CASE(103,hash,state,key)
873#else
874#define case_103_SBOX32(hash,state,key) /**/
875#endif
876#if SBOX32_MAX_LEN >= 102
877#define case_102_SBOX32(hash,state,key) _SBOX32_CASE(102,hash,state,key)
878#else
879#define case_102_SBOX32(hash,state,key) /**/
880#endif
881#if SBOX32_MAX_LEN >= 101
882#define case_101_SBOX32(hash,state,key) _SBOX32_CASE(101,hash,state,key)
883#else
884#define case_101_SBOX32(hash,state,key) /**/
885#endif
886#if SBOX32_MAX_LEN >= 100
887#define case_100_SBOX32(hash,state,key) _SBOX32_CASE(100,hash,state,key)
888#else
889#define case_100_SBOX32(hash,state,key) /**/
890#endif
891#if SBOX32_MAX_LEN >= 99
892#define case_99_SBOX32(hash,state,key) _SBOX32_CASE(99,hash,state,key)
893#else
894#define case_99_SBOX32(hash,state,key) /**/
895#endif
896#if SBOX32_MAX_LEN >= 98
897#define case_98_SBOX32(hash,state,key) _SBOX32_CASE(98,hash,state,key)
898#else
899#define case_98_SBOX32(hash,state,key) /**/
900#endif
901#if SBOX32_MAX_LEN >= 97
902#define case_97_SBOX32(hash,state,key) _SBOX32_CASE(97,hash,state,key)
903#else
904#define case_97_SBOX32(hash,state,key) /**/
905#endif
906#if SBOX32_MAX_LEN >= 96
907#define case_96_SBOX32(hash,state,key) _SBOX32_CASE(96,hash,state,key)
908#else
909#define case_96_SBOX32(hash,state,key) /**/
910#endif
911#if SBOX32_MAX_LEN >= 95
912#define case_95_SBOX32(hash,state,key) _SBOX32_CASE(95,hash,state,key)
913#else
914#define case_95_SBOX32(hash,state,key) /**/
915#endif
916#if SBOX32_MAX_LEN >= 94
917#define case_94_SBOX32(hash,state,key) _SBOX32_CASE(94,hash,state,key)
918#else
919#define case_94_SBOX32(hash,state,key) /**/
920#endif
921#if SBOX32_MAX_LEN >= 93
922#define case_93_SBOX32(hash,state,key) _SBOX32_CASE(93,hash,state,key)
923#else
924#define case_93_SBOX32(hash,state,key) /**/
925#endif
926#if SBOX32_MAX_LEN >= 92
927#define case_92_SBOX32(hash,state,key) _SBOX32_CASE(92,hash,state,key)
928#else
929#define case_92_SBOX32(hash,state,key) /**/
930#endif
931#if SBOX32_MAX_LEN >= 91
932#define case_91_SBOX32(hash,state,key) _SBOX32_CASE(91,hash,state,key)
933#else
934#define case_91_SBOX32(hash,state,key) /**/
935#endif
936#if SBOX32_MAX_LEN >= 90
937#define case_90_SBOX32(hash,state,key) _SBOX32_CASE(90,hash,state,key)
938#else
939#define case_90_SBOX32(hash,state,key) /**/
940#endif
941#if SBOX32_MAX_LEN >= 89
942#define case_89_SBOX32(hash,state,key) _SBOX32_CASE(89,hash,state,key)
943#else
944#define case_89_SBOX32(hash,state,key) /**/
945#endif
946#if SBOX32_MAX_LEN >= 88
947#define case_88_SBOX32(hash,state,key) _SBOX32_CASE(88,hash,state,key)
948#else
949#define case_88_SBOX32(hash,state,key) /**/
950#endif
951#if SBOX32_MAX_LEN >= 87
952#define case_87_SBOX32(hash,state,key) _SBOX32_CASE(87,hash,state,key)
953#else
954#define case_87_SBOX32(hash,state,key) /**/
955#endif
956#if SBOX32_MAX_LEN >= 86
957#define case_86_SBOX32(hash,state,key) _SBOX32_CASE(86,hash,state,key)
958#else
959#define case_86_SBOX32(hash,state,key) /**/
960#endif
961#if SBOX32_MAX_LEN >= 85
962#define case_85_SBOX32(hash,state,key) _SBOX32_CASE(85,hash,state,key)
963#else
964#define case_85_SBOX32(hash,state,key) /**/
965#endif
966#if SBOX32_MAX_LEN >= 84
967#define case_84_SBOX32(hash,state,key) _SBOX32_CASE(84,hash,state,key)
968#else
969#define case_84_SBOX32(hash,state,key) /**/
970#endif
971#if SBOX32_MAX_LEN >= 83
972#define case_83_SBOX32(hash,state,key) _SBOX32_CASE(83,hash,state,key)
973#else
974#define case_83_SBOX32(hash,state,key) /**/
975#endif
976#if SBOX32_MAX_LEN >= 82
977#define case_82_SBOX32(hash,state,key) _SBOX32_CASE(82,hash,state,key)
978#else
979#define case_82_SBOX32(hash,state,key) /**/
980#endif
981#if SBOX32_MAX_LEN >= 81
982#define case_81_SBOX32(hash,state,key) _SBOX32_CASE(81,hash,state,key)
983#else
984#define case_81_SBOX32(hash,state,key) /**/
985#endif
986#if SBOX32_MAX_LEN >= 80
987#define case_80_SBOX32(hash,state,key) _SBOX32_CASE(80,hash,state,key)
988#else
989#define case_80_SBOX32(hash,state,key) /**/
990#endif
991#if SBOX32_MAX_LEN >= 79
992#define case_79_SBOX32(hash,state,key) _SBOX32_CASE(79,hash,state,key)
993#else
994#define case_79_SBOX32(hash,state,key) /**/
995#endif
996#if SBOX32_MAX_LEN >= 78
997#define case_78_SBOX32(hash,state,key) _SBOX32_CASE(78,hash,state,key)
998#else
999#define case_78_SBOX32(hash,state,key) /**/
1000#endif
1001#if SBOX32_MAX_LEN >= 77
1002#define case_77_SBOX32(hash,state,key) _SBOX32_CASE(77,hash,state,key)
1003#else
1004#define case_77_SBOX32(hash,state,key) /**/
1005#endif
1006#if SBOX32_MAX_LEN >= 76
1007#define case_76_SBOX32(hash,state,key) _SBOX32_CASE(76,hash,state,key)
1008#else
1009#define case_76_SBOX32(hash,state,key) /**/
1010#endif
1011#if SBOX32_MAX_LEN >= 75
1012#define case_75_SBOX32(hash,state,key) _SBOX32_CASE(75,hash,state,key)
1013#else
1014#define case_75_SBOX32(hash,state,key) /**/
1015#endif
1016#if SBOX32_MAX_LEN >= 74
1017#define case_74_SBOX32(hash,state,key) _SBOX32_CASE(74,hash,state,key)
1018#else
1019#define case_74_SBOX32(hash,state,key) /**/
1020#endif
1021#if SBOX32_MAX_LEN >= 73
1022#define case_73_SBOX32(hash,state,key) _SBOX32_CASE(73,hash,state,key)
1023#else
1024#define case_73_SBOX32(hash,state,key) /**/
1025#endif
1026#if SBOX32_MAX_LEN >= 72
1027#define case_72_SBOX32(hash,state,key) _SBOX32_CASE(72,hash,state,key)
1028#else
1029#define case_72_SBOX32(hash,state,key) /**/
1030#endif
1031#if SBOX32_MAX_LEN >= 71
1032#define case_71_SBOX32(hash,state,key) _SBOX32_CASE(71,hash,state,key)
1033#else
1034#define case_71_SBOX32(hash,state,key) /**/
1035#endif
1036#if SBOX32_MAX_LEN >= 70
1037#define case_70_SBOX32(hash,state,key) _SBOX32_CASE(70,hash,state,key)
1038#else
1039#define case_70_SBOX32(hash,state,key) /**/
1040#endif
1041#if SBOX32_MAX_LEN >= 69
1042#define case_69_SBOX32(hash,state,key) _SBOX32_CASE(69,hash,state,key)
1043#else
1044#define case_69_SBOX32(hash,state,key) /**/
1045#endif
1046#if SBOX32_MAX_LEN >= 68
1047#define case_68_SBOX32(hash,state,key) _SBOX32_CASE(68,hash,state,key)
1048#else
1049#define case_68_SBOX32(hash,state,key) /**/
1050#endif
1051#if SBOX32_MAX_LEN >= 67
1052#define case_67_SBOX32(hash,state,key) _SBOX32_CASE(67,hash,state,key)
1053#else
1054#define case_67_SBOX32(hash,state,key) /**/
1055#endif
1056#if SBOX32_MAX_LEN >= 66
1057#define case_66_SBOX32(hash,state,key) _SBOX32_CASE(66,hash,state,key)
1058#else
1059#define case_66_SBOX32(hash,state,key) /**/
1060#endif
1061#if SBOX32_MAX_LEN >= 65
1062#define case_65_SBOX32(hash,state,key) _SBOX32_CASE(65,hash,state,key)
1063#else
1064#define case_65_SBOX32(hash,state,key) /**/
1065#endif
1066#if SBOX32_MAX_LEN >= 64
1067#define case_64_SBOX32(hash,state,key) _SBOX32_CASE(64,hash,state,key)
1068#else
1069#define case_64_SBOX32(hash,state,key) /**/
1070#endif
1071#if SBOX32_MAX_LEN >= 63
1072#define case_63_SBOX32(hash,state,key) _SBOX32_CASE(63,hash,state,key)
1073#else
1074#define case_63_SBOX32(hash,state,key) /**/
1075#endif
1076#if SBOX32_MAX_LEN >= 62
1077#define case_62_SBOX32(hash,state,key) _SBOX32_CASE(62,hash,state,key)
1078#else
1079#define case_62_SBOX32(hash,state,key) /**/
1080#endif
1081#if SBOX32_MAX_LEN >= 61
1082#define case_61_SBOX32(hash,state,key) _SBOX32_CASE(61,hash,state,key)
1083#else
1084#define case_61_SBOX32(hash,state,key) /**/
1085#endif
1086#if SBOX32_MAX_LEN >= 60
1087#define case_60_SBOX32(hash,state,key) _SBOX32_CASE(60,hash,state,key)
1088#else
1089#define case_60_SBOX32(hash,state,key) /**/
1090#endif
1091#if SBOX32_MAX_LEN >= 59
1092#define case_59_SBOX32(hash,state,key) _SBOX32_CASE(59,hash,state,key)
1093#else
1094#define case_59_SBOX32(hash,state,key) /**/
1095#endif
1096#if SBOX32_MAX_LEN >= 58
1097#define case_58_SBOX32(hash,state,key) _SBOX32_CASE(58,hash,state,key)
1098#else
1099#define case_58_SBOX32(hash,state,key) /**/
1100#endif
1101#if SBOX32_MAX_LEN >= 57
1102#define case_57_SBOX32(hash,state,key) _SBOX32_CASE(57,hash,state,key)
1103#else
1104#define case_57_SBOX32(hash,state,key) /**/
1105#endif
1106#if SBOX32_MAX_LEN >= 56
1107#define case_56_SBOX32(hash,state,key) _SBOX32_CASE(56,hash,state,key)
1108#else
1109#define case_56_SBOX32(hash,state,key) /**/
1110#endif
1111#if SBOX32_MAX_LEN >= 55
1112#define case_55_SBOX32(hash,state,key) _SBOX32_CASE(55,hash,state,key)
1113#else
1114#define case_55_SBOX32(hash,state,key) /**/
1115#endif
1116#if SBOX32_MAX_LEN >= 54
1117#define case_54_SBOX32(hash,state,key) _SBOX32_CASE(54,hash,state,key)
1118#else
1119#define case_54_SBOX32(hash,state,key) /**/
1120#endif
1121#if SBOX32_MAX_LEN >= 53
1122#define case_53_SBOX32(hash,state,key) _SBOX32_CASE(53,hash,state,key)
1123#else
1124#define case_53_SBOX32(hash,state,key) /**/
1125#endif
1126#if SBOX32_MAX_LEN >= 52
1127#define case_52_SBOX32(hash,state,key) _SBOX32_CASE(52,hash,state,key)
1128#else
1129#define case_52_SBOX32(hash,state,key) /**/
1130#endif
1131#if SBOX32_MAX_LEN >= 51
1132#define case_51_SBOX32(hash,state,key) _SBOX32_CASE(51,hash,state,key)
1133#else
1134#define case_51_SBOX32(hash,state,key) /**/
1135#endif
1136#if SBOX32_MAX_LEN >= 50
1137#define case_50_SBOX32(hash,state,key) _SBOX32_CASE(50,hash,state,key)
1138#else
1139#define case_50_SBOX32(hash,state,key) /**/
1140#endif
1141#if SBOX32_MAX_LEN >= 49
1142#define case_49_SBOX32(hash,state,key) _SBOX32_CASE(49,hash,state,key)
1143#else
1144#define case_49_SBOX32(hash,state,key) /**/
1145#endif
1146#if SBOX32_MAX_LEN >= 48
1147#define case_48_SBOX32(hash,state,key) _SBOX32_CASE(48,hash,state,key)
1148#else
1149#define case_48_SBOX32(hash,state,key) /**/
1150#endif
1151#if SBOX32_MAX_LEN >= 47
1152#define case_47_SBOX32(hash,state,key) _SBOX32_CASE(47,hash,state,key)
1153#else
1154#define case_47_SBOX32(hash,state,key) /**/
1155#endif
1156#if SBOX32_MAX_LEN >= 46
1157#define case_46_SBOX32(hash,state,key) _SBOX32_CASE(46,hash,state,key)
1158#else
1159#define case_46_SBOX32(hash,state,key) /**/
1160#endif
1161#if SBOX32_MAX_LEN >= 45
1162#define case_45_SBOX32(hash,state,key) _SBOX32_CASE(45,hash,state,key)
1163#else
1164#define case_45_SBOX32(hash,state,key) /**/
1165#endif
1166#if SBOX32_MAX_LEN >= 44
1167#define case_44_SBOX32(hash,state,key) _SBOX32_CASE(44,hash,state,key)
1168#else
1169#define case_44_SBOX32(hash,state,key) /**/
1170#endif
1171#if SBOX32_MAX_LEN >= 43
1172#define case_43_SBOX32(hash,state,key) _SBOX32_CASE(43,hash,state,key)
1173#else
1174#define case_43_SBOX32(hash,state,key) /**/
1175#endif
1176#if SBOX32_MAX_LEN >= 42
1177#define case_42_SBOX32(hash,state,key) _SBOX32_CASE(42,hash,state,key)
1178#else
1179#define case_42_SBOX32(hash,state,key) /**/
1180#endif
1181#if SBOX32_MAX_LEN >= 41
1182#define case_41_SBOX32(hash,state,key) _SBOX32_CASE(41,hash,state,key)
1183#else
1184#define case_41_SBOX32(hash,state,key) /**/
1185#endif
1186#if SBOX32_MAX_LEN >= 40
1187#define case_40_SBOX32(hash,state,key) _SBOX32_CASE(40,hash,state,key)
1188#else
1189#define case_40_SBOX32(hash,state,key) /**/
1190#endif
1191#if SBOX32_MAX_LEN >= 39
1192#define case_39_SBOX32(hash,state,key) _SBOX32_CASE(39,hash,state,key)
1193#else
1194#define case_39_SBOX32(hash,state,key) /**/
1195#endif
1196#if SBOX32_MAX_LEN >= 38
1197#define case_38_SBOX32(hash,state,key) _SBOX32_CASE(38,hash,state,key)
1198#else
1199#define case_38_SBOX32(hash,state,key) /**/
1200#endif
1201#if SBOX32_MAX_LEN >= 37
1202#define case_37_SBOX32(hash,state,key) _SBOX32_CASE(37,hash,state,key)
1203#else
1204#define case_37_SBOX32(hash,state,key) /**/
1205#endif
1206#if SBOX32_MAX_LEN >= 36
1207#define case_36_SBOX32(hash,state,key) _SBOX32_CASE(36,hash,state,key)
1208#else
1209#define case_36_SBOX32(hash,state,key) /**/
1210#endif
1211#if SBOX32_MAX_LEN >= 35
1212#define case_35_SBOX32(hash,state,key) _SBOX32_CASE(35,hash,state,key)
1213#else
1214#define case_35_SBOX32(hash,state,key) /**/
1215#endif
1216#if SBOX32_MAX_LEN >= 34
1217#define case_34_SBOX32(hash,state,key) _SBOX32_CASE(34,hash,state,key)
1218#else
1219#define case_34_SBOX32(hash,state,key) /**/
1220#endif
1221#if SBOX32_MAX_LEN >= 33
1222#define case_33_SBOX32(hash,state,key) _SBOX32_CASE(33,hash,state,key)
1223#else
1224#define case_33_SBOX32(hash,state,key) /**/
1225#endif
1226#if SBOX32_MAX_LEN >= 32
1227#define case_32_SBOX32(hash,state,key) _SBOX32_CASE(32,hash,state,key)
1228#else
1229#define case_32_SBOX32(hash,state,key) /**/
1230#endif
1231#if SBOX32_MAX_LEN >= 31
1232#define case_31_SBOX32(hash,state,key) _SBOX32_CASE(31,hash,state,key)
1233#else
1234#define case_31_SBOX32(hash,state,key) /**/
1235#endif
1236#if SBOX32_MAX_LEN >= 30
1237#define case_30_SBOX32(hash,state,key) _SBOX32_CASE(30,hash,state,key)
1238#else
1239#define case_30_SBOX32(hash,state,key) /**/
1240#endif
1241#if SBOX32_MAX_LEN >= 29
1242#define case_29_SBOX32(hash,state,key) _SBOX32_CASE(29,hash,state,key)
1243#else
1244#define case_29_SBOX32(hash,state,key) /**/
1245#endif
1246#if SBOX32_MAX_LEN >= 28
1247#define case_28_SBOX32(hash,state,key) _SBOX32_CASE(28,hash,state,key)
1248#else
1249#define case_28_SBOX32(hash,state,key) /**/
1250#endif
1251#if SBOX32_MAX_LEN >= 27
1252#define case_27_SBOX32(hash,state,key) _SBOX32_CASE(27,hash,state,key)
1253#else
1254#define case_27_SBOX32(hash,state,key) /**/
1255#endif
1256#if SBOX32_MAX_LEN >= 26
1257#define case_26_SBOX32(hash,state,key) _SBOX32_CASE(26,hash,state,key)
1258#else
1259#define case_26_SBOX32(hash,state,key) /**/
1260#endif
1261#if SBOX32_MAX_LEN >= 25
1262#define case_25_SBOX32(hash,state,key) _SBOX32_CASE(25,hash,state,key)
1263#else
1264#define case_25_SBOX32(hash,state,key) /**/
1265#endif
1266#if SBOX32_MAX_LEN >= 24
1267#define case_24_SBOX32(hash,state,key) _SBOX32_CASE(24,hash,state,key)
1268#else
1269#define case_24_SBOX32(hash,state,key) /**/
1270#endif
1271#if SBOX32_MAX_LEN >= 23
1272#define case_23_SBOX32(hash,state,key) _SBOX32_CASE(23,hash,state,key)
1273#else
1274#define case_23_SBOX32(hash,state,key) /**/
1275#endif
1276#if SBOX32_MAX_LEN >= 22
1277#define case_22_SBOX32(hash,state,key) _SBOX32_CASE(22,hash,state,key)
1278#else
1279#define case_22_SBOX32(hash,state,key) /**/
1280#endif
1281#if SBOX32_MAX_LEN >= 21
1282#define case_21_SBOX32(hash,state,key) _SBOX32_CASE(21,hash,state,key)
1283#else
1284#define case_21_SBOX32(hash,state,key) /**/
1285#endif
1286#if SBOX32_MAX_LEN >= 20
1287#define case_20_SBOX32(hash,state,key) _SBOX32_CASE(20,hash,state,key)
1288#else
1289#define case_20_SBOX32(hash,state,key) /**/
1290#endif
1291#if SBOX32_MAX_LEN >= 19
1292#define case_19_SBOX32(hash,state,key) _SBOX32_CASE(19,hash,state,key)
1293#else
1294#define case_19_SBOX32(hash,state,key) /**/
1295#endif
1296#if SBOX32_MAX_LEN >= 18
1297#define case_18_SBOX32(hash,state,key) _SBOX32_CASE(18,hash,state,key)
1298#else
1299#define case_18_SBOX32(hash,state,key) /**/
1300#endif
1301#if SBOX32_MAX_LEN >= 17
1302#define case_17_SBOX32(hash,state,key) _SBOX32_CASE(17,hash,state,key)
1303#else
1304#define case_17_SBOX32(hash,state,key) /**/
1305#endif
1306#if SBOX32_MAX_LEN >= 16
1307#define case_16_SBOX32(hash,state,key) _SBOX32_CASE(16,hash,state,key)
1308#else
1309#define case_16_SBOX32(hash,state,key) /**/
1310#endif
1311#if SBOX32_MAX_LEN >= 15
1312#define case_15_SBOX32(hash,state,key) _SBOX32_CASE(15,hash,state,key)
1313#else
1314#define case_15_SBOX32(hash,state,key) /**/
1315#endif
1316#if SBOX32_MAX_LEN >= 14
1317#define case_14_SBOX32(hash,state,key) _SBOX32_CASE(14,hash,state,key)
1318#else
1319#define case_14_SBOX32(hash,state,key) /**/
1320#endif
1321#if SBOX32_MAX_LEN >= 13
1322#define case_13_SBOX32(hash,state,key) _SBOX32_CASE(13,hash,state,key)
1323#else
1324#define case_13_SBOX32(hash,state,key) /**/
1325#endif
1326#if SBOX32_MAX_LEN >= 12
1327#define case_12_SBOX32(hash,state,key) _SBOX32_CASE(12,hash,state,key)
1328#else
1329#define case_12_SBOX32(hash,state,key) /**/
1330#endif
1331#if SBOX32_MAX_LEN >= 11
1332#define case_11_SBOX32(hash,state,key) _SBOX32_CASE(11,hash,state,key)
1333#else
1334#define case_11_SBOX32(hash,state,key) /**/
1335#endif
1336#if SBOX32_MAX_LEN >= 10
1337#define case_10_SBOX32(hash,state,key) _SBOX32_CASE(10,hash,state,key)
1338#else
1339#define case_10_SBOX32(hash,state,key) /**/
1340#endif
1341#if SBOX32_MAX_LEN >= 9
1342#define case_9_SBOX32(hash,state,key) _SBOX32_CASE(9,hash,state,key)
1343#else
1344#define case_9_SBOX32(hash,state,key) /**/
1345#endif
1346#if SBOX32_MAX_LEN >= 8
1347#define case_8_SBOX32(hash,state,key) _SBOX32_CASE(8,hash,state,key)
1348#else
1349#define case_8_SBOX32(hash,state,key) /**/
1350#endif
1351#if SBOX32_MAX_LEN >= 7
1352#define case_7_SBOX32(hash,state,key) _SBOX32_CASE(7,hash,state,key)
1353#else
1354#define case_7_SBOX32(hash,state,key) /**/
1355#endif
1356#if SBOX32_MAX_LEN >= 6
1357#define case_6_SBOX32(hash,state,key) _SBOX32_CASE(6,hash,state,key)
1358#else
1359#define case_6_SBOX32(hash,state,key) /**/
1360#endif
1361#if SBOX32_MAX_LEN >= 5
1362#define case_5_SBOX32(hash,state,key) _SBOX32_CASE(5,hash,state,key)
1363#else
1364#define case_5_SBOX32(hash,state,key) /**/
1365#endif
1366#if SBOX32_MAX_LEN >= 4
1367#define case_4_SBOX32(hash,state,key) _SBOX32_CASE(4,hash,state,key)
1368#else
1369#define case_4_SBOX32(hash,state,key) /**/
1370#endif
1371#if SBOX32_MAX_LEN >= 3
1372#define case_3_SBOX32(hash,state,key) _SBOX32_CASE(3,hash,state,key)
1373#else
1374#define case_3_SBOX32(hash,state,key) /**/
1375#endif
1376#if SBOX32_MAX_LEN >= 2
1377#define case_2_SBOX32(hash,state,key) _SBOX32_CASE(2,hash,state,key)
1378#else
1379#define case_2_SBOX32(hash,state,key) /**/
1380#endif
1381#if SBOX32_MAX_LEN >= 1
1382#define case_1_SBOX32(hash,state,key) _SBOX32_CASE(1,hash,state,key)
1383#else
1384#define case_1_SBOX32(hash,state,key) /**/
1385#endif
1386
1387#define XORSHIFT96_set(r,x,y,z,t) STMT_START { \
1388 t = (x ^ ( x << 10 ) ); \
1389 x = y; y = z; \
1390 r = z = (z ^ ( z >> 26 ) ) ^ ( t ^ ( t >> 5 ) ); \
1391} STMT_END
1392
1393#define XORSHIFT128_set(r,x,y,z,w,t) STMT_START { \
1394 t = ( x ^ ( x << 5 ) ); \
1395 x = y; y = z; z = w; \
1396 r = w = ( w ^ ( w >> 29 ) ) ^ ( t ^ ( t >> 12 ) ); \
1397} STMT_END
1398
1399#define SBOX32_SCRAMBLE32(v,prime) STMT_START { \
1400 v ^= (v>>9); \
1401 v ^= (v<<21); \
1402 v ^= (v>>16); \
1403 v *= prime; \
1404 v ^= (v>>17); \
1405 v ^= (v<<15); \
1406 v ^= (v>>23); \
1407} STMT_END
1408
1409#ifndef SBOX32_CHURN_ROUNDS
1410#define SBOX32_CHURN_ROUNDS 5
1411#endif
1412#ifndef SBOX32_SKIP_MASK
1413#define SBOX32_SKIP_MASK 0x3
1414#endif
1415
1416#define _SBOX32_CASE(len,hash,state,key) \
1417 case len: hash ^= state[ 1 + ( 256 * ( len - 1 ) ) + key[ len - 1 ] ];
1418
1419
1420SBOX32_STATIC_INLINE void sbox32_seed_state96 (
1421 const U8 *seed_ch,
1422 U8 *state_ch
1423) {
1424 U32 *seed= (U32 *)seed_ch;
1425 U32 *state= (U32 *)state_ch;
1426 U32 *state_cursor = state + 1;
1427 U32 *sbox32_end = state + 1 + (256 * SBOX32_MAX_LEN);
1428 U32 s0 = seed[0] ^ 0x68736168; /* sbox */
1429 U32 s1 = seed[1] ^ 0x786f6273; /* hash */
1430 U32 s2 = seed[2] ^ 0x646f6f67; /* good */
1431 U32 t1,t2,i;
1432
1433 /* make sure we have all non-zero state elements */
1434 if (!s0) s0 = 1;
1435 if (!s1) s1 = 2;
1436 if (!s2) s2 = 4;
1437
1438 /* Do a bunch of mix rounds to avalanche the seedbits
1439 * before we use them for the XORSHIFT rng. */
1440 for ( i = 0; i < SBOX32_CHURN_ROUNDS; i++ )
1441 SBOX32_MIX3(s0,s1,s2,"SEED STATE");
1442
1443 while ( state_cursor < sbox32_end ) {
1444 U32 *row_end = state_cursor + 256;
1445 for ( ; state_cursor < row_end; state_cursor++ ) {
1446 XORSHIFT96_set(*state_cursor,s0,s1,s2,t1);
1447 }
1448 }
1449 XORSHIFT96_set(*state,s0,s1,s2,t2);
1450}
1451
1452SBOX32_STATIC_INLINE void sbox32_seed_state128 (
1453 const U8 *seed_ch,
1454 U8 *state_ch
1455) {
1456 U32 *seed= (U32 *)seed_ch;
1457 U32 *state= (U32 *)state_ch;
1458 U32 *state_cursor = state + 1;
1459 U32 *sbox32_end = state + 1 + (256 * SBOX32_MAX_LEN);
1460 U32 s0 = seed[0] ^ 0x68736168; /* sbox */
1461 U32 s1 = seed[1] ^ 0x786f6273; /* hash */
1462 U32 s2 = seed[2] ^ 0x646f6f67; /* good */
1463 U32 s3 = seed[3] ^ 0x74736166; /* fast */
1464 U32 t1,t2,i;
1465
1466 /* make sure we have all non-zero state elements */
1467 if (!s0) s0 = 1;
1468 if (!s1) s1 = 2;
1469 if (!s2) s2 = 4;
1470 if (!s3) s3 = 8;
1471
1472 /* Do a bunch of mix rounds to avalanche the seedbits
1473 * before we use them for the XORSHIFT rng. */
1474 for ( i = 0; i < SBOX32_CHURN_ROUNDS; i++ )
1475 SBOX32_MIX4(s0,s1,s2,s3,"SEED STATE");
1476
1477 while ( state_cursor < sbox32_end ) {
1478 U32 *row_end = state_cursor + 256;
1479 for ( ; state_cursor < row_end; state_cursor++ ) {
1480 XORSHIFT128_set(*state_cursor,s0,s1,s2,s3,t1);
1481 }
1482 }
1483 XORSHIFT128_set(*state,s0,s1,s2,s3,t2);
1484}
1485
1486SBOX32_STATIC_INLINE U32 sbox32_hash_with_state(
1487 const U8 *state_ch,
1488 const U8 *key,
1489 const STRLEN key_len
1490) {
1491 U32 *state= (U32 *)state_ch;
1492 U32 hash = *state;
1493 switch (key_len) {
1494 default: return zaphod32_hash_with_state(state_ch, key, key_len);
1495 case_256_SBOX32(hash,state,key)
1496 case_255_SBOX32(hash,state,key)
1497 case_254_SBOX32(hash,state,key)
1498 case_253_SBOX32(hash,state,key)
1499 case_252_SBOX32(hash,state,key)
1500 case_251_SBOX32(hash,state,key)
1501 case_250_SBOX32(hash,state,key)
1502 case_249_SBOX32(hash,state,key)
1503 case_248_SBOX32(hash,state,key)
1504 case_247_SBOX32(hash,state,key)
1505 case_246_SBOX32(hash,state,key)
1506 case_245_SBOX32(hash,state,key)
1507 case_244_SBOX32(hash,state,key)
1508 case_243_SBOX32(hash,state,key)
1509 case_242_SBOX32(hash,state,key)
1510 case_241_SBOX32(hash,state,key)
1511 case_240_SBOX32(hash,state,key)
1512 case_239_SBOX32(hash,state,key)
1513 case_238_SBOX32(hash,state,key)
1514 case_237_SBOX32(hash,state,key)
1515 case_236_SBOX32(hash,state,key)
1516 case_235_SBOX32(hash,state,key)
1517 case_234_SBOX32(hash,state,key)
1518 case_233_SBOX32(hash,state,key)
1519 case_232_SBOX32(hash,state,key)
1520 case_231_SBOX32(hash,state,key)
1521 case_230_SBOX32(hash,state,key)
1522 case_229_SBOX32(hash,state,key)
1523 case_228_SBOX32(hash,state,key)
1524 case_227_SBOX32(hash,state,key)
1525 case_226_SBOX32(hash,state,key)
1526 case_225_SBOX32(hash,state,key)
1527 case_224_SBOX32(hash,state,key)
1528 case_223_SBOX32(hash,state,key)
1529 case_222_SBOX32(hash,state,key)
1530 case_221_SBOX32(hash,state,key)
1531 case_220_SBOX32(hash,state,key)
1532 case_219_SBOX32(hash,state,key)
1533 case_218_SBOX32(hash,state,key)
1534 case_217_SBOX32(hash,state,key)
1535 case_216_SBOX32(hash,state,key)
1536 case_215_SBOX32(hash,state,key)
1537 case_214_SBOX32(hash,state,key)
1538 case_213_SBOX32(hash,state,key)
1539 case_212_SBOX32(hash,state,key)
1540 case_211_SBOX32(hash,state,key)
1541 case_210_SBOX32(hash,state,key)
1542 case_209_SBOX32(hash,state,key)
1543 case_208_SBOX32(hash,state,key)
1544 case_207_SBOX32(hash,state,key)
1545 case_206_SBOX32(hash,state,key)
1546 case_205_SBOX32(hash,state,key)
1547 case_204_SBOX32(hash,state,key)
1548 case_203_SBOX32(hash,state,key)
1549 case_202_SBOX32(hash,state,key)
1550 case_201_SBOX32(hash,state,key)
1551 case_200_SBOX32(hash,state,key)
1552 case_199_SBOX32(hash,state,key)
1553 case_198_SBOX32(hash,state,key)
1554 case_197_SBOX32(hash,state,key)
1555 case_196_SBOX32(hash,state,key)
1556 case_195_SBOX32(hash,state,key)
1557 case_194_SBOX32(hash,state,key)
1558 case_193_SBOX32(hash,state,key)
1559 case_192_SBOX32(hash,state,key)
1560 case_191_SBOX32(hash,state,key)
1561 case_190_SBOX32(hash,state,key)
1562 case_189_SBOX32(hash,state,key)
1563 case_188_SBOX32(hash,state,key)
1564 case_187_SBOX32(hash,state,key)
1565 case_186_SBOX32(hash,state,key)
1566 case_185_SBOX32(hash,state,key)
1567 case_184_SBOX32(hash,state,key)
1568 case_183_SBOX32(hash,state,key)
1569 case_182_SBOX32(hash,state,key)
1570 case_181_SBOX32(hash,state,key)
1571 case_180_SBOX32(hash,state,key)
1572 case_179_SBOX32(hash,state,key)
1573 case_178_SBOX32(hash,state,key)
1574 case_177_SBOX32(hash,state,key)
1575 case_176_SBOX32(hash,state,key)
1576 case_175_SBOX32(hash,state,key)
1577 case_174_SBOX32(hash,state,key)
1578 case_173_SBOX32(hash,state,key)
1579 case_172_SBOX32(hash,state,key)
1580 case_171_SBOX32(hash,state,key)
1581 case_170_SBOX32(hash,state,key)
1582 case_169_SBOX32(hash,state,key)
1583 case_168_SBOX32(hash,state,key)
1584 case_167_SBOX32(hash,state,key)
1585 case_166_SBOX32(hash,state,key)
1586 case_165_SBOX32(hash,state,key)
1587 case_164_SBOX32(hash,state,key)
1588 case_163_SBOX32(hash,state,key)
1589 case_162_SBOX32(hash,state,key)
1590 case_161_SBOX32(hash,state,key)
1591 case_160_SBOX32(hash,state,key)
1592 case_159_SBOX32(hash,state,key)
1593 case_158_SBOX32(hash,state,key)
1594 case_157_SBOX32(hash,state,key)
1595 case_156_SBOX32(hash,state,key)
1596 case_155_SBOX32(hash,state,key)
1597 case_154_SBOX32(hash,state,key)
1598 case_153_SBOX32(hash,state,key)
1599 case_152_SBOX32(hash,state,key)
1600 case_151_SBOX32(hash,state,key)
1601 case_150_SBOX32(hash,state,key)
1602 case_149_SBOX32(hash,state,key)
1603 case_148_SBOX32(hash,state,key)
1604 case_147_SBOX32(hash,state,key)
1605 case_146_SBOX32(hash,state,key)
1606 case_145_SBOX32(hash,state,key)
1607 case_144_SBOX32(hash,state,key)
1608 case_143_SBOX32(hash,state,key)
1609 case_142_SBOX32(hash,state,key)
1610 case_141_SBOX32(hash,state,key)
1611 case_140_SBOX32(hash,state,key)
1612 case_139_SBOX32(hash,state,key)
1613 case_138_SBOX32(hash,state,key)
1614 case_137_SBOX32(hash,state,key)
1615 case_136_SBOX32(hash,state,key)
1616 case_135_SBOX32(hash,state,key)
1617 case_134_SBOX32(hash,state,key)
1618 case_133_SBOX32(hash,state,key)
1619 case_132_SBOX32(hash,state,key)
1620 case_131_SBOX32(hash,state,key)
1621 case_130_SBOX32(hash,state,key)
1622 case_129_SBOX32(hash,state,key)
1623 case_128_SBOX32(hash,state,key)
1624 case_127_SBOX32(hash,state,key)
1625 case_126_SBOX32(hash,state,key)
1626 case_125_SBOX32(hash,state,key)
1627 case_124_SBOX32(hash,state,key)
1628 case_123_SBOX32(hash,state,key)
1629 case_122_SBOX32(hash,state,key)
1630 case_121_SBOX32(hash,state,key)
1631 case_120_SBOX32(hash,state,key)
1632 case_119_SBOX32(hash,state,key)
1633 case_118_SBOX32(hash,state,key)
1634 case_117_SBOX32(hash,state,key)
1635 case_116_SBOX32(hash,state,key)
1636 case_115_SBOX32(hash,state,key)
1637 case_114_SBOX32(hash,state,key)
1638 case_113_SBOX32(hash,state,key)
1639 case_112_SBOX32(hash,state,key)
1640 case_111_SBOX32(hash,state,key)
1641 case_110_SBOX32(hash,state,key)
1642 case_109_SBOX32(hash,state,key)
1643 case_108_SBOX32(hash,state,key)
1644 case_107_SBOX32(hash,state,key)
1645 case_106_SBOX32(hash,state,key)
1646 case_105_SBOX32(hash,state,key)
1647 case_104_SBOX32(hash,state,key)
1648 case_103_SBOX32(hash,state,key)
1649 case_102_SBOX32(hash,state,key)
1650 case_101_SBOX32(hash,state,key)
1651 case_100_SBOX32(hash,state,key)
1652 case_99_SBOX32(hash,state,key)
1653 case_98_SBOX32(hash,state,key)
1654 case_97_SBOX32(hash,state,key)
1655 case_96_SBOX32(hash,state,key)
1656 case_95_SBOX32(hash,state,key)
1657 case_94_SBOX32(hash,state,key)
1658 case_93_SBOX32(hash,state,key)
1659 case_92_SBOX32(hash,state,key)
1660 case_91_SBOX32(hash,state,key)
1661 case_90_SBOX32(hash,state,key)
1662 case_89_SBOX32(hash,state,key)
1663 case_88_SBOX32(hash,state,key)
1664 case_87_SBOX32(hash,state,key)
1665 case_86_SBOX32(hash,state,key)
1666 case_85_SBOX32(hash,state,key)
1667 case_84_SBOX32(hash,state,key)
1668 case_83_SBOX32(hash,state,key)
1669 case_82_SBOX32(hash,state,key)
1670 case_81_SBOX32(hash,state,key)
1671 case_80_SBOX32(hash,state,key)
1672 case_79_SBOX32(hash,state,key)
1673 case_78_SBOX32(hash,state,key)
1674 case_77_SBOX32(hash,state,key)
1675 case_76_SBOX32(hash,state,key)
1676 case_75_SBOX32(hash,state,key)
1677 case_74_SBOX32(hash,state,key)
1678 case_73_SBOX32(hash,state,key)
1679 case_72_SBOX32(hash,state,key)
1680 case_71_SBOX32(hash,state,key)
1681 case_70_SBOX32(hash,state,key)
1682 case_69_SBOX32(hash,state,key)
1683 case_68_SBOX32(hash,state,key)
1684 case_67_SBOX32(hash,state,key)
1685 case_66_SBOX32(hash,state,key)
1686 case_65_SBOX32(hash,state,key)
1687 case_64_SBOX32(hash,state,key)
1688 case_63_SBOX32(hash,state,key)
1689 case_62_SBOX32(hash,state,key)
1690 case_61_SBOX32(hash,state,key)
1691 case_60_SBOX32(hash,state,key)
1692 case_59_SBOX32(hash,state,key)
1693 case_58_SBOX32(hash,state,key)
1694 case_57_SBOX32(hash,state,key)
1695 case_56_SBOX32(hash,state,key)
1696 case_55_SBOX32(hash,state,key)
1697 case_54_SBOX32(hash,state,key)
1698 case_53_SBOX32(hash,state,key)
1699 case_52_SBOX32(hash,state,key)
1700 case_51_SBOX32(hash,state,key)
1701 case_50_SBOX32(hash,state,key)
1702 case_49_SBOX32(hash,state,key)
1703 case_48_SBOX32(hash,state,key)
1704 case_47_SBOX32(hash,state,key)
1705 case_46_SBOX32(hash,state,key)
1706 case_45_SBOX32(hash,state,key)
1707 case_44_SBOX32(hash,state,key)
1708 case_43_SBOX32(hash,state,key)
1709 case_42_SBOX32(hash,state,key)
1710 case_41_SBOX32(hash,state,key)
1711 case_40_SBOX32(hash,state,key)
1712 case_39_SBOX32(hash,state,key)
1713 case_38_SBOX32(hash,state,key)
1714 case_37_SBOX32(hash,state,key)
1715 case_36_SBOX32(hash,state,key)
1716 case_35_SBOX32(hash,state,key)
1717 case_34_SBOX32(hash,state,key)
1718 case_33_SBOX32(hash,state,key)
1719 case_32_SBOX32(hash,state,key)
1720 case_31_SBOX32(hash,state,key)
1721 case_30_SBOX32(hash,state,key)
1722 case_29_SBOX32(hash,state,key)
1723 case_28_SBOX32(hash,state,key)
1724 case_27_SBOX32(hash,state,key)
1725 case_26_SBOX32(hash,state,key)
1726 case_25_SBOX32(hash,state,key)
1727 case_24_SBOX32(hash,state,key)
1728 case_23_SBOX32(hash,state,key)
1729 case_22_SBOX32(hash,state,key)
1730 case_21_SBOX32(hash,state,key)
1731 case_20_SBOX32(hash,state,key)
1732 case_19_SBOX32(hash,state,key)
1733 case_18_SBOX32(hash,state,key)
1734 case_17_SBOX32(hash,state,key)
1735 case_16_SBOX32(hash,state,key)
1736 case_15_SBOX32(hash,state,key)
1737 case_14_SBOX32(hash,state,key)
1738 case_13_SBOX32(hash,state,key)
1739 case_12_SBOX32(hash,state,key)
1740 case_11_SBOX32(hash,state,key)
1741 case_10_SBOX32(hash,state,key)
1742 case_9_SBOX32(hash,state,key)
1743 case_8_SBOX32(hash,state,key)
1744 case_7_SBOX32(hash,state,key)
1745 case_6_SBOX32(hash,state,key)
1746 case_5_SBOX32(hash,state,key)
1747 case_4_SBOX32(hash,state,key)
1748 case_3_SBOX32(hash,state,key)
1749 case_2_SBOX32(hash,state,key)
1750 case_1_SBOX32(hash,state,key)
1751 case 0: break;
1752 }
1753 return hash;
1754}
1755
1756SBOX32_STATIC_INLINE U32 sbox32_hash96(
1757 const U8 *seed_ch,
1758 const U8 *key,
1759 const STRLEN key_len
1760) {
1761 U32 state[SBOX32_STATE_WORDS];
1762 sbox32_seed_state96(seed_ch,(U8*)state);
1763 return sbox32_hash_with_state((U8*)state,key,key_len);
1764}
1765
1766SBOX32_STATIC_INLINE U32 sbox32_hash128(
1767 const U8 *seed_ch,
1768 const U8 *key,
1769 const STRLEN key_len
1770) {
1771 U32 state[SBOX32_STATE_WORDS];
1772 sbox32_seed_state128(seed_ch,(U8*)state);
1773 return sbox32_hash_with_state((U8*)state,key,key_len);
1774}
1775
1776
1777#endif