Trait askar_crypto::alg::aes::AesAead [−][src]
pub trait AesAead: AesType { type NonceSize: ArrayLength<u8>; type TagSize: ArrayLength<u8>; const KEY_WRAP: bool; fn aes_encrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>; fn aes_decrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>; fn aes_padding_length(len: usize) -> usize; }
This is supported on crate feature
aes
only.Expand description
Specialized trait for performing AEAD encryption
Associated Types
type NonceSize: ArrayLength<u8>
[src]
Expand description
The size of the nonce
type TagSize: ArrayLength<u8>
[src]
Expand description
The size of the authentication tag
Associated Constants
Loading content...Required methods
fn aes_encrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
Expand description
Perform AEAD encryption
fn aes_decrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>
Expand description
Perform AEAD decryption
fn aes_padding_length(len: usize) -> usize
[src]
Expand description
Calculate padding length for a plaintext length
Implementors
impl<C, D> AesAead for AesCbcHmac<C, D> where
Self: AesType,
C: BlockCipher + NewBlockCipher,
D: Update + BlockInput + FixedOutput + Reset + Default + Clone,
C::KeySize: Shl<B1>,
<C::KeySize as Shl<B1>>::Output: ArrayLength<u8>,
[src]
impl<C, D> AesAead for AesCbcHmac<C, D> where
Self: AesType,
C: BlockCipher + NewBlockCipher,
D: Update + BlockInput + FixedOutput + Reset + Default + Clone,
C::KeySize: Shl<B1>,
<C::KeySize as Shl<B1>>::Output: ArrayLength<u8>,
[src]const KEY_WRAP: bool
[src]
type NonceSize = C::BlockSize
type TagSize = C::KeySize
fn aes_encrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
fn aes_decrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>
fn aes_padding_length(len: usize) -> usize
[src]
impl<K> AesAead for AesKeyWrap<K> where
Self: AesType,
K: NewBlockCipher<KeySize = Self::KeySize> + BlockCipher<BlockSize = U16>,
[src]
impl<K> AesAead for AesKeyWrap<K> where
Self: AesType,
K: NewBlockCipher<KeySize = Self::KeySize> + BlockCipher<BlockSize = U16>,
[src]const KEY_WRAP: bool
[src]
type NonceSize = U0
type TagSize = U8
fn aes_encrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
_nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
_nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
fn aes_decrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
_nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
_nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>
fn aes_padding_length(_len: usize) -> usize
[src]
impl<T> AesAead for T where
T: NewAead + AeadInPlace + AesType<KeySize = <T as NewAead>::KeySize>,
[src]
impl<T> AesAead for T where
T: NewAead + AeadInPlace + AesType<KeySize = <T as NewAead>::KeySize>,
[src]const KEY_WRAP: bool
[src]
type NonceSize = T::NonceSize
type TagSize = T::TagSize
fn aes_encrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<usize, Error>
fn aes_decrypt_in_place(
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>
[src]
key: &GenericArray<u8, Self::KeySize>,
buffer: &mut dyn ResizeBuffer,
nonce: &GenericArray<u8, Self::NonceSize>,
aad: &[u8]
) -> Result<(), Error>