embassy-crypto-driver

Crates

git

Versions

default

Flavors

Skip to main content

Aes256Gcm

Trait Aes256Gcm 

Source
pub trait Aes256Gcm {
    type Context: Clone;

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

AES-256 GCM AEAD trait.

Required Associated Types§

Source

type Context: Clone

Opaque storage for the implementation’s key schedule.

Required Methods§

Source

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

Initialize with a 256-bit key.

Source

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

Encrypt plaintext in-place and produce a 16-byte authentication tag.

Source

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

Decrypt ciphertext in-place and verify a 16-byte authentication tag.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§