pub trait Cipher {
    type Key: U8Array;

    fn name() -> &'static str;
    fn encrypt(
        k: &Self::Key,
        nonce: u64,
        ad: &[u8],
        plaintext: &[u8],
        out: &mut [u8]
    ); fn decrypt(
        k: &Self::Key,
        nonce: u64,
        ad: &[u8],
        ciphertext: &[u8],
        out: &mut [u8]
    ) -> Result<(), ()>; fn key_len() -> usize { ... } fn tag_len() -> usize { ... } fn rekey(k: &Self::Key) -> Self::Key { ... } }
Expand description

An AEAD.

Required Associated Types

Type of key.

Required Methods

Name of this cipher function.

AEAD encryption.

Panics

If out.len() != plaintext.len() + Self::tag_len()

AEAD decryption.

Panics

If out.len() != ciphertext.len() - Self::tag_len()

Provided Methods

Length of key.

Length of auth tag.

All ciphers specified in the spec has tag length 16.

Rekey. Returns a new cipher key as a pseudorandom function of k.

Implementors