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}