This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
rip out Perl version portability from B
[perl5.git] / sbox32_hash.h
1 #ifndef DEBUG_SBOX32_HASH
2 #define DEBUG_SBOX32_HASH 0
3
4 #include "zaphod32_hash.h"
5
6 #if DEBUG_SBOX32_HASH == 1
7 #include <stdio.h>
8 #define SBOX32_WARN6(pat,v0,v1,v2,v3,v4,v5)    printf(pat, v0, v1, v2, v3, v4, v5)
9 #define SBOX32_WARN5(pat,v0,v1,v2,v3,v4)       printf(pat, v0, v1, v2, v3, v4)
10 #define SBOX32_WARN4(pat,v0,v1,v2,v3)          printf(pat, v0, v1, v2, v3)
11 #define SBOX32_WARN3(pat,v0,v1,v2)             printf(pat, v0, v1, v2)
12 #define SBOX32_WARN2(pat,v0,v1)                printf(pat, v0, v1)
13 #define NOTE3(pat,v0,v1,v2)             printf(pat, v0, v1, v2)
14 #elif DEBUG_SBOX32_HASH == 2
15 #define SBOX32_WARN6(pat,v0,v1,v2,v3,v4,v5)
16 #define SBOX32_WARN5(pat,v0,v1,v2,v3,v4)
17 #define SBOX32_WARN4(pat,v0,v1,v2,v3)
18 #define SBOX32_WARN3(pat,v0,v1,v2)
19 #define SBOX32_WARN2(pat,v0,v1)
20 #define NOTE3(pat,v0,v1,v2)             printf(pat, v0, v1, v2)
21 #else
22 #define SBOX32_WARN6(pat,v0,v1,v2,v3,v4,v5)
23 #define SBOX32_WARN5(pat,v0,v1,v2,v3,v4)
24 #define SBOX32_WARN4(pat,v0,v1,v2,v3)
25 #define SBOX32_WARN3(pat,v0,v1,v2)
26 #define NOTE3(pat,v0,v1,v2)
27 #define SBOX32_WARN2(pat,v0,v1)
28 #endif
29
30 #ifndef PERL_SEEN_HV_FUNC_H
31 #if !defined(U32) 
32 #include <stdint.h>
33 #define U32 uint32_t
34 #endif
35
36 #if !defined(U8)
37 #define U8 unsigned char
38 #endif
39
40 #if !defined(U16)
41 #define U16 uint16_t
42 #endif
43
44 #ifndef STRLEN
45 #define STRLEN int
46 #endif
47 #endif
48
49 #ifndef SBOX32_STATIC_INLINE
50 #ifdef PERL_STATIC_INLINE
51 #define SBOX32_STATIC_INLINE PERL_STATIC_INLINE
52 #else
53 #define SBOX32_STATIC_INLINE static inline
54 #endif
55 #endif
56
57 #ifndef STMT_START
58 #define STMT_START do
59 #define STMT_END while(0)
60 #endif
61
62 /* Find best way to ROTL32/ROTL64 */
63 #ifndef ROTL32
64 #if defined(_MSC_VER)
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)
68 #else
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)))
72 #endif
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) \
1423     /* FALLTHROUGH */ \
1424     case len: hash ^= state[ 1 + ( 256 * ( len - 1 ) ) + key[ len - 1 ] ];
1425
1426
1427 SBOX32_STATIC_INLINE void sbox32_seed_state96 (
1428     const U8 *seed_ch,
1429     U8 *state_ch
1430 ) {
1431     const U32 *seed= (const U32 *)seed_ch;
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
1459 SBOX32_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
1493 SBOX32_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);
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)
1758         case 0: break;
1759     }
1760     return hash;
1761 }
1762
1763 SBOX32_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
1773 SBOX32_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
1783 #endif