ca6e94702c
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>
15 lines
492 B
C
15 lines
492 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later
|
|
* Copyright (c) 2021 Red Hat GmbH
|
|
* Author: Stefano Brivio <sbrivio@redhat.com>
|
|
*/
|
|
|
|
#ifndef SIPHASH_H
|
|
#define SIPHASH_H
|
|
|
|
uint64_t siphash_8b(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);
|
|
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 */
|