use super::*;
pub fn encode_block(data: &mut [u8]) {
permute(data, key_data_r());
}
pub fn decode_block(data: &mut [u8]) {
permute(data, key_data_i());
}
fn permute(data: &mut [u8], table: &[u8]) {
for b in data.iter_mut() {
*b = table[*b as usize];
}
}
#[cfg(test)]
mod tests {
use super::*;
const SAMPLE: &[u8] = b"Hello, World!";
#[test]
fn test_encode_block() {
let mut data = SAMPLE.to_vec();
encode_block(&mut data);
assert_ne!(SAMPLE, &data);
}
#[test]
fn test_decode_block() {
let mut data = SAMPLE.to_vec();
encode_block(&mut data);
decode_block(&mut data);
assert_eq!(SAMPLE, &data);
}
}