grammers_crypto/
obfuscated.rs1#[allow(deprecated)] use aes::cipher::{KeyIvInit, StreamCipher, generic_array::GenericArray};
11
12pub struct ObfuscatedCipher {
17 rx: ctr::Ctr128BE<aes::Aes256>,
18 tx: ctr::Ctr128BE<aes::Aes256>,
19}
20
21impl ObfuscatedCipher {
22 pub fn new(init: &[u8; 64]) -> Self {
23 let init_rev = init.iter().copied().rev().collect::<Vec<_>>();
24 #[allow(deprecated)] Self {
26 rx: ctr::Ctr128BE::<aes::Aes256>::new(
27 GenericArray::from_slice(&init_rev[8..40]),
28 GenericArray::from_slice(&init_rev[40..56]),
29 ),
30 tx: ctr::Ctr128BE::<aes::Aes256>::new(
31 GenericArray::from_slice(&init[8..40]),
32 GenericArray::from_slice(&init[40..56]),
33 ),
34 }
35 }
36
37 pub fn encrypt(&mut self, buffer: &mut [u8]) {
38 self.tx.apply_keystream(buffer);
39 }
40
41 pub fn decrypt(&mut self, buffer: &mut [u8]) {
42 self.rx.apply_keystream(buffer);
43 }
44}