X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdigester.cc;h=7bcc77646f8245873006fc6f23c675008179b8fd;hb=715d87a4cf9e4697a2f67881776c19c4ce8af581;hp=2d25d41d194c3b1c017fb6b878de9230113b9fa0;hpb=a306df9145d16046e51e8b7ff5222e341e98fdbd;p=dcpomatic.git diff --git a/src/lib/digester.cc b/src/lib/digester.cc index 2d25d41d1..7bcc77646 100644 --- a/src/lib/digester.cc +++ b/src/lib/digester.cc @@ -18,10 +18,10 @@ */ -#include -#include #include "digester.h" -#include "safe_stringstream.h" +#include +#include +#include using std::string; using std::hex; @@ -30,7 +30,7 @@ using std::setw; Digester::Digester () { - MD5_Init (&_context); + md5_init (&_context); } Digester::~Digester () @@ -41,28 +41,28 @@ Digester::~Digester () void Digester::add (void const * data, size_t size) { - MD5_Update (&_context, data, size); + md5_update (&_context, size, reinterpret_cast (data)); } void Digester::add (string const & s) { - add (s.c_str (), s.length ()); + add (s.c_str(), s.length()); } string Digester::get () const { if (!_digest) { - unsigned char digest[MD5_DIGEST_LENGTH]; - MD5_Final (digest, &_context); + unsigned char digest[MD5_DIGEST_SIZE]; + md5_digest (&_context, MD5_DIGEST_SIZE, digest); - SafeStringStream s; - for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) { - s << hex << setfill('0') << setw(2) << ((int) digest[i]); + char hex[MD5_DIGEST_SIZE * 2 + 1]; + for (int i = 0; i < MD5_DIGEST_SIZE; ++i) { + sprintf(hex + i * 2, "%02x", digest[i]); } - _digest = s.str (); + _digest = hex; } return _digest.get ();