/* */ #ifndef _D_MESSAGE_DIGEST_HELPER_H_ #define _D_MESSAGE_DIGEST_HELPER_H_ #include "common.h" #include "SharedHandle.h" #include namespace aria2 { class BinaryStream; class MessageDigestHelper { public: /** * Returns message digest in hexadecimal notation. * Digest algorithm is specified by algo. */ static std::string digest(const std::string& algo, const SharedHandle& bs, int64_t offset, int64_t length); /** * Calculates message digest of file denoted by filename. */ static std::string digest(const std::string& algo, const std::string& filename); static std::string digest(const std::string& algo, const void* data, int32_t length); static std::string digestString(const std::string& algo, const std::string& data) { return digest(algo, data.c_str(), data.size()); } /** * Stores *raw* message digest into md. * Throws exception when mdLength is less than the size of message digest. */ static void digest(unsigned char* md, int32_t mdLength, const std::string& algo, const void* data, int32_t length); }; } // namespace aria2 #endif // _D_MESSAGE_DIGEST_HELPER_H_