pub struct StaticSecret(/* private fields */);Expand description
A Diffie-Hellman secret key that can be used to compute multiple SharedSecrets.
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>(csprng: T) -> StaticSecret
pub fn new<T>(csprng: T) -> StaticSecret
Generate an x25519 key.
Trait Implementations§
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<StaticSecret, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<StaticSecret, <__D as Deserializer<'de>>::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.