A Rust implementation of the Haraka (v2) short-input hash function.
As for the original Haraka implementation in C, this project relies on AES-NI instructions, which are available on the stable Rust compiler via intrinsics.
Besides the original 5-round Haraka functions (with 256 and 512 bits of input), extensions to 6 rounds are provided. This is to target collision resistance, contrary to the 5-round versions that only provide preimage resistance.
Unit tests are implemented to check the logic of Haraka's building blocks. High-level test vectors were generated from the Python implementation of Haraka (for the 5-round versions).