pub struct AesGmac<'c, const KEY_SIZE: usize> { /* private fields */ }Expand description
AES-GMAC Cipher Mode (Galois Message Authentication Code)
GMAC provides message authentication without encryption. The data remains in plaintext but any tampering is detected via the authentication tag.
Implementations§
Auto Trait Implementations§
impl<'c, const KEY_SIZE: usize> Freeze for AesGmac<'c, KEY_SIZE>
impl<'c, const KEY_SIZE: usize> RefUnwindSafe for AesGmac<'c, KEY_SIZE>
impl<'c, const KEY_SIZE: usize> Send for AesGmac<'c, KEY_SIZE>
impl<'c, const KEY_SIZE: usize> Sync for AesGmac<'c, KEY_SIZE>
impl<'c, const KEY_SIZE: usize> Unpin for AesGmac<'c, KEY_SIZE>
impl<'c, const KEY_SIZE: usize> UnsafeUnpin for AesGmac<'c, KEY_SIZE>
impl<'c, const KEY_SIZE: usize> UnwindSafe for AesGmac<'c, KEY_SIZE>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<'c, C> Cipher<'c> for Cwhere
C: Cipher<'c>,
impl<'c, C> Cipher<'c> for Cwhere
C: Cipher<'c>,
Source§const BLOCK_SIZE: usize = const BLOCK_SIZE: usize = <C as crate::crypto::Cipher::<'c>>::BLOCK_SIZE;
const BLOCK_SIZE: usize = const BLOCK_SIZE: usize = <C as crate::crypto::Cipher::<'c>>::BLOCK_SIZE;
Processing block size. Determined by the processor and the algorithm.
Source§const REQUIRES_PADDING: bool = const REQUIRES_PADDING: bool =
<C as crate::crypto::Cipher::<'c>>::REQUIRES_PADDING;
const REQUIRES_PADDING: bool = const REQUIRES_PADDING: bool = <C as crate::crypto::Cipher::<'c>>::REQUIRES_PADDING;
Indicates whether the cipher requires the application to provide padding.
If
true, no partial blocks will be accepted (a panic will occur).Source§fn set_algomode(&self, p: Cryp)
fn set_algomode(&self, p: Cryp)
Sets the processor algorithm mode according to the associated cipher.
Source§fn prepare_key(&self, p: Cryp, dir: Direction)
fn prepare_key(&self, p: Cryp, dir: Direction)
Performs any key preparation within the processor, if necessary.
Source§fn init_phase_blocking<T, M>(&self, p: Cryp, _cryp: &Cryp<'_, T, M>)
fn init_phase_blocking<T, M>(&self, p: Cryp, _cryp: &Cryp<'_, T, M>)
Performs any cipher-specific initialization.
Source§async fn init_phase<T>(&self, p: Cryp, cryp: &mut Cryp<'_, T, Async>)where
T: Instance,
async fn init_phase<T>(&self, p: Cryp, cryp: &mut Cryp<'_, T, Async>)where
T: Instance,
Performs any cipher-specific initialization.
Source§fn pre_final(&self, p: Cryp, dir: Direction, _padding_len: usize) -> [u32; 4]
fn pre_final(&self, p: Cryp, dir: Direction, _padding_len: usize) -> [u32; 4]
Called prior to processing the last data block for cipher-specific operations.
Source§fn post_final_blocking<T, M>(
&self,
p: Cryp,
cryp: &Cryp<'_, T, M>,
dir: Direction,
int_data: &mut [u8; 16],
temp1: [u32; 4],
padding_mask: [u8; 16],
)
fn post_final_blocking<T, M>( &self, p: Cryp, cryp: &Cryp<'_, T, M>, dir: Direction, int_data: &mut [u8; 16], temp1: [u32; 4], padding_mask: [u8; 16], )
Called after processing the last data block for cipher-specific operations.
Source§async fn post_final<T>(
&self,
p: Cryp,
cryp: &mut Cryp<'_, T, Async>,
dir: Direction,
int_data: &mut [u8; 16],
temp1: [u32; 4],
padding_mask: [u8; 16],
)where
T: Instance,
async fn post_final<T>(
&self,
p: Cryp,
cryp: &mut Cryp<'_, T, Async>,
dir: Direction,
int_data: &mut [u8; 16],
temp1: [u32; 4],
padding_mask: [u8; 16],
)where
T: Instance,
Called after processing the last data block for cipher-specific operations.