OSDN Git Service

siphash: use one source of truth for siphash permutations
authorJason A. Donenfeld <Jason@zx2c4.com>
Sat, 7 May 2022 12:03:46 +0000 (14:03 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Wed, 18 May 2022 13:53:52 +0000 (15:53 +0200)
commite73aaae2fa9024832e1f42e30c787c7baf61d014
tree151a956250ad489a31c98047f24ea82fa157a1a8
parent791332b3cbb080510954a4c152ce02af8832eac9
siphash: use one source of truth for siphash permutations

The SipHash family of permutations is currently used in three places:

- siphash.c itself, used in the ordinary way it was intended.
- random32.c, in a construction from an anonymous contributor.
- random.c, as part of its fast_mix function.

Each one of these places reinvents the wheel with the same C code, same
rotation constants, and same symmetry-breaking constants.

This commit tidies things up a bit by placing macros for the
permutations and constants into siphash.h, where each of the three .c
users can access them. It also leaves a note dissuading more users of
them from emerging.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
drivers/char/random.c
include/linux/prandom.h
include/linux/siphash.h
lib/siphash.c