fixslice64.rs
Contains an unbounded block loopSource references XOR syntax
SHA-256f3ad77958dcf873af432732abe292a82049dbc53e2cdc2311d4be0f99ac926b1
MaleculeH(Db₃)
Evidence
1:3… ! Fixsliced implementations of AES-128, AES-192 and AES-256 (64-bit)
2//! adapted from the C implementation.
3//!
4//! All implementations are fully bitsliced and do not rely on any
5//! Lo …
14:11… ally licensed MIT. Relicensed as Apache 2.0+MIT with permission.
15
16#![allow(clippy::unreadable_literal)]
17
18use crate::Block;
19use cipher::{
20 consts::{U16, U24, U32},
21 generic_array::GenericArray,
22};
23
24/// AES block batch size for this implementation
25pub(crate) const FIXSLICE_BLOCKS: usize = 4;
26
27/// AES-128 round keys
28pub(crate) …
102:52… ..], &key[8..]);
103
104 let mut rcon = 0;
105 let mut rk_off = 8;
106
⋯7 lines
132:27… 0f000f000f & (ui >> 12);
133 tmp[i] = ti
134 ^ (0xfff0fff0fff0fff0 & (ti << 4))
135 ^ (0xff00ff00ff00ff00 & (ti << 8))
136 ^ (0xf000f000f000f000 & (ti …
980:18… (state: &mut [u64]) {
981 debug_assert_eq!(state.len(), 8);
982 state[0] ^= 0xffffffffffffffff;
983 state[1] ^= 0xffffffffffffffff;
984 state[5] ^= 0xffffffffffffffff;
985 state[6] ^= 0xffffffffffffffff;
986}
987
988/// Computation of the MixColumns transformation in the fixsliced representation, with different
989/// rotation …