embassy-nrf

Crates

git

Versions

nrf54l15-app-s

Flavors

Skip to main content

AesCcm

Struct AesCcm 

Source
pub struct AesCcm { /* private fields */ }
Expand description

AES in CCM (counter with CBC-MAC) authenticated mode, as in NIST SP 800-38C.

CCM needs the total length of the additional authenticated data and of the payload up front. Only the first tag_len bytes of the tag returned by Symmetric::aes_blocking_finish are valid.

Implementations§

Source§

impl AesCcm

Source

pub fn new( key: &[u8], nonce: &[u8], aad_len: usize, payload_len: usize, tag_len: usize, ) -> Result<Self, Error>

Creates a CCM cipher.

  • key: 16, 24 or 32 bytes. See the module documentation for which key lengths each chip supports.
  • nonce: 7 to 13 bytes, unique for every message.
  • aad_len: total length of the additional authenticated data.
  • payload_len: total length of the payload.
  • tag_len: 4, 6, 8, 10, 12, 14 or 16 bytes.

A shorter nonce allows a longer payload. With a 13-byte nonce the payload is limited to 65535 bytes.

Errors: InvalidKeyLength, InvalidNonceLength, InvalidTagLength, and InvalidLength if the payload is too long for the nonce.

Trait Implementations§

Source§

impl AuthenticatedCipher for AesCcm

Source§

impl Cipher for AesCcm

Source§

impl Clone for AesCcm

Source§

fn clone(&self) -> AesCcm

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AesCcm

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.