@@ -154,6 +154,7 @@ void zaphod32_seed_state (
154
154
ZAPHOD32_SCRAMBLE32 (state [0 ],0x9fade23b );
155
155
ZAPHOD32_SCRAMBLE32 (state [1 ],0xaa6f908d );
156
156
ZAPHOD32_SCRAMBLE32 (state [2 ],0xcdf6b72d );
157
+
157
158
/* now that we have scrambled we do some mixing to avalanche the
158
159
* state bits to gether */
159
160
ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE A 1/4" );
@@ -165,12 +166,13 @@ void zaphod32_seed_state (
165
166
ZAPHOD32_SCRAMBLE32 (state [0 ],0xc95d22a9 );
166
167
ZAPHOD32_SCRAMBLE32 (state [1 ],0x8497242b );
167
168
ZAPHOD32_SCRAMBLE32 (state [2 ],0x9c5cc4e9 );
168
- /* and one final mix */
169
- ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE 3/3" );
170
- ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE 3/3" );
171
- ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE 3/3" );
172
- ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE 3/3" );
173
- ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE 3/3" );
169
+
170
+ /* and a thorough final mix */
171
+ ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE B 1/5" );
172
+ ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE B 2/5" );
173
+ ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE B 3/5" );
174
+ ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE B 4/5" );
175
+ ZAPHOD32_MIX (state [0 ],state [1 ],state [2 ],"ZAPHOD32 SEED-STATE B 5/5" );
174
176
175
177
}
176
178
@@ -277,7 +279,7 @@ ZAPHOD32_STATIC_INLINE U32 zaphod32_hash(
277
279
const U8 * key ,
278
280
const STRLEN key_len
279
281
) {
280
- U32 state [1796 ];
282
+ U32 state [3 ];
281
283
zaphod32_seed_state (seed_ch ,(U8 * )state );
282
284
return zaphod32_hash_with_state ((U8 * )state ,key ,key_len );
283
285
}
0 commit comments