Struct RandomizedNonceKey
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_GCMAES_256_GCMAES_128_GCM_SIVAES_256_GCM_SIV
Prefer this type in place of LessSafeKey, OpeningKey, SealingKey.
Implementations§
§impl RandomizedNonceKey
impl RandomizedNonceKey
pub fn new(
algorithm: &'static Algorithm,
key_bytes: &[u8],
) -> Result<RandomizedNonceKey, Unspecified>
pub fn new( algorithm: &'static Algorithm, key_bytes: &[u8], ) -> Result<RandomizedNonceKey, Unspecified>
New Random Nonce Sequence
§Errors
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>
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.
pub 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.
pub 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.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RandomizedNonceKey
impl RefUnwindSafe for RandomizedNonceKey
impl Send for RandomizedNonceKey
impl Sync for RandomizedNonceKey
impl Unpin for RandomizedNonceKey
impl UnwindSafe for RandomizedNonceKey
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more