Struct x25519_dalek::ReusableSecret
source · [−]pub struct ReusableSecret(_);
Expand description
A Diffie-Hellman secret key which may be used more than once, but is purposefully not serialiseable in order to discourage key-reuse. This is implemented to facilitate protocols such as Noise (e.g. Noise IK key usage, etc.) and X3DH which require an “ephemeral” key to conduct the Diffie-Hellman operation multiple times throughout the protocol, while the protocol run at a higher level is only conducted once per key.
Similarly to EphemeralSecret
, this type does not have serialisation
methods, in order to discourage long-term usage of secret key material. (For
long-term secret keys, see StaticSecret
.)
Warning
If you’re uncertain about whether you should use this, then you likely
should not be using this. Our strongly recommended advice is to use
EphemeralSecret
at all times, as that type enforces at compile-time that
secret keys are never reused, which can have very serious security
implications for many protocols.
Implementations
sourceimpl ReusableSecret
impl ReusableSecret
sourcepub fn diffie_hellman(&self, their_public: &PublicKey) -> SharedSecret
pub fn diffie_hellman(&self, their_public: &PublicKey) -> SharedSecret
Perform a Diffie-Hellman key agreement between self
and
their_public
key to produce a SharedSecret
.
Trait Implementations
sourceimpl Clone for ReusableSecret
impl Clone for ReusableSecret
sourcefn clone(&self) -> ReusableSecret
fn clone(&self) -> ReusableSecret
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Drop for ReusableSecret
impl Drop for ReusableSecret
sourceimpl<'a> From<&'a ReusableSecret> for PublicKey
impl<'a> From<&'a ReusableSecret> for PublicKey
sourcefn from(secret: &'a ReusableSecret) -> PublicKey
fn from(secret: &'a ReusableSecret) -> PublicKey
Given an x25519 ReusableSecret
key, compute its corresponding PublicKey
.
Auto Trait Implementations
impl RefUnwindSafe for ReusableSecret
impl Send for ReusableSecret
impl Sync for ReusableSecret
impl Unpin for ReusableSecret
impl UnwindSafe for ReusableSecret
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more