hwp/hwp/utils/
crypto.rs

1use aes::cipher::KeyInit;
2use aes::cipher::{generic_array::GenericArray, BlockDecrypt};
3use aes::Aes128;
4
5pub fn decrypt_aes_128_ecb(key: &[u8], data: &[u8]) -> Vec<u8> {
6    let mut blocks = Vec::new();
7    (0..data.len()).step_by(16).for_each(|x| {
8        blocks.push(GenericArray::clone_from_slice(&data[x..x + 16]));
9    });
10
11    let cipher = Aes128::new_from_slice(&key).unwrap();
12    cipher.decrypt_blocks(&mut blocks);
13
14    blocks.into_iter().flatten().map(|x| x as u8).collect()
15}