#include #include #define OPTIMIZE_FOR_ALPHA 1 #define OPTIMIZE_FOR_64BIT 1 #define TIGER_DIGEST_LENGTH ( 3 * sizeof(uint64_t)) #define TIGER_BLOCK_LENGTH (64 * sizeof(uint8_t)) #define TIGER_DIGESTSIZE 24 #define TIGER160_DIGESTSIZE 20 #define TIGER128_DIGESTSIZE 16 #define TIGER_DATASIZE 64 #define h0init 0x0123456789ABCDEFLL #define h1init 0xFEDCBA9876543210LL #define h2init 0xF096A5B4C3B2E187LL #define TIGER_DATALEN 8 #define TIGER_DIGESTLEN 3 typedef struct tiger_ctx { uint64_t digest[TIGER_DIGESTLEN]; /* Message digest */ uint64_t count; /* 64-bit block count */ uint8_t block[TIGER_DATASIZE]; /* RIPEMD data buffer */ uint32_t index; /* index into buffer */ } TIGER_CTX; void tiger_init(struct tiger_ctx *ctx); void tiger_update(struct tiger_ctx *ctx, uint8_t * buffer, uint32_t len); void tiger_final(struct tiger_ctx *ctx, uint8_t * hash); #define PASSES 3