pub(self) mod constants;
pub(self) mod operation_modes;
pub(self) mod paddings;
mod sm4;

pub use self::sm4::SM4;


#[derive(PartialEq)]
pub enum Operation {
    Encrypt,
    Decrypt,
}


pub enum OperationMode {
    ECB,
    CBC(Vec<u8>),
    CFB(Vec<u8>),
    OFB(Vec<u8>),
}


pub enum PaddingMode {
    Mode1,
    Mode2,
    Mode3(Option<usize>),
}
