mod aes_ctr_hmac;
pub use aes_ctr_hmac::*;
mod aes_gcm_hkdf;
pub use aes_gcm_hkdf::*;
pub mod noncebased;
#[derive(Clone, Copy)]
pub enum AesVariant {
Aes128,
Aes256,
}
pub fn validate_aes_key_size(size_in_bytes: usize) -> Result<AesVariant, tink_core::TinkError> {
match size_in_bytes {
16 => Ok(AesVariant::Aes128),
32 => Ok(AesVariant::Aes256),
_ => Err(format!("invalid AES key size; want 16 or 32, got {}", size_in_bytes).into()),
}
}
impl AesVariant {
pub fn key_size(&self) -> usize {
match self {
AesVariant::Aes128 => 16,
AesVariant::Aes256 => 32,
}
}
}