chiark / gitweb /
siphash24: expose the internal helper functions
authorTom Gundersen <teg@jklm.no>
Sat, 3 Oct 2015 22:23:25 +0000 (00:23 +0200)
committerSven Eden <yamakuzure@gmx.net>
Wed, 29 Mar 2017 08:45:10 +0000 (10:45 +0200)
src/basic/siphash24.c
src/basic/siphash24.h

index 1c827df..308e423 100644 (file)
@@ -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);
index 62e1168..c107bdd 100644 (file)
@@ -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]);