Skip to main content

PrivateKey

Struct PrivateKey 

pub struct PrivateKey<P>
where P: Profile,
{ /* private fields */ }
Expand description

A one-time WOTS private key bound to cryptographic profile P.

Signing APIs consume this value to make accidental key reuse harder. Raw bytes can still be copied deliberately, so the surrounding key-management system must enforce one-time use durably. This type does not zeroize on drop; see PrivateSeed for the corresponding memory-handling caveat.

Implementations§

§

impl<P> PrivateKey<P>
where P: Profile,

pub const fn new(bytes: [u8; 32]) -> PrivateKey<P>

Creates a profile-bound private key from exact upstream-format bytes.

pub fn from_slice(bytes: &[u8]) -> Result<PrivateKey<P>, LengthError>

Parses a private key, rejecting every non-32-byte input.

§Errors

Returns LengthError unless bytes contains exactly 32 bytes.

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

Explicitly borrows the secret bytes for a cryptographic operation.

pub const fn into_secret(self) -> [u8; 32]

Explicitly returns the secret bytes.

Trait Implementations§

§

impl<P> Debug for PrivateKey<P>
where P: Profile,

§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<P> Freeze for PrivateKey<P>

§

impl<P> RefUnwindSafe for PrivateKey<P>

§

impl<P> Send for PrivateKey<P>

§

impl<P> Sync for PrivateKey<P>

§

impl<P> Unpin for PrivateKey<P>

§

impl<P> UnsafeUnpin for PrivateKey<P>

§

impl<P> UnwindSafe for PrivateKey<P>

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.