pub mod pc; pub mod bb; #[derive(Debug)] pub enum CipherError { InvalidSize } pub trait PSOCipher { fn encrypt(&mut self, data: &[u8]) -> Result, CipherError>; fn decrypt(&mut self, data: &[u8]) -> Result, CipherError>; fn header_size(&self) -> usize; fn block_size(&self) -> usize { self.header_size() } } pub struct NullCipher { } impl PSOCipher for NullCipher { fn encrypt(&mut self, data: &[u8]) -> Result, CipherError> { Ok(data.to_vec()) } fn decrypt(&mut self, data: &[u8]) -> Result, CipherError> { Ok(data.to_vec()) } fn header_size(&self) -> usize { 4 } }