diff options
Diffstat (limited to 'src/basic')
-rw-r--r-- | src/basic/siphash24.c | 15 | ||||
-rw-r--r-- | src/basic/siphash24.h | 13 |
2 files changed, 16 insertions, 12 deletions
diff --git a/src/basic/siphash24.c b/src/basic/siphash24.c index 1c827dff1a..308e4230c5 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 62e1168a79..c107bdd213 100644 --- a/src/basic/siphash24.h +++ b/src/basic/siphash24.h @@ -3,4 +3,17 @@ #include <inttypes.h> #include <sys/types.h> +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]); |