embassy-crypto

Crates

git

Versions

default

Flavors

Skip to main content

Aes128Ccm

Trait Aes128Ccm 

Source
pub trait Aes128Ccm {
    type Context: Send + Sync + Clone;

    // Required methods
    fn init(key: &[u8; 16]) -> Self::Context;
    fn encrypt(
        ctx: &Self::Context,
        nonce: &[u8],
        aad: &[u8],
        buffer: InOutBuf<'_, '_, u8>,
        tag: &mut [u8],
    ) -> Result<(), Error>;
    fn decrypt(
        ctx: &Self::Context,
        nonce: &[u8],
        aad: &[u8],
        buffer: InOutBuf<'_, '_, u8>,
        tag: &[u8],
    ) -> Result<(), Error>;
}
Expand description

AES-128 CCM driver.

Required Associated Types§

Source

type Context: Send + Sync + Clone

Opaque storage for the implementation’s key schedule.

Required Methods§

Source

fn init(key: &[u8; 16]) -> Self::Context

Initialize with a 128-bit key.

Source

fn encrypt( ctx: &Self::Context, nonce: &[u8], aad: &[u8], buffer: InOutBuf<'_, '_, u8>, tag: &mut [u8], ) -> Result<(), Error>

Encrypt buffer and produce the authentication tag.

The tag length is the length of the tag slice. Nonce and tag lengths not allowed by the spec return Error::InvalidInput.

Source

fn decrypt( ctx: &Self::Context, nonce: &[u8], aad: &[u8], buffer: InOutBuf<'_, '_, u8>, tag: &[u8], ) -> Result<(), Error>

Verify the authentication tag and decrypt buffer.

The tag length is the length of the tag slice. Nonce and tag lengths not allowed by the spec return Error::InvalidInput. The tag is verified in constant time; on mismatch this returns Error::InvalidSignature and the buffer contents are unspecified.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§