From: Tom Gundersen Date: Sat, 3 Oct 2015 22:23:25 +0000 (+0200) Subject: siphash24: expose the internal helper functions X-Git-Tag: v227~20^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7c57f504c935a34362d36f514a409f4cbd23a349;p=thirdparty%2Fsystemd.git siphash24: expose the internal helper functions --- diff --git a/src/basic/siphash24.c b/src/basic/siphash24.c index 1c827dff1ac..308e4230c54 100644 --- a/src/basic/siphash24.c +++ b/src/basic/siphash24.c @@ -52,16 +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) -struct siphash { - u64 v0; - u64 v1; - u64 v2; - u64 v3; - u64 padding; - size_t inlen; -}; - -static void siphash_init(struct siphash *state, const uint8_t k[16]) { +void siphash_init(struct siphash *state, const uint8_t k[16]) { u64 k0, k1; k0 = U8TO64_LE( k ); @@ -76,7 +67,7 @@ static void siphash_init(struct siphash *state, const uint8_t k[16]) { state->inlen = 0; } -static void siphash24_compress(const void *_in, size_t inlen, struct siphash *state) { +void siphash24_compress(const void *_in, size_t inlen, struct siphash *state) { u64 m; const u8 *in = _in; const u8 *end = in + inlen; @@ -149,7 +140,7 @@ static void siphash24_compress(const void *_in, size_t inlen, struct siphash *st } } -static u64 siphash24_finalize(struct siphash *state) { +uint64_t siphash24_finalize(struct siphash *state) { u64 b; b = state->padding | (( ( u64 )state->inlen ) << 56); diff --git a/src/basic/siphash24.h b/src/basic/siphash24.h index 62e1168a798..c107bdd2137 100644 --- a/src/basic/siphash24.h +++ b/src/basic/siphash24.h @@ -3,4 +3,17 @@ #include #include +struct siphash { + uint64_t v0; + uint64_t v1; + uint64_t v2; + uint64_t v3; + uint64_t padding; + size_t inlen; +}; + +void siphash_init(struct siphash *state, const uint8_t k[16]); +void siphash24_compress(const void *in, size_t inlen, struct siphash *state); +uint64_t siphash24_finalize(struct siphash *state); + void siphash24(uint8_t out[8], const void *in, size_t inlen, const uint8_t k[16]);