--- a/src/utils/md5.h
+++ b/src/utils/md5.h
@@ -26,8 +26,7 @@
documentation and/or software.
*/
-extern "C" {
-
+/* Base functions from original file */
/* MD5 context. */
typedef struct MD5Context {
unsigned int state[4]; /* state (ABCD) */
@@ -35,9 +34,16 @@
unsigned char buffer[64]; /* input buffer */
} MD5_CTX;
-void MD5Init (MD5_CTX *);
-void MD5Update (MD5_CTX *, const unsigned char *, unsigned int);
-void MD5Final (unsigned char [16], MD5_CTX *);
-}
+extern void MD5Init (MD5_CTX *);
+extern void MD5Update (MD5_CTX *, const unsigned char *, unsigned int);
+extern void MD5Final (unsigned char [16], MD5_CTX *);
+/* Convenience / utilities */
+#include <string>
+using std::string;
+extern void MD5Final(string& digest, MD5_CTX *);
+extern bool MD5File(const string& filename, string& digest, string *reason);
+extern string& MD5String(const string& data, string& digest);
+extern string& MD5HexPrint(const string& digest, string& xdigest);
+extern string& MD5HexScan(const string& xdigest, string& digest);
#endif /* _MD5_H_ */