summaryrefslogtreecommitdiff
path: root/src/basic
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-10-04 00:23:25 +0200
committerTom Gundersen <teg@jklm.no>2015-10-05 17:33:58 +0200
commit7c57f504c935a34362d36f514a409f4cbd23a349 (patch)
treeacfd8942795767ee0b55424a9cf71064d560e4ad /src/basic
parent2c4cc3bdcd18d554cb2ad076516609c69fdd79aa (diff)
siphash24: expose the internal helper functions
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/siphash24.c15
-rw-r--r--src/basic/siphash24.h13
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]);