diff options
author | Tom Gundersen <teg@jklm.no> | 2015-10-04 00:23:25 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2015-10-05 17:33:58 +0200 |
commit | 7c57f504c935a34362d36f514a409f4cbd23a349 (patch) | |
tree | acfd8942795767ee0b55424a9cf71064d560e4ad /src | |
parent | 2c4cc3bdcd18d554cb2ad076516609c69fdd79aa (diff) |
siphash24: expose the internal helper functions
Diffstat (limited to 'src')
-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]); |