feat: add groestl hash functions with unit tests #80
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Groestl hash function is used by some crypto-curriencies as part of their proof of work algorithm. Examples include Groestlcoin. Others use Groestl along with about 10 or more others that are chained together.
Groestl was one of the SHA-3 candidates. While the Groestl hash function can support many output widths, this PR proposed the addition of two variants of the Groestl that returns 512 bits.
groestl512
- returns the full 512 bit (64 byte) hash value generated by Groestl512 hash function.groestl256
- returns the first 256 bits (32 bytes) of the Groestl512 hash functionThis PR was inspired primarily by https://github.com/Groestlcoin/groestl-hash-js, the code of which was heavily refactored to follow the scheme of noble-hashes.