/* */ #include "Adler32MessageDigestImpl.h" #include #include #include "a2netcompat.h" namespace aria2 { Adler32MessageDigestImpl::Adler32MessageDigestImpl() : adler_(adler32(0, Z_NULL, 0)) { } size_t Adler32MessageDigestImpl::getDigestLength() const { return length(); } void Adler32MessageDigestImpl::reset() { adler_ = adler32(0, Z_NULL, 0); } void Adler32MessageDigestImpl::update(const void* data, size_t length) { adler_ = adler32(adler_, reinterpret_cast(data), length); } void Adler32MessageDigestImpl::digest(unsigned char* md) { auto adler = htonl(adler_); memcpy(md, &adler, getDigestLength()); } size_t Adler32MessageDigestImpl::length() { return 4; } } // namespace aria2