pub struct RandomizedNonceKey {
key: UnboundKey,
algorithm: &'static Algorithm,
}Expand description
AEAD Cipher key using a randomized nonce.
RandomizedNonceKey handles generation random nonce values.
The following algorithms are supported:
AES_128_GCMAES_256_GCMAES_128_GCM_SIVAES_256_GCM_SIV
Prefer this type in place of LessSafeKey, OpeningKey, SealingKey.
Fields§
§key: UnboundKey§algorithm: &'static AlgorithmImplementations§
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.