pub struct RandomizedNonceKey { /* private fields */ }
Expand description
AEAD Cipher key using a randomized nonce.
RandomizedNonceKey
handles generation random nonce values.
The following algorithms are supported:
AES_128_GCM
AES_256_GCM
Prefer this type in place of LessSafeKey
, OpeningKey
, SealingKey
.
Implementations§
Source§impl RandomizedNonceKey
impl RandomizedNonceKey
Sourcepub fn new(
algorithm: &'static Algorithm,
key_bytes: &[u8],
) -> Result<Self, Unspecified>
pub fn new( algorithm: &'static Algorithm, key_bytes: &[u8], ) -> Result<Self, Unspecified>
New Random Nonce Sequence
§Errors
Sourcepub fn open_in_place<'in_out, A>(
&self,
nonce: Nonce,
aad: Aad<A>,
in_out: &'in_out mut [u8],
) -> Result<&'in_out mut [u8], Unspecified>
pub fn open_in_place<'in_out, A>( &self, nonce: Nonce, aad: Aad<A>, in_out: &'in_out mut [u8], ) -> Result<&'in_out mut [u8], Unspecified>
Authenticates and decrypts (“opens”) data in place.
§Errors
error::Unspecified
when ciphertext is invalid.
Sourcepub fn seal_in_place_append_tag<'a, A, InOut>(
&self,
aad: Aad<A>,
in_out: &'a mut InOut,
) -> Result<Nonce, Unspecified>
pub fn seal_in_place_append_tag<'a, A, InOut>( &self, aad: Aad<A>, in_out: &'a mut InOut, ) -> Result<Nonce, Unspecified>
Encrypts and signs (“seals”) data in place, appending the tag to the resulting ciphertext.
key.seal_in_place_append_tag(aad, in_out)
is equivalent to:
key.seal_in_place_separate_tag(aad, in_out.as_mut())
.map(|tag| in_out.extend(tag.as_ref()))
The Nonce used for the operation is randomly generated, and returned to the caller.
§Errors
error::Unspecified
if encryption operation fails.
Sourcepub fn seal_in_place_separate_tag<A>(
&self,
aad: Aad<A>,
in_out: &mut [u8],
) -> Result<(Nonce, Tag), Unspecified>
pub fn seal_in_place_separate_tag<A>( &self, aad: Aad<A>, in_out: &mut [u8], ) -> Result<(Nonce, Tag), Unspecified>
Encrypts and signs (“seals”) data in place.
aad
is the additional authenticated data (AAD), if any. This is
authenticated but not encrypted. The type A
could be a byte slice
&[u8]
, a byte array [u8; N]
for some constant N
, Vec<u8>
, etc.
If there is no AAD then use Aad::empty()
.
The plaintext is given as the input value of in_out
. seal_in_place()
will overwrite the plaintext with the ciphertext and return the tag.
For most protocols, the caller must append the tag to the ciphertext.
The tag will be self.algorithm.tag_len()
bytes long.
The Nonce used for the operation is randomly generated, and returned to the caller.
§Errors
error::Unspecified
if encryption operation fails.