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