• Jason A. Donenfeld's avatar
    siphash: use one source of truth for siphash permutations · e73aaae2
    Jason A. Donenfeld authored
    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: default avatarJason A. Donenfeld <Jason@zx2c4.com>
    e73aaae2
siphash.c 11.6 KB