[−][src]Struct aes_gcm::AesGcm
AES-GCM: generic over an underlying AES implementation and nonce size.
This type is generic to support substituting alternative AES implementations (e.g. embedded hardware implementations)
It is NOT intended to be instantiated with any block cipher besides AES! Doing so runs the risk of unintended cryptographic properties!
The N
generic parameter can be used to instantiate AES-GCM with other
nonce sizes, however it's recommended to use it with typenum::U12
,
the default of 96-bits.
If in doubt, use the built-in Aes128Gcm
and Aes256Gcm
type aliases.
Trait Implementations
impl<Aes, NonceSize> AeadInPlace for AesGcm<Aes, NonceSize> where
Aes: BlockCipher<BlockSize = U16>,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
[src]
Aes: BlockCipher<BlockSize = U16>,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
type NonceSize = NonceSize
The length of a nonce.
type TagSize = U16
The maximum length of the nonce.
type CiphertextOverhead = U0
The upper bound amount of additional space required to support a ciphertext vs. a plaintext. Read more
fn encrypt_in_place_detached(
&self,
nonce: &GenericArray<u8, NonceSize>,
associated_data: &[u8],
buffer: &mut [u8]
) -> Result<Tag, Error>
[src]
&self,
nonce: &GenericArray<u8, NonceSize>,
associated_data: &[u8],
buffer: &mut [u8]
) -> Result<Tag, Error>
fn decrypt_in_place_detached(
&self,
nonce: &GenericArray<u8, NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
tag: &Tag
) -> Result<(), Error>
[src]
&self,
nonce: &GenericArray<u8, NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
tag: &Tag
) -> Result<(), Error>
fn encrypt_in_place(
&self,
nonce: &GenericArray<u8, Self::NonceSize>,
associated_data: &[u8],
buffer: &mut dyn Buffer
) -> Result<(), Error>
[src]
&self,
nonce: &GenericArray<u8, Self::NonceSize>,
associated_data: &[u8],
buffer: &mut dyn Buffer
) -> Result<(), Error>
fn decrypt_in_place(
&self,
nonce: &GenericArray<u8, Self::NonceSize>,
associated_data: &[u8],
buffer: &mut dyn Buffer
) -> Result<(), Error>
[src]
&self,
nonce: &GenericArray<u8, Self::NonceSize>,
associated_data: &[u8],
buffer: &mut dyn Buffer
) -> Result<(), Error>
impl<Aes: Clone, NonceSize: Clone> Clone for AesGcm<Aes, NonceSize> where
Aes: BlockCipher<BlockSize = U16>,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
[src]
Aes: BlockCipher<BlockSize = U16>,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
impl<Aes, NonceSize> From<Aes> for AesGcm<Aes, NonceSize> where
Aes: BlockCipher<BlockSize = U16>,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
[src]
Aes: BlockCipher<BlockSize = U16>,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
impl<Aes, NonceSize> NewAead for AesGcm<Aes, NonceSize> where
Aes: BlockCipher<BlockSize = U16> + NewBlockCipher,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
[src]
Aes: BlockCipher<BlockSize = U16> + NewBlockCipher,
Aes::ParBlocks: ArrayLength<Block<Aes>>,
NonceSize: ArrayLength<u8>,
Auto Trait Implementations
impl<Aes, NonceSize> RefUnwindSafe for AesGcm<Aes, NonceSize> where
Aes: RefUnwindSafe,
NonceSize: RefUnwindSafe,
Aes: RefUnwindSafe,
NonceSize: RefUnwindSafe,
impl<Aes, NonceSize> Send for AesGcm<Aes, NonceSize> where
Aes: Send,
NonceSize: Send,
Aes: Send,
NonceSize: Send,
impl<Aes, NonceSize> Sync for AesGcm<Aes, NonceSize> where
Aes: Sync,
NonceSize: Sync,
Aes: Sync,
NonceSize: Sync,
impl<Aes, NonceSize> Unpin for AesGcm<Aes, NonceSize> where
Aes: Unpin,
NonceSize: Unpin,
Aes: Unpin,
NonceSize: Unpin,
impl<Aes, NonceSize> UnwindSafe for AesGcm<Aes, NonceSize> where
Aes: UnwindSafe,
NonceSize: UnwindSafe,
Aes: UnwindSafe,
NonceSize: UnwindSafe,
Blanket Implementations
impl<Alg> Aead for Alg where
Alg: AeadInPlace,
[src]
Alg: AeadInPlace,
type NonceSize = <Alg as AeadInPlace>::NonceSize
The length of a nonce.
type TagSize = <Alg as AeadInPlace>::TagSize
The maximum length of the nonce.
type CiphertextOverhead = <Alg as AeadInPlace>::CiphertextOverhead
The upper bound amount of additional space required to support a ciphertext vs. a plaintext. Read more
fn encrypt<'msg, 'aad>(
&self,
nonce: &GenericArray<u8, <Alg as Aead>::NonceSize>,
plaintext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
[src]
&self,
nonce: &GenericArray<u8, <Alg as Aead>::NonceSize>,
plaintext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
fn decrypt<'msg, 'aad>(
&self,
nonce: &GenericArray<u8, <Alg as Aead>::NonceSize>,
ciphertext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
[src]
&self,
nonce: &GenericArray<u8, <Alg as Aead>::NonceSize>,
ciphertext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
impl<Alg> AeadMut for Alg where
Alg: AeadMutInPlace,
[src]
Alg: AeadMutInPlace,
type NonceSize = <Alg as AeadMutInPlace>::NonceSize
The length of a nonce.
type TagSize = <Alg as AeadMutInPlace>::TagSize
The maximum length of the nonce.
type CiphertextOverhead = <Alg as AeadMutInPlace>::CiphertextOverhead
The upper bound amount of additional space required to support a ciphertext vs. a plaintext. Read more
fn encrypt<'msg, 'aad>(
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMut>::NonceSize>,
plaintext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
[src]
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMut>::NonceSize>,
plaintext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
fn decrypt<'msg, 'aad>(
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMut>::NonceSize>,
ciphertext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
[src]
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMut>::NonceSize>,
ciphertext: impl Into<Payload<'msg, 'aad>>
) -> Result<Vec<u8>, Error>
impl<Alg> AeadMutInPlace for Alg where
Alg: AeadInPlace,
[src]
Alg: AeadInPlace,
type NonceSize = <Alg as AeadInPlace>::NonceSize
The length of a nonce.
type TagSize = <Alg as AeadInPlace>::TagSize
The maximum length of the nonce.
type CiphertextOverhead = <Alg as AeadInPlace>::CiphertextOverhead
The upper bound amount of additional space required to support a ciphertext vs. a plaintext. Read more
fn encrypt_in_place(
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut impl Buffer
) -> Result<(), Error>
[src]
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut impl Buffer
) -> Result<(), Error>
fn encrypt_in_place_detached(
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut [u8]
) -> Result<GenericArray<u8, <Alg as AeadMutInPlace>::TagSize>, Error>
[src]
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut [u8]
) -> Result<GenericArray<u8, <Alg as AeadMutInPlace>::TagSize>, Error>
fn decrypt_in_place(
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut impl Buffer
) -> Result<(), Error>
[src]
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut impl Buffer
) -> Result<(), Error>
fn decrypt_in_place_detached(
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
tag: &GenericArray<u8, <Alg as AeadMutInPlace>::TagSize>
) -> Result<(), Error>
[src]
&mut self,
nonce: &GenericArray<u8, <Alg as AeadMutInPlace>::NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
tag: &GenericArray<u8, <Alg as AeadMutInPlace>::TagSize>
) -> Result<(), Error>
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<!> for T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,