1 #ifndef MSP_CRYPTO_MD5_H_
2 #define MSP_CRYPTO_MD5_H_
4 #include <msp/core/inttypes.h>
10 class MD5: public BlockHash<64>
14 UInt64 processed_bytes;
16 static UInt32 sin_table[64];
17 static unsigned rotate_table[16];
21 MD5(const char *, unsigned);
22 MD5(const std::string &);
27 virtual unsigned get_digest_size() const { return 16; }
29 virtual unsigned get_digest(char *, unsigned) const;
32 virtual void process_block(const char *);
34 template<unsigned, unsigned, unsigned>
35 static void perform_round(UInt32 *, const UInt32 *);