Skip to main content

KeyPair

Struct KeyPair 

Source
pub struct KeyPair {
    pub public: PublicKey,
    pub secret: SecretKey,
}
Expand description

An age X25519 key pair consisting of a public key and a secret key.

KeyPair is the central type of this crate. It is produced by build_keypair and provides access to both the public identity (safe to share) and the secret identity (must be kept confidential).

§Fields

  • public: PublicKey – The public key. It is guaranteed to start with "age1" and can be safely displayed, cloned, and shared.
  • secret: SecretKey – The secret key. It is automatically zeroized when dropped, and its Display and Debug implementations redact the actual key material.

§Creation

KeyPair cannot be constructed directly from outside the crate because its constructor is pub(crate). This ensures that all key pairs are produced by [build_keypair], which properly generates a fresh identity and validates both keys.

§Examples

use age_setup::build_keypair;

let kp = build_keypair()?;
println!("Public key: {}", kp.public);
// Secret key is redacted when printed:
println!("Secret key: {}", kp.secret);   // prints [REDACTED]

Fields§

§public: PublicKey

The public half of the key pair.

§secret: SecretKey

The secret half of the key pair (zeroized on drop).

Trait Implementations§

Source§

impl Debug for KeyPair

Source§

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

Formats the value using the given formatter. 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