diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:12:52 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:20:27 +0900 |
| commit | d64089632e82a2548752c7a6baaa68365a795a74 (patch) | |
| tree | 57fc7b85a8c1290975d58fa4761b04a7695bf7e3 /src/LibnettleMessageDigestImpl.cc | |
| parent | c81b1321122e8509b55c94c0cbca0d8d6d319f0c (diff) | |
| parent | a7cd943a06b1a5ff4515b57060b84037f8d01f9f (diff) | |
Merge branch 'master' into random-webseeding
Diffstat (limited to 'src/LibnettleMessageDigestImpl.cc')
| -rw-r--r-- | src/LibnettleMessageDigestImpl.cc | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/LibnettleMessageDigestImpl.cc b/src/LibnettleMessageDigestImpl.cc index c947e771..aedf4e1a 100644 --- a/src/LibnettleMessageDigestImpl.cc +++ b/src/LibnettleMessageDigestImpl.cc @@ -42,24 +42,23 @@ namespace aria2 { namespace { -template<const nettle_hash* hash> +template <const nettle_hash* hash> class MessageDigestBase : public MessageDigestImpl { public: - MessageDigestBase() : ctx_(make_unique<char[]>(hash->context_size)) { + MessageDigestBase() : ctx_(make_unique<char[]>(hash->context_size)) + { reset(); } virtual ~MessageDigestBase() {} - static size_t length() { + static size_t length() { return hash->digest_size; } + virtual size_t getDigestLength() const CXX11_OVERRIDE + { return hash->digest_size; } - virtual size_t getDigestLength() const CXX11_OVERRIDE { - return hash->digest_size; - } - virtual void reset() CXX11_OVERRIDE { - hash->init(ctx_.get()); - } - virtual void update(const void* data, size_t length) CXX11_OVERRIDE { + virtual void reset() CXX11_OVERRIDE { hash->init(ctx_.get()); } + virtual void update(const void* data, size_t length) CXX11_OVERRIDE + { auto bytes = reinterpret_cast<const uint8_t*>(data); while (length) { size_t l = std::min(length, (size_t)std::numeric_limits<uint32_t>::max()); @@ -68,7 +67,8 @@ public: bytes += l; } } - virtual void digest(unsigned char* md) CXX11_OVERRIDE { + virtual void digest(unsigned char* md) CXX11_OVERRIDE + { hash->digest(ctx_.get(), getDigestLength(), md); } @@ -91,13 +91,12 @@ std::unique_ptr<MessageDigestImpl> MessageDigestImpl::sha1() } MessageDigestImpl::hashes_t MessageDigestImpl::hashes = { - { "sha-1", make_hi<MessageDigestSHA1>() }, - { "sha-224", make_hi<MessageDigestSHA224>() }, - { "sha-256", make_hi<MessageDigestSHA256>() }, - { "sha-384", make_hi<MessageDigestSHA384>() }, - { "sha-512", make_hi<MessageDigestSHA512>() }, - { "md5", make_hi<MessageDigestMD5>() }, - ADLER32_MESSAGE_DIGEST -}; + {"sha-1", make_hi<MessageDigestSHA1>()}, + {"sha-224", make_hi<MessageDigestSHA224>()}, + {"sha-256", make_hi<MessageDigestSHA256>()}, + {"sha-384", make_hi<MessageDigestSHA384>()}, + {"sha-512", make_hi<MessageDigestSHA512>()}, + {"md5", make_hi<MessageDigestMD5>()}, + ADLER32_MESSAGE_DIGEST}; } // namespace aria2 |
