diff options
Diffstat (limited to 'src/lib/crypto/yarrow/yhash.h')
-rw-r--r-- | src/lib/crypto/yarrow/yhash.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/lib/crypto/yarrow/yhash.h b/src/lib/crypto/yarrow/yhash.h new file mode 100644 index 0000000000..9ad6ed7fac --- /dev/null +++ b/src/lib/crypto/yarrow/yhash.h @@ -0,0 +1,40 @@ +/* -*- Mode: C; c-file-style: "bsd" -*- */ + +#ifndef YHASH_H +#define YHASH_H + +/* hash function interface */ + +/* default to SHA1 for yarrow 160 */ + +#if !defined(YARROW_HASH_SHA1) && !defined(YARROW_HASH_MD5) +# define YARROW_HASH_SHA1 +#endif + +#if defined(YARROW_HASH_SHA1) + +/* For yarrow160 use SHA1 */ + +#include "openssl/sha.h" + +#define HASH_CTX SHA_CTX +#define HASH_Init(x) SHA1_Init(x) +#define HASH_Update(x, buf, sz) SHA1_Update(x, (void*)buf, sz) +#define HASH_Final(x, digest) SHA1_Final(digest, x) + +#define HASH_DIGEST_SIZE SHA_DIGEST_LENGTH + +#elif defined(YARROW_HASH_MD5) + +#include "openssl/md5.h" + +#define HASH_CTX MD5_CTX +#define HASH_Init(x) MD5_Init(x) +#define HASH_Update(x, buf, sz) MD5_Update(x, (void*)buf, sz) +#define HASH_Final(x, digest) MD5_Final(digest, x) + +#define HASH_DIGEST_SIZE MD5_DIGEST_LENGTH + +#endif + +#endif /* YHASH_H */ |