0
1
Looking at Bitcoin Core implementation of SHA256, I noticed it was a bit different from OpenSSL's implementation.
In OpenSSL, you would initialize a variable with SHA256_CTX when in Bitcoin Core it's done with either valtype (aka. std::vector<unsigned char>) or uint256. Also, you would go through the steps INIT, Update, Final.
In Bitcoin Core, it's Write and Finalize.
It would be awesome if someone could go through the basic steps and perhaps explain why it's implemented differently. Thank you!
Could you explain the difference between valtype and uint256? Why is one used in some parts of the code and the other in other parts of the code? – kcalvinalvin – 2019-06-06T08:25:40.277
valtype is an alias for a byte vector. uint256 is a 256-bit blob. – Pieter Wuille – 2019-06-06T08:29:07.407