use zeroize::Zeroize;
use crate::error::Error;
pub trait StreamCipher: Zeroize {
type E: Error;
fn new_from_slices(key: &[u8], nonce: &[u8]) -> Result<Self, Self::E>
where
Self: Sized;
fn apply_keystream(&mut self, data: &mut [u8]) -> Result<(), Self::E>;
}