00001 #ifndef CRYPTOPP_TIGER_H
00002 #define CRYPTOPP_TIGER_H
00003
00004 #include "cryptopp_config.h"
00005
00006 #ifdef WORD64_AVAILABLE
00007
00008 #include "iterhash.h"
00009
00010 NAMESPACE_BEGIN(CryptoPP)
00011
00012
00013 class Tiger : public IteratedHashWithStaticTransform<word64, LittleEndian, 64, Tiger>
00014 {
00015 public:
00016 enum {DIGESTSIZE = 24};
00017 Tiger() : IteratedHashWithStaticTransform<word64, LittleEndian, 64, Tiger>(DIGESTSIZE) {Init();}
00018 static void Transform(word64 *digest, const word64 *data);
00019 void TruncatedFinal(byte *hash, unsigned int size);
00020 static const char * StaticAlgorithmName() {return "Tiger";}
00021
00022 protected:
00023 void Init();
00024
00025 static const word64 table[4*256];
00026 };
00027
00028 NAMESPACE_END
00029
00030 #endif
00031
00032 #endif