openzeppelin_crypto/
lib.rs

1/*!
2Common cryptographic procedures for a blockchain environment.
3
4> Note that `crypto` is still `0.*.*`, so breaking changes
5> [may occur at any time](https://semver.org/#spec-item-4). If you must depend
6> on `crypto`, we recommend pinning to a specific version, i.e., `=0.y.z`.
7
8## Verifying Merkle Proofs
9
10[`merkle.rs`](./src/merkle.rs) provides:
11
12- A `verify` function which can prove that some value is part of a
13  [Merkle tree].
14- A `verify_multi_proof` function which can prove multiple values are part of a
15  [Merkle tree].
16
17[Merkle tree]: https://en.wikipedia.org/wiki/Merkle_tree
18
19*/
20
21#![allow(
22    clippy::module_name_repetitions,
23    clippy::inline_always,
24    clippy::unreadable_literal,
25    clippy::many_single_char_names
26)]
27#![cfg_attr(not(test), no_std, no_main)]
28extern crate alloc;
29extern crate core;
30
31pub mod arithmetic;
32pub mod bits;
33#[macro_use]
34pub mod field;
35mod const_helpers;
36pub mod hash;
37pub mod keccak;
38pub mod merkle;
39pub mod pedersen;
40pub mod poseidon2;
41
42pub use keccak::KeccakBuilder;
43
44pub mod curve;
45pub mod eddsa;
46#[cfg(test)]
47mod test_helpers;