Struct LessSafeKey
pub struct LessSafeKey { /* private fields */ }
Expand description
Immutable keys for use in situations where OpeningKey
/SealingKey
and
NonceSequence
cannot reasonably be used.
Prefer RandomizedNonceKey
when practical.
Implementations§
§impl LessSafeKey
impl LessSafeKey
pub fn new(key: UnboundKey) -> LessSafeKey
pub fn new(key: UnboundKey) -> LessSafeKey
Constructs a LessSafeKey
from an UnboundKey
.
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>
Like OpeningKey::open_in_place()
, except it accepts an arbitrary nonce.
nonce
must be unique for every use of the key to open data.
Prefer RandomizedNonceKey::open_in_place
.
§Errors
error::Unspecified
when ciphertext is invalid.
pub fn open_within<'in_out, A>(
&self,
nonce: Nonce,
aad: Aad<A>,
in_out: &'in_out mut [u8],
ciphertext_and_tag: RangeFrom<usize>,
) -> Result<&'in_out mut [u8], Unspecified>
pub fn open_within<'in_out, A>( &self, nonce: Nonce, aad: Aad<A>, in_out: &'in_out mut [u8], ciphertext_and_tag: RangeFrom<usize>, ) -> Result<&'in_out mut [u8], Unspecified>
Like OpeningKey::open_within()
, except it accepts an arbitrary nonce.
nonce
must be unique for every use of the key to open data.
Prefer RandomizedNonceKey::open_in_place
.
§Errors
error::Unspecified
when ciphertext is invalid.
pub fn open_separate_gather<A>(
&self,
nonce: Nonce,
aad: Aad<A>,
in_ciphertext: &[u8],
in_tag: &[u8],
out_plaintext: &mut [u8],
) -> Result<(), Unspecified>
pub fn open_separate_gather<A>( &self, nonce: Nonce, aad: Aad<A>, in_ciphertext: &[u8], in_tag: &[u8], out_plaintext: &mut [u8], ) -> Result<(), Unspecified>
Authenticates and decrypts (“opens”) data into another provided slice.
aad
is the additional authenticated data (AAD), if any.
On input, in_ciphertext
must be the ciphertext. The tag must be provided in
in_tag
.
The out_plaintext
length must match the provided in_ciphertext
.
§Errors
error::Unspecified
when ciphertext is invalid. In this case, out_plaintext
may
have been overwritten in an unspecified way.
pub fn seal_in_place<A, InOut>(
&self,
nonce: Nonce,
aad: Aad<A>,
in_out: &mut InOut,
) -> Result<(), Unspecified>
👎Deprecated: Renamed to seal_in_place_append_tag
.
pub fn seal_in_place<A, InOut>( &self, nonce: Nonce, aad: Aad<A>, in_out: &mut InOut, ) -> Result<(), Unspecified>
seal_in_place_append_tag
.Deprecated. Renamed to seal_in_place_append_tag()
.
pub fn seal_in_place_append_tag<A, InOut>(
&self,
nonce: Nonce,
aad: Aad<A>,
in_out: &mut InOut,
) -> Result<(), Unspecified>
pub fn seal_in_place_append_tag<A, InOut>( &self, nonce: Nonce, aad: Aad<A>, in_out: &mut InOut, ) -> Result<(), Unspecified>
Like SealingKey::seal_in_place_append_tag()
, except it accepts an
arbitrary nonce.
nonce
must be unique for every use of the key to seal data.
Prefer RandomizedNonceKey::seal_in_place_append_tag
.
§Errors
error::Unspecified
if encryption operation fails.
pub fn seal_in_place_separate_tag<A>(
&self,
nonce: Nonce,
aad: Aad<A>,
in_out: &mut [u8],
) -> Result<Tag, Unspecified>
pub fn seal_in_place_separate_tag<A>( &self, nonce: Nonce, aad: Aad<A>, in_out: &mut [u8], ) -> Result<Tag, Unspecified>
Like SealingKey::seal_in_place_separate_tag()
, except it accepts an
arbitrary nonce.
nonce
must be unique for every use of the key to seal data.
Prefer RandomizedNonceKey::seal_in_place_separate_tag
.
§Errors
error::Unspecified
if encryption operation fails.
pub fn seal_in_place_scatter<A>(
&self,
nonce: Nonce,
aad: Aad<A>,
in_out: &mut [u8],
extra_in: &[u8],
extra_out_and_tag: &mut [u8],
) -> Result<(), Unspecified>
pub fn seal_in_place_scatter<A>( &self, nonce: Nonce, aad: Aad<A>, in_out: &mut [u8], extra_in: &[u8], extra_out_and_tag: &mut [u8], ) -> Result<(), Unspecified>
Encrypts and signs (“seals”) data in place with extra plaintext.
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
and extra_in
. seal_in_place()
will overwrite the plaintext contained in in_out
with the ciphertext. The extra_in
will
be encrypted into the extra_out_and_tag
, along with the tag.
The extra_out_and_tag
length must be equal to the extra_len
and self.algorithm.tag_len()
.
nonce
must be unique for every use of the key to seal data.
§Errors
error::Unspecified
if encryption operation fails.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LessSafeKey
impl RefUnwindSafe for LessSafeKey
impl Send for LessSafeKey
impl Sync for LessSafeKey
impl Unpin for LessSafeKey
impl UnwindSafe for LessSafeKey
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