C
C99
Single-header reference implementation. Uses
memcpy-based loads and explicit byte swapping on
big-endian hosts. No undefined behavior or external dependency.
View hayahash.h.
Verification value · 0x6B558D9D
The C header defines the algorithm. Every port must match its output for every input and seed, independent of host endianness.
Single-header reference implementation. Uses
memcpy-based loads and explicit byte swapping on
big-endian hosts. No undefined behavior or external dependency.
View hayahash.h.
Safe Rust implementation with #![forbid(unsafe_code)].
Tests cover the SMHasher3 verification value and known-answer
vectors shared with the C reference.
View Rust source.
hayahash64() for all byte sequences, lengths,
and 64-bit seeds.
0x6B558D9D and the shared
known-answer vectors in rust/tests/kat.rs.
go/ or zig/.
Start from the C header’s design notes and include automated known-answer tests with the implementation.