summaryrefslogtreecommitdiff
path: root/lib/crypto/MD5Digest.h
diff options
context:
space:
mode:
authorBen Summers <ben@fluffy.co.uk>2005-10-14 08:50:54 +0000
committerBen Summers <ben@fluffy.co.uk>2005-10-14 08:50:54 +0000
commit99f8ce096bc5569adbfea1911dbcda24c28d8d8b (patch)
tree049c302161fea1f2f6223e1e8f3c40d9e8aadc8b /lib/crypto/MD5Digest.h
Box Backup 0.09 with a few tweeks
Diffstat (limited to 'lib/crypto/MD5Digest.h')
-rwxr-xr-xlib/crypto/MD5Digest.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/crypto/MD5Digest.h b/lib/crypto/MD5Digest.h
new file mode 100755
index 00000000..1be01ea9
--- /dev/null
+++ b/lib/crypto/MD5Digest.h
@@ -0,0 +1,57 @@
+// --------------------------------------------------------------------------
+//
+// File
+// Name: MD5Digest.h
+// Purpose: Simple interface for creating MD5 digests
+// Created: 8/12/03
+//
+// --------------------------------------------------------------------------
+
+#ifndef MD5DIGEST_H
+#define MD5DIGEST_H
+
+#include <openssl/md5.h>
+#include <string>
+
+// --------------------------------------------------------------------------
+//
+// Function
+// Name: MD5Digest
+// Purpose: Simple interface for creating MD5 digests
+// Created: 8/12/03
+//
+// --------------------------------------------------------------------------
+class MD5Digest
+{
+public:
+ MD5Digest();
+ virtual ~MD5Digest();
+
+ void Add(const std::string &rString);
+ void Add(const void *pData, int Length);
+
+ void Finish();
+
+ std::string DigestAsString();
+ uint8_t *DigestAsData(int *pLength = 0)
+ {
+ if(pLength) *pLength = sizeof(mDigest);
+ return mDigest;
+ }
+
+ enum
+ {
+ DigestLength = MD5_DIGEST_LENGTH
+ };
+
+ int CopyDigestTo(uint8_t *to);
+
+ bool DigestMatches(uint8_t *pCompareWith) const;
+
+private:
+ MD5_CTX md5;
+ uint8_t mDigest[MD5_DIGEST_LENGTH];
+};
+
+#endif // MD5DIGEST_H
+