pub trait OreEncrypt<T: OreCipher> {
type LeftOutput: OreOutput;
type FullOutput: OreOutput;
// Required methods
fn encrypt_left(&self, cipher: &T) -> Result<Self::LeftOutput, OreError>;
fn encrypt(&self, input: &T) -> Result<Self::FullOutput, OreError>;
}