Skip to main content

Aead

Trait Aead 

Source
pub trait Aead: Sized {
    const TAG_SIZE: usize;
    const NONCE_SIZE: usize;

    // Required methods
    fn encrypt_in_place(
        &self,
        in_out: &mut [u8],
        nonce: &[u8],
        aad: &[u8],
    ) -> Tag;
    fn decrypt_in_place(
        &self,
        in_out: &mut [u8],
        nonce: &[u8],
        aad: &[u8],
        tag: &[u8],
    ) -> Result<(), AeadError>;

    // Provided methods
    fn encrypt(&self, plaintext: &[u8], nonce: &[u8], aad: &[u8]) -> Vec<u8>  { ... }
    fn decrypt(
        &self,
        ciphertext: &[u8],
        nonce: &[u8],
        aad: &[u8],
    ) -> Result<Vec<u8>, AeadError> { ... }
}

Required Associated Constants§

Required Methods§

Source

fn encrypt_in_place(&self, in_out: &mut [u8], nonce: &[u8], aad: &[u8]) -> Tag

Source

fn decrypt_in_place( &self, in_out: &mut [u8], nonce: &[u8], aad: &[u8], tag: &[u8], ) -> Result<(), AeadError>

Provided Methods§

Source

fn encrypt(&self, plaintext: &[u8], nonce: &[u8], aad: &[u8]) -> Vec<u8>

Source

fn decrypt( &self, ciphertext: &[u8], nonce: &[u8], aad: &[u8], ) -> Result<Vec<u8>, AeadError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§