Struct tor_llcrypto::pk::curve25519::EphemeralSecret
pub struct EphemeralSecret(/* private fields */);
Expand description
A short-lived Diffie-Hellman secret key that can only be used to compute a single
SharedSecret
.
This type is identical to the StaticSecret
type, except that the
EphemeralSecret::diffie_hellman
method consumes and then wipes the secret key, and there
are no serialization methods defined. This means that EphemeralSecret
s can only be
generated from fresh randomness where the compiler statically checks that the resulting
secret is used at most once.
Implementations§
§impl EphemeralSecret
impl EphemeralSecret
pub 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
.
pub fn new<T>(csprng: T) -> EphemeralSecret
👎Deprecated since 2.0.0: Renamed to random_from_rng
. This will be removed in 2.1.0
pub fn new<T>(csprng: T) -> EphemeralSecret
random_from_rng
. This will be removed in 2.1.0Generate a new EphemeralSecret
with the supplied RNG.
pub fn random_from_rng<T>(csprng: T) -> EphemeralSecret
pub fn random_from_rng<T>(csprng: T) -> EphemeralSecret
Generate a new EphemeralSecret
with the supplied RNG.
Trait Implementations§
§impl<'a> From<&'a EphemeralSecret> for PublicKey
impl<'a> From<&'a EphemeralSecret> for PublicKey
§fn from(secret: &'a EphemeralSecret) -> PublicKey
fn from(secret: &'a EphemeralSecret) -> PublicKey
Given an x25519 EphemeralSecret
key, compute its corresponding PublicKey
.
§impl Zeroize for EphemeralSecret
impl Zeroize for EphemeralSecret
Auto Trait Implementations§
impl Freeze for EphemeralSecret
impl RefUnwindSafe for EphemeralSecret
impl Send for EphemeralSecret
impl Sync for EphemeralSecret
impl Unpin for EphemeralSecret
impl UnwindSafe for EphemeralSecret
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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