binius_hash/lib.rs
1// Copyright 2023-2025 Irreducible Inc.
2
3//! Implementations of cryptographic hash functions and related utilities used in Binius.
4//!
5//! The default hash function Binius uses is [Grøstl-256]. Grøstl-256 was a SHA-3 competition
6//! finalist and based on the design of the AES block cipher. Binius selects Grøstl-256 as the
7//! default hash function because it internally makes use of the 8-bit Rijndael binary field, and
8//! so can be arithmetized efficiently with a Binius constraint system.
9//!
10//! This crate also provides an implementation of [Vision Mark-32], a cryptographic sponge function
11//! designed for efficient Binius arithmetization.
12//!
13//! [Grøstl-256]: <https://www.groestl.info/>
14//! [Vision Mark-32]: <https://eprint.iacr.org/2024/633>
15
16#![cfg_attr(
17 all(target_arch = "x86_64", not(feature = "stable_only")),
18 feature(stdarch_x86_avx512)
19)]
20
21pub mod compression;
22mod groestl;
23pub mod hasher;
24pub mod permutation;
25mod serialization;
26pub mod sha2;
27mod vision;
28
29pub use compression::*;
30pub use groestl::*;
31pub use hasher::*;
32pub use serialization::*;
33pub use vision::*;