projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use dcp::file_to_string().
[dcpomatic.git]
/
src
/
lib
/
digester.cc
diff --git
a/src/lib/digester.cc
b/src/lib/digester.cc
index 70c2babf5e4fd6d054a5db9a5f5594d2f49c3848..8542c75a13358a0a97dc9c2fa51e5c86c63ec8b4 100644
(file)
--- a/
src/lib/digester.cc
+++ b/
src/lib/digester.cc
@@
-1,5
+1,5
@@
/*
/*
- Copyright (C) 2014-20
16
Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-20
21
Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
This file is part of DCP-o-matic.
@@
-18,38
+18,46
@@
*/
*/
+
#include "digester.h"
#include "digester.h"
-#include
<locked_sstream.h>
+#include
"dcpomatic_assert.h"
#include <nettle/md5.h>
#include <iomanip>
#include <nettle/md5.h>
#include <iomanip>
+#include <cstdio>
+
using std::string;
using std::hex;
using std::setfill;
using std::setw;
using std::string;
using std::hex;
using std::setfill;
using std::setw;
+
Digester::Digester ()
{
md5_init (&_context);
}
Digester::Digester ()
{
md5_init (&_context);
}
+
Digester::~Digester ()
{
get ();
}
Digester::~Digester ()
{
get ();
}
+
void
Digester::add (void const * data, size_t size)
{
void
Digester::add (void const * data, size_t size)
{
- md5_update (&_context, size, reinterpret_cast<uint8_t const *>
(data));
+ md5_update (&_context, size, reinterpret_cast<uint8_t const *>(data));
}
}
+
void
Digester::add (string const & s)
{
add (s.c_str(), s.length());
}
void
Digester::add (string const & s)
{
add (s.c_str(), s.length());
}
+
string
Digester::get () const
{
string
Digester::get () const
{
@@
-57,13
+65,27
@@
Digester::get () const
unsigned char digest[MD5_DIGEST_SIZE];
md5_digest (&_context, MD5_DIGEST_SIZE, digest);
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) {
for (int i = 0; i < MD5_DIGEST_SIZE; ++i) {
- s
<< hex << setfill('0') << setw(2) << ((int)
digest[i]);
+ s
printf(hex + i * 2, "%02x",
digest[i]);
}
}
- _digest =
s.str ()
;
+ _digest =
hex
;
}
return _digest.get ();
}
}
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;
+}