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

Loading content...

Associated Constants

const KEY_WRAP: bool[src]

Expand description

Flag indicating a key-wrapping algorithm

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]

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]

Expand description

Perform AEAD decryption

fn aes_padding_length(len: usize) -> usize[src]

Expand description

Calculate padding length for a plaintext length

Loading content...

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]

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]

fn aes_decrypt_in_place(
    key: &GenericArray<u8, Self::KeySize>,
    buffer: &mut dyn ResizeBuffer,
    nonce: &GenericArray<u8, Self::NonceSize>,
    aad: &[u8]
) -> Result<(), Error>
[src]

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]

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]

fn aes_decrypt_in_place(
    key: &GenericArray<u8, Self::KeySize>,
    buffer: &mut dyn ResizeBuffer,
    _nonce: &GenericArray<u8, Self::NonceSize>,
    aad: &[u8]
) -> Result<(), Error>
[src]

fn aes_padding_length(_len: usize) -> usize[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]

fn aes_decrypt_in_place(
    key: &GenericArray<u8, Self::KeySize>,
    buffer: &mut dyn ResizeBuffer,
    nonce: &GenericArray<u8, Self::NonceSize>,
    aad: &[u8]
) -> Result<(), Error>
[src]

fn aes_padding_length(_len: usize) -> usize[src]

Loading content...