Keypair

Struct Keypair 

Source
pub struct Keypair(/* private fields */);
Expand description

Wrapper around pkarr::Keypair that customizes PublicKey rendering.

Implementations§

Source§

impl Keypair

Source

pub fn random() -> Self

Generate a random keypair.

Source

pub fn secret(&self) -> [u8; 32]

Export the secret bytes used to derive this keypair.

Source

pub fn from_secret(secret: &[u8; 32]) -> Self

Construct a Keypair from a 32-byte secret.

Source

pub fn from_secret_key_file(path: &Path) -> Result<Self, Error>

Read a keypair from a pkarr secret key file.

Source

pub fn public_key(&self) -> PublicKey

Return the PublicKey associated with this Keypair.

Display the returned key with .to_string() to get the pubky<z32> identifier or PublicKey::z32() when you specifically need the bare z-base32 text (e.g. hostnames).

Source

pub const fn as_inner(&self) -> &Keypair

Borrow the inner pkarr::Keypair.

Source

pub fn write_secret_key_file(&self, path: &Path) -> Result<(), Error>

Persist the secret key to disk using the pkarr format.

Source

pub fn into_inner(self) -> Keypair

Extract the inner pkarr::Keypair.

Methods from Deref<Target = Keypair>§

Source

pub fn sign(&self, message: &[u8]) -> Signature

Signs a message with the private key of this Keypair.

Source

pub fn verify(&self, message: &[u8], signature: &Signature) -> Result<(), Error>

Verifies a message against a given signature using this Keypair.

Source

pub fn secret_key(&self) -> [u8; 32]

Returns the secret part of this Keypair.

Source

pub fn public_key(&self) -> PublicKey

Returns the PublicKey of this Keypair.

Source

pub fn to_z32(&self) -> String

Converts the public key of this Keypair to a z-base32 encoded string.

Source

pub fn to_uri_string(&self) -> String

Converts the public key of this Keypair to a URI string.

Source

pub fn write_secret_key_file( &self, secret_file_path: &Path, ) -> Result<(), Error>

Writes the secret of the keypair to a file, as a hex encoded string. If the file already exists, it will be overwritten. In unix like operating systems, the file permission 600 is set.

Trait Implementations§

Source§

impl Clone for Keypair

Source§

fn clone(&self) -> Keypair

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Keypair

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for Keypair

Source§

type Target = Keypair

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for Keypair

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl From<Keypair> for Keypair

Source§

fn from(keypair: Keypair) -> Self

Converts to this type from the input type.
Source§

impl From<Keypair> for Keypair

Source§

fn from(value: Keypair) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V