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
use crate::{Buffer, Permutation}; const ROUNDS: usize = 24; const RC: [u64; ROUNDS] = [ 1u64, 0x8082u64, 0x800000000000808au64, 0x8000000080008000u64, 0x808bu64, 0x80000001u64, 0x8000000080008081u64, 0x8000000000008009u64, 0x8au64, 0x88u64, 0x80008009u64, 0x8000000au64, 0x8000808bu64, 0x800000000000008bu64, 0x8000000000008089u64, 0x8000000000008003u64, 0x8000000000008002u64, 0x8000000000000080u64, 0x800au64, 0x800000008000000au64, 0x8000000080008081u64, 0x8000000000008080u64, 0x80000001u64, 0x8000000080008008u64, ]; keccak_function!("`keccak-f[1600, 24]`", keccakf, ROUNDS, RC); pub struct KeccakF; impl Permutation for KeccakF { fn execute(buffer: &mut Buffer) { keccakf(buffer.words()); } }