A fine-tuned implementation of the SHA256 hashing algorithm.
Dependents: EntropySource Wallet_v1
Diff: SHA256.h
- Revision:
- 0:772b6de3a841
- Child:
- 1:147d17bb1d36
diff -r 000000000000 -r 772b6de3a841 SHA256.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SHA256.h Mon Jun 20 00:23:22 2011 +0000 @@ -0,0 +1,25 @@ +// 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(), 8); } +private: + void process_chunk(); + int length; + unsigned int hash[8]; + unsigned int w[64]; +}; +