1
0
Fork 0
mirror of https://passt.top/passt synced 2025-06-12 10:35:34 +02:00

siphash: Make siphash functions consistently return 64-bit results

Some of the siphas_*b() functions return 64-bit results, others 32-bit
results, with no obvious pattern.  siphash_32b() also appears to do this
incorrectly - taking the 64-bit hash value and simply returning it
truncated, rather than folding the two halves together.

Since SipHash proper is defined to give a 64-bit hash, make all of them
return 64-bit results.  In the one caller which needs a 32-bit value,
tcp_seq_init() do the fold down to 32-bits ourselves.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
David Gibson 2023-09-28 11:20:53 +10:00 committed by Stefano Brivio
parent c1d2a070f2
commit ca6e94702c
3 changed files with 14 additions and 16 deletions

View file

@ -7,9 +7,9 @@
#define SIPHASH_H
uint64_t siphash_8b(const uint8_t *in, const uint64_t *k);
uint32_t siphash_12b(const uint8_t *in, const uint64_t *k);
uint64_t siphash_12b(const uint8_t *in, const uint64_t *k);
uint64_t siphash_20b(const uint8_t *in, const uint64_t *k);
uint32_t siphash_32b(const uint8_t *in, const uint64_t *k);
uint32_t siphash_36b(const uint8_t *in, const uint64_t *k);
uint64_t siphash_32b(const uint8_t *in, const uint64_t *k);
uint64_t siphash_36b(const uint8_t *in, const uint64_t *k);
#endif /* SIPHASH_H */