From 0cb3c286883b694fc52a18a3b559ff98931641f3 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Tue, 6 Oct 2015 15:04:42 +0200 Subject: siphash24: unify API Make the API of the new helpers more similar to the old wrapper. In particular we now return the hash as a byte string to avoid any endianness problems. --- src/basic/siphash24.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/basic/siphash24.c') diff --git a/src/basic/siphash24.c b/src/basic/siphash24.c index 308e4230c5..9c56b5e9ea 100644 --- a/src/basic/siphash24.c +++ b/src/basic/siphash24.c @@ -52,7 +52,7 @@ typedef uint8_t u8; (state)->v2 += (state)->v1; (state)->v1=ROTL((state)->v1,17); (state)->v1 ^= (state)->v2; (state)->v2=ROTL((state)->v2,32); \ } while(0) -void siphash_init(struct siphash *state, const uint8_t k[16]) { +void siphash24_init(struct siphash *state, const uint8_t k[16]) { u64 k0, k1; k0 = U8TO64_LE( k ); @@ -140,7 +140,7 @@ void siphash24_compress(const void *_in, size_t inlen, struct siphash *state) { } } -uint64_t siphash24_finalize(struct siphash *state) { +void siphash24_finalize(uint8_t out[8], struct siphash *state) { u64 b; b = state->padding | (( ( u64 )state->inlen ) << 56); @@ -168,20 +168,19 @@ uint64_t siphash24_finalize(struct siphash *state) { SIPROUND(state); SIPROUND(state); - return state->v0 ^ state->v1 ^ state->v2 ^ state->v3; + b = state->v0 ^ state->v1 ^ state->v2 ^ state->v3; + + U64TO8_LE( out, b ); } /* SipHash-2-4 */ void siphash24(uint8_t out[8], const void *_in, size_t inlen, const uint8_t k[16]) { struct siphash state; - u64 b; - siphash_init(&state, k); + siphash24_init(&state, k); siphash24_compress(_in, inlen, &state); - b = siphash24_finalize(&state); - - U64TO8_LE( out, b ); + siphash24_finalize(out, &state); } -- cgit v1.2.3-54-g00ecf