Browse Source

csiphash: Add functions to take a global key.

Nick Mathewson 10 years ago
parent
commit
f05820531a
2 changed files with 17 additions and 0 deletions
  1. 14 0
      src/ext/csiphash.c
  2. 3 0
      src/ext/siphash.h

+ 14 - 0
src/ext/csiphash.c

@@ -132,3 +132,17 @@ uint64_t siphash24(const void *src, unsigned long src_sz, const struct sipkey *k
 	return (v0 ^ v1) ^ (v2 ^ v3);
 }
 
+
+static int the_siphash_key_is_set = 0;
+static struct sipkey the_siphash_key;
+
+uint64_t siphash24g(const void *src, unsigned long src_sz) {
+	return siphash24(src, src_sz, &the_siphash_key);
+}
+
+void siphash_set_global_key(const struct sipkey *key)
+{
+	the_siphash_key.k0 = key->k0;
+	the_siphash_key.k1 = key->k1;
+	the_siphash_key_is_set = 1;
+}

+ 3 - 0
src/ext/siphash.h

@@ -6,4 +6,7 @@ struct sipkey {
 };
 uint64_t siphash24(const void *src, unsigned long src_sz, const struct sipkey *key);
 
+void siphash_set_global_key(const struct sipkey *key);
+uint64_t siphash24g(const void *src, unsigned long src_sz);
+
 #endif