blob: c4b2d5a30b02e615bb893b2388683a3435990221 (
plain)
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
63
64
65
66
67
|
/* --------------------------------- SHS.H ------------------------------- */
/*
* NIST proposed Secure Hash Standard.
*
* Written 2 September 1992, Peter C. Gutmann.
* This implementation placed in the public domain.
*
* Comments to pgut1@cs.aukuni.ac.nz
*/
/* Useful defines/typedefs */
#ifndef SHS_H
#define SHS_H
#include<config.h>
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# else
typedef unsigned int uint8_t __attribute__((mode(QI)));
/* This is a blatant hack: on Solaris 2.5, pthread.h defines uint32_t
in pthread.h, which we sometimes include. We protect our
definition the same way Solaris 2.5 does, to avoid redefining it. */
# ifndef _UINT32_T
typedef unsigned int uint32_t __attribute__((mode(SI)));
# endif
# endif
#endif
#define PROTO
/* The SHS block size and message digest sizes, in bytes */
#define SHS_BLOCKSIZE 64
#define SHS_DIGESTSIZE 20
/* The structure for storing SHS info */
typedef struct {
uint32_t digest [5]; /* Message digest */
uint32_t countLo, countHi; /* 64-bit bit count */
uint32_t data [16]; /* SHS data buffer */
} SHS_INFO;
/* Turn off prototypes if requested */
#if (defined(NOPROTO) && defined(PROTO))
# undef PROTO
#endif
/* Used to remove arguments in function prototypes for non-ANSI C */
#ifdef PROTO
# define OF(a) a
#else /* !PROTO */
# define OF(a) ()
#endif /* ?PROTO */
#define local static
void shsInit OF((SHS_INFO *shsInfo));
void shsUpdate OF((SHS_INFO *shsInfo, uint8_t *buffer, int count));
void shsFinal OF((SHS_INFO *shsInfo));
#endif
|