/** 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);
+void sha256_hash(const char *data, unsigned long len, unsigned char *result);
static inline void hash_function(uint8_t table_version, const char *data,
unsigned long len, unsigned char *result)
{
- assert(table_version == 1);
- sha1_hash(data, len, result);
+ switch (table_version) {
+ case 1: return sha1_hash(data, len, result);
+ case 2: return sha3_hash(data, len, result);
+ case 3: return sha256_hash(data, len, result);
+ }
+ assert(0);
}
/**