/** Size of the hash value in bytes. */
#define HASH_SIZE 20
-void sha1_hash(const char *data, unsigned long len, unsigned char *sha1);
+void sha1_hash(const char *data, unsigned long len, unsigned char *result);
+void sha3_hash(const char *data, unsigned long len, unsigned char *result);
-/** Our own sha1 implementation, see sha1.c. */
-#define hash_function sha1_hash
+static inline void hash_function(uint8_t table_version, const char *data,
+ unsigned long len, unsigned char *result)
+{
+ if (table_version == 1)
+ return sha1_hash(data, len, result);
+ if (table_version == 2)
+ return sha3_hash(data, len, result);
+ assert(0);
+}
/**
* Compare two hashes.