X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fdigester.cc;h=452452ba4b1c1091622a001c639446d83f2f2989;hp=70c2babf5e4fd6d054a5db9a5f5594d2f49c3848;hb=8f12e84009d7c2685bb2eeb32665876463d4e6e5;hpb=422be0eece2bf6ee80db1d3c21553cd82efff789 diff --git a/src/lib/digester.cc b/src/lib/digester.cc index 70c2babf5..452452ba4 100644 --- a/src/lib/digester.cc +++ b/src/lib/digester.cc @@ -19,9 +19,10 @@ */ #include "digester.h" -#include +#include "dcpomatic_assert.h" #include #include +#include using std::string; using std::hex; @@ -57,13 +58,26 @@ Digester::get () const unsigned char digest[MD5_DIGEST_SIZE]; md5_digest (&_context, MD5_DIGEST_SIZE, digest); - locked_stringstream s; + char hex[MD5_DIGEST_SIZE * 2 + 1]; for (int i = 0; i < MD5_DIGEST_SIZE; ++i) { - s << hex << setfill('0') << setw(2) << ((int) digest[i]); + sprintf(hex + i * 2, "%02x", digest[i]); } - _digest = s.str (); + _digest = hex; } return _digest.get (); } + +void +Digester::get (uint8_t* buffer) const +{ + md5_digest (&_context, MD5_DIGEST_SIZE, buffer); +} + + +int +Digester::size () const +{ + return MD5_DIGEST_SIZE; +}