pub trait CipherSuite {
// Required methods
fn to_string(&self) -> String;
fn id(&self) -> CipherSuiteId;
fn certificate_type(&self) -> ClientCertificateType;
fn hash_func(&self) -> CipherSuiteHash;
fn is_psk(&self) -> bool;
fn is_initialized(&self) -> bool;
fn init(
&mut self,
master_secret: &[u8],
client_random: &[u8],
server_random: &[u8],
is_client: bool
) -> Result<(), Error>;
fn encrypt(
&self,
pkt_rlh: &RecordLayerHeader,
raw: &[u8]
) -> Result<Vec<u8>, Error>;
fn decrypt(&self, input: &[u8]) -> Result<Vec<u8>, Error>;
}