Initial revision
[silc.git] / lib / silccrypt / sha1_internal.h
1 /*
2 SHA-1 in C
3 By Steve Reid <steve@edmweb.com>
4 100% Public Domain
5 */
6 /* Header portion split from main code for convenience (AYB 3/02/98) */
7
8 #ifndef SHA1_INTERNAL_H
9 #define SHA1_INTERNAL_H
10
11 /*
12 Test Vectors (from FIPS PUB 180-1)
13 "abc"
14   A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
15 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
16   84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
17 A million repetitions of "a"
18   34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
19 */
20
21 /* Context declaration */
22 typedef struct {
23     unsigned long state[5];
24     unsigned long count[2];
25     unsigned char buffer[64];
26 } SHA1_CTX;
27
28 /* Function forward declerations */
29 void SHA1Transform(unsigned long state[5], unsigned char buffer[64]);
30 void SHA1Init(SHA1_CTX* context);
31 void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int len);
32 void SHA1Final(unsigned char digest[20], SHA1_CTX* context);
33
34 #endif