Coverage Report

Created: 2025-11-11 06:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/znc/include/znc/MD5.h
Line
Count
Source
1
/* C implementation by Christophe Devine, C++ "class-ified" by [T3] */
2
3
#ifndef ZNC_MD5_H
4
#define ZNC_MD5_H
5
6
#include <znc/zncconfig.h>
7
#include <string>
8
using std::string;
9
10
#ifndef uint8
11
0
#define uint8 unsigned char
12
#endif
13
14
#ifndef uint32
15
0
#define uint32 unsigned long int
16
#endif
17
18
typedef struct {
19
    uint32 total[2];
20
    uint32 state[4];
21
    uint8 buffer[64];
22
} md5_context;
23
24
class CMD5 {
25
  protected:
26
    char m_szMD5[33];
27
28
  public:
29
    CMD5();
30
    CMD5(const string& sText);
31
    CMD5(const char* szText, uint32 nTextLen);
32
    ~CMD5();
33
34
0
    operator string() const { return (string)m_szMD5; }
35
36
0
    operator char*() const { return (char*)m_szMD5; }
37
38
    char* MakeHash(const char* szText, uint32 nTextLen);
39
40
  protected:
41
    void md5_starts(md5_context* ctx) const;
42
    void md5_update(md5_context* ctx, const uint8* input, uint32 length) const;
43
    void md5_finish(md5_context* ctx, uint8 digest[16]) const;
44
45
  private:
46
    void md5_process(md5_context* ctx, const uint8 data[64]) const;
47
};
48
49
#endif /* ZNC_MD5_H */