type Key: Serialize + DeserializeOwned + Default
const KEY_LENGTH: usize
fn encrypt(plain: &[u8], session_key: &Self::Key) -> Vec<u8>
fn decrypt(cipher: &[u8], session_key: &Self::Key) -> Vec<u8>
fn from_bytes(bytes: &[u8]) -> Option<Self::Key>
fn to_bytes(&self) -> Vec<u8>