pub struct PrecomputedKey(pub [u8; 32]);Expand description
Applications that send several messages to the same receiver can gain speed by
splitting seal() into two steps, precompute() and seal_precomputed().
Similarly, applications that receive several messages from the same sender can gain
speed by splitting open() into two steps, precompute() and open_precomputed().
When a PrecomputedKey goes out of scope its contents will be zeroed out
Tuple Fields§
§0: [u8; 32]Implementations§
Source§impl PrecomputedKey
impl PrecomputedKey
Sourcepub fn from_slice(bs: &[u8]) -> Option<PrecomputedKey>
pub fn from_slice(bs: &[u8]) -> Option<PrecomputedKey>
from_slice() creates an object from a byte slice
This function will fail and return None if the length of
the byte-slice isn’t equal to the length of the object
Trait Implementations§
Source§impl AsRef<[u8]> for PrecomputedKey
impl AsRef<[u8]> for PrecomputedKey
Source§impl Clone for PrecomputedKey
impl Clone for PrecomputedKey
Source§fn clone(&self) -> PrecomputedKey
fn clone(&self) -> PrecomputedKey
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PrecomputedKey
impl Debug for PrecomputedKey
Source§impl<'de> Deserialize<'de> for PrecomputedKey
impl<'de> Deserialize<'de> for PrecomputedKey
Source§fn deserialize<D>(
deserializer: D,
) -> Result<PrecomputedKey, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<PrecomputedKey, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl Drop for PrecomputedKey
impl Drop for PrecomputedKey
Source§impl Index<Range<usize>> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
impl Index<Range<usize>> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
WARNING: it might be tempting to do comparisons on objects
by using x[a..b] == y[a..b]. This will open up for timing attacks
when comparing for example authenticator tags. Because of this only
use the comparison functions exposed by the sodiumoxide API.
Source§impl Index<RangeFrom<usize>> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
impl Index<RangeFrom<usize>> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
WARNING: it might be tempting to do comparisons on objects
by using x[a..] == y[a..]. This will open up for timing attacks
when comparing for example authenticator tags. Because of this only
use the comparison functions exposed by the sodiumoxide API.
Source§impl Index<RangeFull> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
impl Index<RangeFull> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
WARNING: it might be tempting to do comparisons on objects
by using x[] == y[]. This will open up for timing attacks
when comparing for example authenticator tags. Because of this only
use the comparison functions exposed by the sodiumoxide API.
Source§impl Index<RangeTo<usize>> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
impl Index<RangeTo<usize>> for PrecomputedKey
Allows a user to access the byte contents of an object as a slice.
WARNING: it might be tempting to do comparisons on objects
by using x[..b] == y[..b]. This will open up for timing attacks
when comparing for example authenticator tags. Because of this only
use the comparison functions exposed by the sodiumoxide API.
Source§impl PartialEq for PrecomputedKey
impl PartialEq for PrecomputedKey
Source§impl Serialize for PrecomputedKey
impl Serialize for PrecomputedKey
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl Eq for PrecomputedKey
Auto Trait Implementations§
impl Freeze for PrecomputedKey
impl RefUnwindSafe for PrecomputedKey
impl Send for PrecomputedKey
impl Sync for PrecomputedKey
impl Unpin for PrecomputedKey
impl UnwindSafe for PrecomputedKey
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> ToHex for T
impl<T> ToHex for T
Source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Lower case
letters are used (e.g. f9b4ca)Source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Upper case
letters are used (e.g. F9B4CA)