/*
** Copyright 2001-2005 Double Precision, Inc.
** See COPYING for distribution information.
*/
#define SHA1_INTERNAL
#include "sha1.h"
#include "../libhmac/hmac.h"
static const char rcsid[]="$Id: hmac.c,v 1.2 2005/02/21 03:18:30 mrsam Exp $";
static void alloc_context_sha1( void (*func)(void *, void *), void *arg)
{
struct SHA1_CONTEXT c;
(*func)((void *)&c, arg);
}
static void alloc_hash_sha1( void (*func)(unsigned char *, void *), void *arg)
{
unsigned char c[SHA1_DIGEST_SIZE];
(*func)(c, arg);
}
struct hmac_hashinfo hmac_sha1 = {
"sha1",
SHA1_BLOCK_SIZE,
SHA1_DIGEST_SIZE,
sizeof(struct SHA1_CONTEXT),
(void (*)(void *))sha1_context_init,
(void (*)(void *, const void *, unsigned))sha1_context_hashstream,
(void (*)(void *, unsigned long))sha1_context_endstream,
(void (*)(void *, unsigned char *))sha1_context_digest,
(void (*)(void *, const unsigned char *))sha1_context_restore,
alloc_context_sha1,
alloc_hash_sha1};
static void alloc_context_sha256( void (*func)(void *, void *), void *arg)
{
struct SHA256_CONTEXT c;
(*func)((void *)&c, arg);
}
static void alloc_hash_sha256( void (*func)(unsigned char *, void *), void *arg)
{
unsigned char c[SHA256_DIGEST_SIZE];
(*func)(c, arg);
}
struct hmac_hashinfo hmac_sha256 = {
"sha256",
SHA256_BLOCK_SIZE,
SHA256_DIGEST_SIZE,
sizeof(struct SHA256_CONTEXT),
(void (*)(void *))sha256_context_init,
(void (*)(void *, const void *, unsigned))sha256_context_hashstream,
(void (*)(void *, unsigned long))sha256_context_endstream,
(void (*)(void *, unsigned char *))sha256_context_digest,
(void (*)(void *, const unsigned char *))sha256_context_restore,
alloc_context_sha256,
alloc_hash_sha256};
syntax highlighted by Code2HTML, v. 0.9.1