NetBurner 3.1
sha1.h
1 /*NB_REVISION*/
2 
3 /*NB_COPYRIGHT*/
4 
5 #ifndef _SHA1_H_
6 #define _SHA1_H_
7 
8 // NB Definitions
9 #include <predef.h>
10 
11 // NB Libs
12 #include <hash.h>
13 
14 struct SHA1_CTX : public HASH_CTX
15 {
16  unsigned long state[5];
17  unsigned long count[2];
18  unsigned char buffer[64];
19 #ifdef SSL_TLS_SUPPORT
20  unsigned char hmac_inner_pad[64];
21  unsigned char hmac_outer_pad[64];
22 #endif
23  void __Init();
24  void __Update(const unsigned char *data, unsigned int len);
25  void __Final(unsigned char *digest);
26  int __GetDigestLen() const;
27  int __GetOIDLen() const;
28  const unsigned char *__GetOID() const;
29  void ctor();
30 
31  private:
32  static __vtable_HASH_CTX_t _s__vtable;
33 };
34 
35 typedef unsigned char sha1_digest_t[20];
36 
37 inline void SHA1Init(SHA1_CTX *context)
38 {
39  context->ctor();
40 }
41 inline void SHA1Update(SHA1_CTX *context, const unsigned char *data, unsigned int len)
42 {
43  context->Update(data, len);
44 }
45 inline void SHA1Final(unsigned char digest[20], SHA1_CTX *context)
46 {
47  context->Final(digest);
48 }
49 #endif /* #ifdef _SHA1_H_ */