krb5 commit: Make siphash24 available internally

Greg Hudson ghudson at mit.edu
Fri May 31 15:45:09 EDT 2019


https://github.com/krb5/krb5/commit/4662f94c7d51e3d262381c142eccd55759a89e46
commit 4662f94c7d51e3d262381c142eccd55759a89e46
Author: Greg Hudson <ghudson at mit.edu>
Date:   Sat Feb 23 15:03:34 2019 -0500

    Make siphash24 available internally

 src/include/k5-hashtab.h                      |    3 +++
 src/util/support/hashtab.c                    |    9 +++++++++
 src/util/support/libkrb5support-fixed.exports |    1 +
 3 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/include/k5-hashtab.h b/src/include/k5-hashtab.h
index dc0ef36..e68970b 100644
--- a/src/include/k5-hashtab.h
+++ b/src/include/k5-hashtab.h
@@ -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 */
diff --git a/src/util/support/hashtab.c b/src/util/support/hashtab.c
index e04e491..a66b8cb 100644
--- a/src/util/support/hashtab.c
+++ b/src/util/support/hashtab.c
@@ -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)
diff --git a/src/util/support/libkrb5support-fixed.exports b/src/util/support/libkrb5support-fixed.exports
index ff46656..df3c78f 100644
--- a/src/util/support/libkrb5support-fixed.exports
+++ b/src/util/support/libkrb5support-fixed.exports
@@ -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


More information about the cvs-krb5 mailing list