diff --git a/src/des.rs b/src/des.rs index 9d0490e..6683694 100644 --- a/src/des.rs +++ b/src/des.rs @@ -132,12 +132,11 @@ fn key_schedule(key: u64) -> [u64; 16] { fn f(r: u32, subkey: u64) -> u32 { let expanded = permute(r as u64, &E, 32) ^ subkey; let mut s_out = 0u32; - // S-boxes - for i in 0..8 { + for (i, sbox) in SBOX.iter().enumerate() { let block = ((expanded >> (42 - 6 * i)) & 0x3F) as u8; let row = ((block & 0x20) >> 4) | (block & 1); let col = (block & 0x1E) >> 1; - let val = SBOX[i][row as usize][col as usize] as u32; + let val = sbox[row as usize][col as usize] as u32; s_out |= val << (28 - 4 * i); } permute(s_out as u64, &P, 32) as u32