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