Files
interactive/gms/SKBB/sdkfreebsd64/libs/mhash-0.9.9.9/lib/mhash_tiger.h
2026-08-07 17:38:18 +09:00

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