Permalink
Browse files

Changed to use PolarSSL md5 hashing

  • Loading branch information...
1 parent 0cb5777 commit 62ac758d390a8bd70208afd4270fd8893c19becc @cmouse cmouse committed May 27, 2013
Showing with 20 additions and 15 deletions.
  1. +20 −15 pdns/md5.hh
View
@@ -3,32 +3,37 @@
#include <string>
#include <stdint.h>
+#ifdef HAVE_LIBPOLARSSLSSL
+#include <polarssl/md5.h>
+#else
+#include "ext/polarssl-1.1.2/include/polarssl/md5.h"
+#endif
+
class MD5Summer
{
public:
- MD5Summer();
- void feed(const std::string &str);
- void feed(const char* ptr, size_t len);
- const std::string get() const;
-
- struct md5_context
- {
- uint32_t total[2];
- uint32_t state[4];
- uint8_t buffer[64];
+ MD5Summer() { md5_starts(&d_context); };
+ void feed(const std::string &str) { feed(str.c_str(), str.length()); }
+ void feed(const char* ptr, size_t len) { md5_update(&d_context, reinterpret_cast<const unsigned char*>(ptr), len); };
+ const std::string get() const {
+ md5_context ctx2;
+ unsigned char result[16] = {0};
+ ctx2=d_context;
+ md5_finish(&ctx2, result);
+ return std::string(result, result + sizeof result);
};
-
private:
MD5Summer(const MD5Summer&);
MD5Summer& operator=(const MD5Summer&);
- struct md5_context d_context;
+
+ md5_context d_context;
};
inline std::string pdns_md5sum(const std::string& input)
{
- MD5Summer md5;
- md5.feed(input);
- return md5.get();
+ unsigned char result[16] = {0};
+ md5(reinterpret_cast<const unsigned char*>(input.c_str()), input.length(), result);
+ return std::string(result, result + sizeof result);
}
#endif /* md5.h */

0 comments on commit 62ac758

Please sign in to comment.