1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
/*
** Copyright 2001-2005 Double Precision, Inc.
** See COPYING for distribution information.
*/
#define SHA1_INTERNAL
#include "sha1.h"
#include "../libhmac/hmac.h"
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};
|