]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Make siphash24 available internally
authorGreg Hudson <ghudson@mit.edu>
Sat, 23 Feb 2019 20:03:34 +0000 (15:03 -0500)
committerGreg Hudson <ghudson@mit.edu>
Fri, 31 May 2019 15:44:12 +0000 (11:44 -0400)
src/include/k5-hashtab.h
src/util/support/hashtab.c
src/util/support/libkrb5support-fixed.exports

index dc0ef3613e82a7a3e52ce510bf16da4f99520175..e68970badf96813b2b43d0da5c93cc503e2b24fd 100644 (file)
@@ -76,4 +76,7 @@ int k5_hashtab_remove(struct k5_hashtab *ht, const void *key, size_t klen);
 /* Retrieve a value from a hash table by key. */
 void *k5_hashtab_get(struct k5_hashtab *ht, const void *key, size_t klen);
 
+uint64_t k5_siphash24(const uint8_t *data, size_t len,
+                      const uint8_t seed[K5_HASH_SEED_LEN]);
+
 #endif /* K5_HASH_H */
index e04e491b2952aef3f2e40bd351b600d5e9d8e90b..a66b8cb4383e29838d6fcdffb08c59940b99ff70 100644 (file)
@@ -111,6 +111,15 @@ siphash24(const uint8_t *data, size_t len, uint64_t k0, uint64_t k1)
     return v0 ^ v1 ^ v2 ^ v3;
 }
 
+uint64_t
+k5_siphash24(const uint8_t *data, size_t len,
+             const uint8_t seed[K5_HASH_SEED_LEN])
+{
+    uint64_t k0 = load_64_le(seed), k1 = load_64_le(seed + 8);
+
+    return siphash24(data, len, k0, k1);
+}
+
 int
 k5_hashtab_create(const uint8_t seed[K5_HASH_SEED_LEN], size_t initial_buckets,
                   struct k5_hashtab **ht_out)
index ff46656b19c85639390d7fc1d2dcee5e523903ab..df3c78f9e1a124b48b15fe42f01fd8c2060c0089 100644 (file)
@@ -60,6 +60,7 @@ k5_once
 k5_path_isabs
 k5_path_join
 k5_path_split
+k5_siphash24
 k5_strerror_r
 k5_utf8_to_utf16le
 k5_utf16le_to_utf8