#include <stdexcept>
MD5::MD5() :
+ buffer(),
+ digest(),
finalized()
{
init();
void MD5::update(std::istream& stream) {
uint8_t buffer_[1024];
- int len;
while (stream.good()) {
stream.read((char*)buffer_, 1024); // note that return value of read is unusable.
- len=stream.gcount();
+ int len = stream.gcount();
update(buffer_, len);
}
}
void MD5::update(std::ifstream& stream) {
uint8_t buffer_[1024];
- int len;
while (stream.good()) {
stream.read((char*)buffer_, 1024); // note that return value of read is unusable.
- len=stream.gcount();
+ int len = stream.gcount();
update(buffer_, len);
}
}
s[32]='\0';
- return s;
+ // Create string from 's'
+ std::string s_str = std::string(s);
+ delete[] s;
+
+ return s_str;
}
std::ostream& operator<<(std::ostream &stream, MD5 context) {