67 lines
1.8 KiB
C
67 lines
1.8 KiB
C
#if defined(ENABLE_TIGER)
|
|
|
|
#if !defined(__MHASH_TIGER_H)
|
|
#define __MHASH_TIGER_H
|
|
|
|
#include "libdefs.h"
|
|
|
|
#define TIGER_DIGESTSIZE 24
|
|
#define TIGER160_DIGESTSIZE 20
|
|
#define TIGER128_DIGESTSIZE 16
|
|
#define TIGER_DATASIZE 64
|
|
|
|
#ifdef TIGER_64BIT
|
|
|
|
#define h0init 0x0123456789ABCDEFLL
|
|
#define h1init 0xFEDCBA9876543210LL
|
|
#define h2init 0xF096A5B4C3B2E187LL
|
|
|
|
#define TIGER_DATALEN 8
|
|
#define TIGER_DIGESTLEN 3
|
|
#define TIGER128_DIGESTLEN 2
|
|
#define TIGER160_DIGESTLEN 2 /* 2.5 actually. */
|
|
|
|
typedef struct tiger_ctx {
|
|
mutils_word64 digest[TIGER_DIGESTLEN]; /* Message digest */
|
|
mutils_word64 count; /* 64-bit block count */
|
|
mutils_word8 block[TIGER_DATASIZE]; /* RIPEMD data buffer */
|
|
mutils_word32 index; /* index into buffer */
|
|
} TIGER_CTX;
|
|
|
|
|
|
#else
|
|
|
|
#define h0init 0x89ABCDEF;
|
|
#define h1init 0x01234567;
|
|
#define h2init 0x76543210;
|
|
#define h3init 0xFEDCBA98;
|
|
#define h4init 0xC3B2E187;
|
|
#define h5init 0xF096A5B4;
|
|
|
|
#define TIGER_DATALEN 16
|
|
#define TIGER_DIGESTLEN 6
|
|
#define TIGER128_DIGESTLEN 4
|
|
#define TIGER160_DIGESTLEN 5
|
|
|
|
typedef struct tiger_ctx {
|
|
mutils_word32 digest[TIGER_DIGESTLEN]; /* Message digest */
|
|
mutils_word32 count_l, count_h; /* 64-bit block count */
|
|
mutils_word8 block[TIGER_DATASIZE]; /* RIPEMD data buffer */
|
|
mutils_word32 index; /* index into buffer */
|
|
} TIGER_CTX;
|
|
|
|
#endif /* !TIGER_64BIT */
|
|
|
|
void tiger_digest(struct tiger_ctx *ctx, mutils_word8 * s);
|
|
void tiger_digest160(struct tiger_ctx *ctx, mutils_word8 * s);
|
|
void tiger_digest128(struct tiger_ctx *ctx, mutils_word8 * s);
|
|
void tiger_final(struct tiger_ctx *ctx);
|
|
void tiger_update(struct tiger_ctx *ctx, mutils_word8 * buffer, mutils_word32 len);
|
|
void tiger_init(struct tiger_ctx *ctx);
|
|
void tiger128_digest(struct tiger_ctx *ctx, mutils_word8 * s);
|
|
void tiger160_digest(struct tiger_ctx *ctx, mutils_word8 * s);
|
|
|
|
#endif
|
|
|
|
#endif
|