fn apply_permutation()

in crypto/src/hash/rescue/rp64_256/tests.rs [48:83]


fn apply_permutation() {
    let mut state: [BaseElement; STATE_WIDTH] = [
        BaseElement::new(0),
        BaseElement::new(1),
        BaseElement::new(2),
        BaseElement::new(3),
        BaseElement::new(4),
        BaseElement::new(5),
        BaseElement::new(6),
        BaseElement::new(7),
        BaseElement::new(8),
        BaseElement::new(9),
        BaseElement::new(10),
        BaseElement::new(11),
    ];

    Rp64_256::apply_permutation(&mut state);

    // expected values are obtained by executing sage reference implementation code
    let expected = vec![
        BaseElement::new(10809974140050983728),
        BaseElement::new(6938491977181280539),
        BaseElement::new(8834525837561071698),
        BaseElement::new(6854417192438540779),
        BaseElement::new(4476630872663101667),
        BaseElement::new(6292749486700362097),
        BaseElement::new(18386622366690620454),
        BaseElement::new(10614098972800193173),
        BaseElement::new(7543273285584849722),
        BaseElement::new(9490898458612615694),
        BaseElement::new(9030271581669113292),
        BaseElement::new(10101107035874348250),
    ];

    assert_eq!(expected, state);
}