2 * Copyright (C) 2009 Brian Aker
5 * Use and distribution licensed under the BSD license. See
6 * the COPYING file in the parent directory for full text.
11 * @brief HashKit Header
14 #ifndef HASHKIT_ALGORITHM_H
15 #define HASHKIT_ALGORITHM_H
22 uint32_t libhashkit_one_at_a_time(const char *key
, size_t key_length
);
25 uint32_t libhashkit_fnv1_64(const char *key
, size_t key_length
);
28 uint32_t libhashkit_fnv1a_64(const char *key
, size_t key_length
);
31 uint32_t libhashkit_fnv1_32(const char *key
, size_t key_length
);
34 uint32_t libhashkit_fnv1a_32(const char *key
, size_t key_length
);
37 uint32_t libhashkit_crc32(const char *key
, size_t key_length
);
39 #ifdef HAVE_HSIEH_HASH
41 uint32_t libhashkit_hsieh(const char *key
, size_t key_length
);
44 #ifdef HAVE_MURMUR_HASH
46 uint32_t libhashkit_murmur(const char *key
, size_t key_length
);
50 uint32_t libhashkit_jenkins(const char *key
, size_t key_length
);
53 uint32_t libhashkit_md5(const char *key
, size_t key_length
);
56 uint32_t hashkit_one_at_a_time(const char *key
, size_t key_length
, void *context
);
59 uint32_t hashkit_fnv1_64(const char *key
, size_t key_length
, void *context
);
62 uint32_t hashkit_fnv1a_64(const char *key
, size_t key_length
, void *context
);
65 uint32_t hashkit_fnv1_32(const char *key
, size_t key_length
, void *context
);
68 uint32_t hashkit_fnv1a_32(const char *key
, size_t key_length
, void *context
);
71 uint32_t hashkit_crc32(const char *key
, size_t key_length
, void *context
);
73 #ifdef HAVE_HSIEH_HASH
75 uint32_t hashkit_hsieh(const char *key
, size_t key_length
, void *context
);
78 #ifdef HAVE_MURMUR_HASH
80 uint32_t hashkit_murmur(const char *key
, size_t key_length
, void *context
);
84 uint32_t hashkit_jenkins(const char *key
, size_t key_length
, void *context
);
87 uint32_t hashkit_md5(const char *key
, size_t key_length
, void *context
);
90 void libhashkit_md5_signature(const unsigned char *key
, size_t length
, unsigned char *result
);
96 #endif /* HASHKIT_ALGORITHM_H */