1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
//! An implementation of the `keccak-F[1600,800,400,200]`.
//!
//! All `Keccak-F[]` permutation is fully unrolled; it's nearly as fast
//! as the Keccak team's optimized permutation. Use `macro` to generate
//! functions `Keccak-F[]` with different parameters.
//!
//! ## Usage
//!
//! Add this to your `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! keccakf = "0.1.2"
//! ```
//!
//! then you can use this code:
//!
//! ```rust
//! use keccakf::{Keccak1600State, Permutation};
//!
//! let mut state = Keccak1600State::default();
//! state.permute();
//! ```
//!
//! Original implemntation in Rust:
//! [tiny-keccak](https://github.com/debris/tiny-keccak)
//!
//! Test vectors:
//! [XKCP](https://github.com/XKCP/XKCP)
#![no_std]
mod prelude;
pub use prelude::*;
mod macros;
mod keccakfs;
pub use keccakfs::*;
mod state;
pub use state::*;