/*
- Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
-#include <openssl/md5.h>
-#include <boost/noncopyable.hpp>
+
+#include <nettle/md5.h>
#include <boost/optional.hpp>
#include <string>
-class Digester : public boost::noncopyable
+
+class Digester
{
public:
Digester ();
~Digester ();
+ Digester (Digester const&) = delete;
+ Digester& operator= (Digester const&) = delete;
+
void add (void const * data, size_t size);
template <class T>
std::string get () const;
+ void get (uint8_t* buffer) const;
+
+ int size () const;
+
private:
- mutable MD5_CTX _context;
+ mutable md5_ctx _context;
mutable boost::optional<std::string> _digest;
};