*/
#include "digester.h"
-#include <locked_sstream.h>
+#include "dcpomatic_assert.h"
#include <nettle/md5.h>
#include <iomanip>
+#include <cstdio>
using std::string;
using std::hex;
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;
+}