NetBurner 3.5.0
PDF Version
 
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
14struct 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
35typedef unsigned char sha1_digest_t[20];
36
37inline void SHA1Init(SHA1_CTX *context)
38{
39 context->ctor();
40}
41inline void SHA1Update(SHA1_CTX *context, const unsigned char *data, unsigned int len)
42{
43 context->Update(data, len);
44}
45inline void SHA1Final(unsigned char digest[20], SHA1_CTX *context)
46{
47 context->Final(digest);
48}
49#endif /* #ifdef _SHA1_H_ */