X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=hash.h;h=585ef4e318c6963c2d071602636c272bad9e02d7;hb=refs%2Fheads%2Fnext;hp=27b060139ed05966a6fa13abad32f3947725d973;hpb=c9d2589c6764a308142afd17e92cef630c7fe940;p=osl.git diff --git a/hash.h b/hash.h index 27b0601..585ef4e 100644 --- a/hash.h +++ b/hash.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2009 Andre Noll + * Copyright (C) 2007-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -11,9 +11,23 @@ /** hash arrays are always unsigned char. */ #define HASH_TYPE unsigned char -#include "sha1.h" -/** We use openssl's sha1 implementation. */ -#define hash_function sha1_hash +/** Size of the hash value in bytes. */ +#define HASH_SIZE 20 + +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) +{ + 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); +} /** * Compare two hashes.