ZNC  trunk
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MD5.h
Go to the documentation of this file.
1 /* C implementation by Christophe Devine, C++ "class-ified" by [T3] */
2 
3 #ifndef _MD5_H
4 #define _MD5_H
5 
6 #include <znc/zncconfig.h>
7 #include <string>
8 using std::string;
9 
10 #ifndef uint8
11 #define uint8 unsigned char
12 #endif
13 
14 #ifndef uint32
15 #define uint32 unsigned long int
16 #endif
17 
18 typedef struct
19 {
20  uint32 total[2];
21  uint32 state[4];
22  uint8 buffer[64];
23 }
25 
26 class CMD5 {
27 protected:
28  char m_szMD5[33];
29 
30 public:
31  CMD5();
32  CMD5(const string& sText);
33  CMD5(const char* szText, uint32 nTextLen);
34  ~CMD5();
35 
36  operator string() const
37  {
38  return (string) m_szMD5;
39  }
40 
41  operator char*() const
42  {
43  return (char*)m_szMD5;
44  }
45 
46  char* MakeHash(const char* szText, uint32 nTextLen);
47 
48 protected:
49  void md5_starts( md5_context *ctx ) const;
50  void md5_update( md5_context *ctx, const uint8 *input, uint32 length ) const;
51  void md5_finish( md5_context *ctx, uint8 digest[16] ) const;
52 
53 private:
54  void md5_process( md5_context *ctx, const uint8 data[64] ) const;
55 };
56 
57 #endif /* _MD5_H */
char * MakeHash(const char *szText, uint32 nTextLen)
#define uint8
Definition: MD5.h:11
void md5_finish(md5_context *ctx, uint8 digest[16]) const
void md5_starts(md5_context *ctx) const
Definition: MD5.h:18
void md5_update(md5_context *ctx, const uint8 *input, uint32 length) const
char m_szMD5[33]
Definition: MD5.h:28
Definition: MD5.h:26
#define uint32
Definition: MD5.h:15