/* 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 */
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)