Skip to main content

TwistedEd25519PrivateKey

Struct TwistedEd25519PrivateKey 

Source
pub struct TwistedEd25519PrivateKey { /* private fields */ }
Available on crate feature twisted_ed25519 only.
Expand description

A Twisted Ed25519 private key (Ristretto255 scalar).

The private key is zeroized when dropped to prevent sensitive data from remaining in memory, and Debug is redacted to avoid accidental leaks.

Implementations§

Source§

impl TwistedEd25519PrivateKey

Source

pub fn generate() -> Self

Generates a new random private key from OsRng.

Source

pub fn from_bytes(bytes: &[u8]) -> MovementResult<Self>

Creates a private key from raw bytes (32 bytes, little-endian, reduced mod the Ristretto255 group order).

§Errors

Returns MovementError::InvalidPrivateKey if the byte slice length is not exactly 32 bytes.

Source

pub fn from_hex(hex_str: &str) -> MovementResult<Self>

Creates a private key from a hex string (with or without 0x prefix).

§Errors

Returns MovementError::Hex if the hex string is invalid, or MovementError::InvalidPrivateKey if the decoded length is not 32 bytes.

Source

pub fn from_scalar(scalar: Scalar) -> Self

Wraps an existing Ristretto255 scalar as a private key.

Source

pub fn public_key(&self) -> TwistedEd25519PublicKey

Returns the corresponding encryption (public) key, pk = s⁻¹·H.

Source

pub fn as_scalar(&self) -> &Scalar

Borrows the underlying scalar for σ-protocol provers.

Source

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

Returns the private key as 32 little-endian bytes.

Warning: handle the returned bytes carefully to avoid leaking sensitive key material.

Source

pub fn to_hex(&self) -> String

Returns the private key as a hex string (lowercase, 0x-prefixed).

Warning: handle the returned string carefully — it contains private key material in plaintext.

Trait Implementations§

Source§

impl Clone for TwistedEd25519PrivateKey

Source§

fn clone(&self) -> TwistedEd25519PrivateKey

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 TwistedEd25519PrivateKey

Source§

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

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

impl Zeroize for TwistedEd25519PrivateKey

Source§

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not “optimized away” by the compiler.

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more