diff --git a/Chaos/Hash/Md5.hpp b/Chaos/Hash/Md5.hpp index 596d1d6..e1e3ade 100644 --- a/Chaos/Hash/Md5.hpp +++ b/Chaos/Hash/Md5.hpp @@ -187,12 +187,13 @@ class Md5Hasher : public Hasher { public: Md5Hasher() - : BlockSize_(0) - , Word_(0) - , WordBytesPacked_(0) - , MessageSizeBytes_(0) { - Block_.fill(0); + ResetImpl(); + } + + void Reset() + { + ResetImpl(); } template @@ -280,6 +281,17 @@ private: uint64_t MessageSizeBytes_; + void ResetImpl() + { + Buffer_ = Inner_::Buffer(); + Block_.fill(0); + + BlockSize_ = 0; + Word_ = 0; + WordBytesPacked_ = 0; + MessageSizeBytes_ = 0; + } + template uint64_t UpdateImpl(InputIt begin, InputIt end) {