/haraka-rs

A Rust implementation of the Haraka hash function

Primary LanguageRustMIT LicenseMIT

haraka-rs

Build Status Test Status

A Rust implementation of the Haraka (v2) short-input hash function.

Implementation

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.

Testing

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).

License

MIT