A fine-tuned implementation of the SHA256 hashing algorithm.
Dependents: EntropySource Wallet_v1
SHA256.h
- Committer:
- Remco
- Date:
- 2011-06-20
- Revision:
- 1:147d17bb1d36
- Parent:
- 0:772b6de3a841
- Child:
- 2:1991439ea6b8
File content as of revision 1:147d17bb1d36:
// Author: Remco Bloemen // Based on: // http://en.wikipedia.org/wiki/SHA-2 // http://www.iwar.org.uk/comsec/resources/cipher/sha256-384-512.pdf #include <string.h> #include <string> class SHA256 { public: SHA256() { reset(); } void reset(); void append(const char* data, int size); void append(const char* str) { append(str, strlen(str)); } void append(const std::string& str) { append(str.data(), str.length()); } void finalize(); const char* digest() { return reinterpret_cast<char*>(hash); } std::string rawdigest() { return std::string(digest(), 32); } private: void process_chunk(); int length; unsigned int hash[8]; unsigned int w[64]; };