pub struct PublicKey(/* private fields */);Expand description
Public key.
Wrapper around x25519_dalek::PublicKey with some traits.
§Implements
- Implements
ZeroizeandZeroizeOnDropfor clearing secrets from memory. - Implements
TryFrom<&str>orTryFrom<String>for importing key from Base64 format. - Implements
From<&PrivateKey>for convertingPrivateKeytoPublicKey. - Implements
fmt::Displayfor exporting key in Wireguard’s format. - Implements
fmt::Debug.
§Examples
// generate new random key:
let private_key = PrivateKey::random(); // 1. generate private key
let public_key = PublicKey::from(&private_key); // 2. get public key via `From<&PrivateKey>`
// import key:
let imported_key = PublicKey::try_from("ijxpP+2xo+s77bfbm4QZzl6OyYP7sIOTutqngQSlZBs=")?;
// export key via `fmt::Display` trait:
let exported_key = imported_key.to_string();
assert_eq!(exported_key, "ijxpP+2xo+s77bfbm4QZzl6OyYP7sIOTutqngQSlZBs=".to_string());Implementations§
Trait Implementations§
Source§impl From<&PrivateKey> for PublicKey
impl From<&PrivateKey> for PublicKey
Source§fn from(value: &PrivateKey) -> Self
fn from(value: &PrivateKey) -> Self
Converts to this type from the input type.
impl StructuralPartialEq for PublicKey
Auto Trait Implementations§
impl Freeze for PublicKey
impl RefUnwindSafe for PublicKey
impl Send for PublicKey
impl Sync for PublicKey
impl Unpin for PublicKey
impl UnwindSafe for PublicKey
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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