base
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
/* mhash_snefru.h */
|
||||
|
||||
/* Snefru is a cryptographic hash function invented by Ralph Merkle
|
||||
* which supports 128-bit and 256-bit output. It was named after the
|
||||
* Egyptian Pharaoh Sneferu, continuing the tradition of the Khufu and
|
||||
* Khafre block ciphers.
|
||||
*
|
||||
* Snefru is a public-domain one-way hash function. For more information see
|
||||
* http://www.funet.fi/pub/crypt/mirrors/idea.sec.dsi.unimi.it/rpub.cl.msu.edu/
|
||||
* crypt/docs/merkle-khufu-khafre-snefru.txt.gz
|
||||
*
|
||||
* This code was written by B. Poettering in 2004 for the mhash library. It
|
||||
* is in the public domain.
|
||||
*/
|
||||
|
||||
#if defined(ENABLE_SNEFRU)
|
||||
|
||||
#if !defined(__MHASH_SNEFRU_H_INCLUDED)
|
||||
#define __MHASH_SNEFRU_H_INCLUDED
|
||||
|
||||
#define SNEFRU128_DATA_SIZE 48
|
||||
#define SNEFRU128_DIGEST_SIZE 16
|
||||
#define SNEFRU128_DIGEST_LEN (SNEFRU128_DIGEST_SIZE / 4)
|
||||
|
||||
#define SNEFRU256_DATA_SIZE 32
|
||||
#define SNEFRU256_DIGEST_SIZE 32
|
||||
#define SNEFRU256_DIGEST_LEN (SNEFRU256_DIGEST_SIZE / 4)
|
||||
|
||||
#define SNEFRU_BLOCK_SIZE 64
|
||||
#define SNEFRU_BLOCK_LEN (SNEFRU_BLOCK_SIZE / 4)
|
||||
|
||||
typedef struct snefru_ctx
|
||||
{
|
||||
mutils_word8 buffer[SNEFRU128_DATA_SIZE]; /* buffer of data to hash */
|
||||
mutils_word64 hashlen; /* number of hashed bits */
|
||||
mutils_word32 index; /* index to buffer */
|
||||
mutils_word32 hash[SNEFRU_BLOCK_LEN]; /* the hashing state */
|
||||
} SNEFRU_CTX;
|
||||
|
||||
void
|
||||
snefru_init(struct snefru_ctx *ctx);
|
||||
|
||||
void
|
||||
snefru128_update(struct snefru_ctx *ctx, __const mutils_word8 *data, mutils_word32 length);
|
||||
|
||||
void
|
||||
snefru256_update(struct snefru_ctx *ctx, __const mutils_word8 *data, mutils_word32 length);
|
||||
|
||||
void
|
||||
snefru128_final(struct snefru_ctx *ctx);
|
||||
|
||||
void
|
||||
snefru256_final(struct snefru_ctx *ctx);
|
||||
|
||||
void
|
||||
snefru128_digest(__const struct snefru_ctx *ctx, mutils_word8 *digest);
|
||||
|
||||
void
|
||||
snefru256_digest(__const struct snefru_ctx *ctx, mutils_word8 *digest);
|
||||
|
||||
|
||||
#endif /* MHASH_SNEFRU_H_INCLUDED */
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user