1/* Copyright (c) 1998,2004 Apple Computer, Inc.  All Rights Reserved.
2 *
3 * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT
4 * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE
5 * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE COMPUTER, INC. AND THE
6 * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE COMPUTER,
7 * INC.  ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL
8 * EXPOSE YOU TO LIABILITY.
9 ***************************************************************************
10 *
11 * SHA1_priv.h - private low-level API for SHA-1 hash algorithm
12 *
13 * Revision History
14 * ----------------
15 * 22 Aug 96	Doug Mitchell at NeXT
16 *	Created.
17 */
18
19/* Useful defines/typedefs */
20
21#ifndef	_CK_SHA1_PRIV_H_
22#define	_CK_SHA1_PRIV_H_
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28typedef unsigned char   BYTE;
29typedef unsigned long   LONG;
30
31/* The SHS block size and message digest sizes, in bytes */
32
33#define SHS_BLOCKSIZE   64
34#define SHS_DIGESTSIZE  20
35
36/* The structure for storing SHS info */
37
38typedef struct {
39	       LONG digest[ 5 ];            /* Message digest */
40	       LONG countLo, countHi;       /* 64-bit bit count */
41	       LONG data[ 80 ];             /* SHS data buffer */
42	       } SHS_INFO;
43
44extern void shsInit(SHS_INFO *shsInfo);
45extern void shsUpdate(SHS_INFO *shsInfo,
46	const BYTE *buffer,
47	int count);
48extern void shsFinal(SHS_INFO *shsInfo);
49
50#ifdef __cplusplus
51}
52#endif
53
54#endif	/* _CK_SHA1_PRIV_H_ */
55