remove windows-style line endings
[asterisk/asterisk.git] / include / asterisk / sha1.h
1 /*
2  *  sha1.h
3  *
4  *  Description:
5  *      This is the header file for code which implements the Secure
6  *      Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
7  *      April 17, 1995.
8  *
9  *      Many of the variable names in this code, especially the
10  *      single character names, were used because those were the names
11  *      used in the publication.
12  *
13  *      Please read the file sha1.c for more information.
14  *
15  */
16
17
18 #ifndef _SHA1_H_
19 #define _SHA1_H_
20
21
22
23 #if defined(__OpenBSD__) || defined( __FreeBSD__)
24 #include <inttypes.h>
25 #else
26 #include <stdint.h>
27 #endif
28
29 /*
30  * If you do not have the ISO standard stdint.h header file, then you
31  * must typdef the following:
32  *    name              meaning
33  *  uint32_t         unsigned 32 bit integer
34  *  uint8_t          unsigned 8 bit integer (i.e., unsigned char)
35  *  int_least16_t    integer of >= 16 bits
36  *
37  */
38
39 #ifndef _SHA_enum_
40 #define _SHA_enum_
41 enum
42 {
43     shaSuccess = 0,
44     shaNull,            /* Null pointer parameter */
45     shaInputTooLong,    /* input data too long */
46     shaStateError       /* called Input after Result */
47 };
48 #endif
49 #define SHA1HashSize 20
50
51 /*
52  *  This structure will hold context information for the SHA-1
53  *  hashing operation
54  */
55 typedef struct SHA1Context
56 {
57     uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest  */
58
59     uint32_t Length_Low;            /* Message length in bits      */
60     uint32_t Length_High;           /* Message length in bits      */
61
62                                /* Index into message block array   */
63     int_least16_t Message_Block_Index;
64     uint8_t Message_Block[64];      /* 512-bit message blocks      */
65
66     int Computed;               /* Is the digest computed?         */
67     int Corrupted;             /* Is the message digest corrupted? */
68 } SHA1Context;
69
70 /*
71  *  Function Prototypes
72  */
73
74
75 int SHA1Reset(  SHA1Context *);
76 int SHA1Input(  SHA1Context *,
77                 const uint8_t *,
78                 unsigned int);
79 int SHA1Result( SHA1Context *,
80                 uint8_t Message_Digest[SHA1HashSize]);
81
82 #endif