pub struct StaticSecret(/* private fields */);
Expand description
A Diffie-Hellman secret key that can be used to compute multiple SharedSecret
s.
This type is identical to the EphemeralSecret
type, except that the
StaticSecret::diffie_hellman
method does not consume the secret key, and the type provides
serialization methods to save and load key material. This means that the secret may be used
multiple times (but does not have to be).
§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§
Source§impl StaticSecret
impl StaticSecret
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
.
Sourcepub fn new<T: RngCore + CryptoRng>(csprng: T) -> Self
👎Deprecated since 2.0.0: Renamed to random_from_rng
. This will be removed in 2.1.0
pub fn new<T: RngCore + CryptoRng>(csprng: T) -> Self
random_from_rng
. This will be removed in 2.1.0Generate a new StaticSecret
with the supplied RNG.
Sourcepub fn random_from_rng<T: RngCore + CryptoRng>(csprng: T) -> Self
pub fn random_from_rng<T: RngCore + CryptoRng>(csprng: T) -> Self
Generate a new StaticSecret
with the supplied RNG.
Trait Implementations§
Source§impl AsRef<[u8]> for StaticSecret
impl AsRef<[u8]> for StaticSecret
Source§impl Clone for StaticSecret
impl Clone for StaticSecret
Source§fn clone(&self) -> StaticSecret
fn clone(&self) -> StaticSecret
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<'de> Deserialize<'de> for StaticSecret
impl<'de> Deserialize<'de> for StaticSecret
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'a> From<&'a StaticSecret> for PublicKey
impl<'a> From<&'a StaticSecret> for PublicKey
Source§fn from(secret: &'a StaticSecret) -> PublicKey
fn from(secret: &'a StaticSecret) -> PublicKey
Given an x25519 StaticSecret
key, compute its corresponding PublicKey
.