1 #ifndef MSP_CRYPTO_MD5_H_
2 #define MSP_CRYPTO_MD5_H_
4 #include <msp/core/inttypes.h>
10 class MD5: public Hash
14 UInt64 processed_bytes;
16 unsigned unprocessed_bytes;
18 static UInt32 sin_table[64];
19 static unsigned rotate_table[16];
23 MD5(const char *, unsigned);
24 MD5(const std::string &);
29 virtual unsigned get_digest_size() const { return 16; }
32 virtual void update(const char *, unsigned);
33 virtual unsigned get_digest(char *, unsigned) const;
36 void process_block(const char *);
38 template<unsigned, unsigned, unsigned>
39 static void perform_round(UInt32 *, const UInt32 *);