Skip to main content

KeyPair

Struct KeyPair 

Source
pub struct KeyPair { /* private fields */ }
Expand description

An Ed25519 keypair for IDProva identity operations.

§Security: SR-1 (zeroize on drop)

The signing key bytes are zeroed from memory when this struct is dropped, preventing private key material from being retained in process memory.

Implementations§

Source§

impl KeyPair

Source

pub fn generate() -> Self

Generate a new random Ed25519 keypair.

Source

pub fn from_secret_bytes(bytes: &[u8; 32]) -> Self

Create a keypair from existing secret key bytes (32 bytes).

Source

pub fn verifying_key(&self) -> VerifyingKey

Get the verifying (public) key.

Source

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

Get the public key bytes.

Source

pub fn public_key_multibase(&self) -> String

Get the public key as a multibase-encoded string (base58btc, prefix ‘z’).

Source

pub fn public_key(&self) -> PublicKey

Get the public key as a serializable struct.

Source

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

Sign a message.

Source

pub fn verify( public_key_bytes: &[u8; 32], message: &[u8], signature_bytes: &[u8], ) -> Result<()>

Verify a signature against a public key.

Source

pub fn decode_multibase_pubkey(multibase_str: &str) -> Result<[u8; 32]>

Decode a multibase-encoded public key to raw bytes.

Trait Implementations§

Source§

impl Debug for KeyPair

Source§

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

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

impl Drop for KeyPair

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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> 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<T> Same for T

Source§

type Output = T

Should always be Self
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