From: Greg Hudson Date: Sat, 23 Feb 2019 20:03:34 +0000 (-0500) Subject: Make siphash24 available internally X-Git-Tag: krb5-1.18-beta1~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4662f94c7d51e3d262381c142eccd55759a89e46;p=thirdparty%2Fkrb5.git Make siphash24 available internally --- diff --git a/src/include/k5-hashtab.h b/src/include/k5-hashtab.h index dc0ef3613e..e68970badf 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 e04e491b29..a66b8cb438 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 ff46656b19..df3c78f9e1 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