INNER CODE UNIT · Rust
test_keccak_permute
ethereum/mpz · crates/circuits-data/src/lib.rs:164
fn test_keccak_permute() {
let mut init_state: [u64; 25] = [1u64; 25].map(u64::to_le);
let output: [u64; 25] = evaluate!(KECCAK_PERMUTE, init_state).unwrap();
// Puts expected output into `init_state`.
keccak::Keccak::new().with_f1600(|f| f(&mut init_state));
assert_eq!(output, init_state);
}
// Test vectors from https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
// Returns a tuple (key, key schedule, input, output).
#[allow(dead_code)]
fn aes_vectors() -> ([u8; 16], [u8; 176], [u8; 16], [u8; 16]) {
use zerocopy::IntoBytes;
#[rustfmt::skip]