pub struct Pair(/* private fields */);
Expand description
An Schnorrkel/Ristretto x25519 (“sr25519”) key pair.
Implementations§
Trait Implementations§
Source§impl From<MiniSecretKey> for Pair
impl From<MiniSecretKey> for Pair
Source§fn from(sec: MiniSecretKey) -> Pair
fn from(sec: MiniSecretKey) -> Pair
Source§impl NonAggregatable for Pair
impl NonAggregatable for Pair
Source§impl Pair for Pair
impl Pair for Pair
Source§fn from_seed_slice(seed: &[u8]) -> Result<Pair, SecretStringError>
fn from_seed_slice(seed: &[u8]) -> Result<Pair, SecretStringError>
Make a new key pair from raw secret seed material.
This is generated using schnorrkel’s Mini-Secret-Keys.
A MiniSecretKey
is literally what Ed25519 calls a SecretKey
, which is just 32 random
bytes.
Source§type Public = CryptoBytes<PUBLIC_KEY_SERIALIZED_SIZE, Sr25519PublicTag>
type Public = CryptoBytes<PUBLIC_KEY_SERIALIZED_SIZE, Sr25519PublicTag>
Source§type Seed = [u8; 32]
type Seed = [u8; 32]
Source§type Signature = CryptoBytes<SIGNATURE_SERIALIZED_SIZE, (SignatureTag, Sr25519Tag)>
type Signature = CryptoBytes<SIGNATURE_SERIALIZED_SIZE, (SignatureTag, Sr25519Tag)>
Source§fn derive<Iter: Iterator<Item = DeriveJunction>>(
&self,
path: Iter,
seed: Option<[u8; 32]>,
) -> Result<(Pair, Option<[u8; 32]>), DeriveError>
fn derive<Iter: Iterator<Item = DeriveJunction>>( &self, path: Iter, seed: Option<[u8; 32]>, ) -> Result<(Pair, Option<[u8; 32]>), DeriveError>
Source§fn verify<M: AsRef<[u8]>>(sig: &Signature, message: M, pubkey: &Public) -> bool
fn verify<M: AsRef<[u8]>>(sig: &Signature, message: M, pubkey: &Public) -> bool
Source§fn generate_with_phrase(password: Option<&str>) -> (Self, String, Self::Seed)
fn generate_with_phrase(password: Option<&str>) -> (Self, String, Self::Seed)
Source§fn from_phrase(
phrase: &str,
password: Option<&str>,
) -> Result<(Self, Self::Seed), SecretStringError>
fn from_phrase( phrase: &str, password: Option<&str>, ) -> Result<(Self, Self::Seed), SecretStringError>
phrase
, or an error if it’s invalid.Source§fn from_seed(seed: &Self::Seed) -> Self
fn from_seed(seed: &Self::Seed) -> Self
seed
. Read moreSource§fn from_string_with_seed(
s: &str,
password_override: Option<&str>,
) -> Result<(Self, Option<Self::Seed>), SecretStringError>
fn from_string_with_seed( s: &str, password_override: Option<&str>, ) -> Result<(Self, Option<Self::Seed>), SecretStringError>
s
in order to generate a key Pair. Returns both the pair and an
optional seed, in the case that the pair can be expressed as a direct derivation from a seed
(some cases, such as Sr25519 derivations with path components, cannot). Read moreSource§fn from_string(
s: &str,
password_override: Option<&str>,
) -> Result<Self, SecretStringError>
fn from_string( s: &str, password_override: Option<&str>, ) -> Result<Self, SecretStringError>
s
in order to generate a key pair. Read moreSource§impl VrfCrypto for Pair
impl VrfCrypto for Pair
Source§type VrfInput = VrfTranscript
type VrfInput = VrfTranscript
Source§type VrfPreOutput = VrfPreOutput
type VrfPreOutput = VrfPreOutput
Source§type VrfSignData = VrfSignData
type VrfSignData = VrfSignData
Source§type VrfSignature = VrfSignature
type VrfSignature = VrfSignature
Source§impl VrfSecret for Pair
impl VrfSecret for Pair
Source§fn vrf_sign(&self, data: &Self::VrfSignData) -> Self::VrfSignature
fn vrf_sign(&self, data: &Self::VrfSignData) -> Self::VrfSignature
Source§fn vrf_pre_output(&self, input: &Self::VrfInput) -> Self::VrfPreOutput
fn vrf_pre_output(&self, input: &Self::VrfInput) -> Self::VrfPreOutput
Auto Trait Implementations§
impl Freeze for Pair
impl RefUnwindSafe for Pair
impl Send for Pair
impl Sync for Pair
impl Unpin for Pair
impl UnwindSafe for Pair
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> ProofOfPossessionGenerator for Twhere
T: NonAggregatable,
impl<T> ProofOfPossessionGenerator for Twhere
T: NonAggregatable,
Source§fn generate_proof_of_possession(&mut self) -> <T as Pair>::Signature
fn generate_proof_of_possession(&mut self) -> <T as Pair>::Signature
Default implementation for non-aggregatable signatures.
While we enforce hash context separation at the library level in aggregatable schemes, it remains as an advisory for the default implementation using signature API used for non-aggregatable schemes
Source§impl<T> ProofOfPossessionVerifier for Twhere
T: NonAggregatable,
impl<T> ProofOfPossessionVerifier for Twhere
T: NonAggregatable,
Source§fn verify_proof_of_possession(
proof_of_possession: &<T as Pair>::Signature,
allegedly_possessesd_pubkey: &<T as Pair>::Public,
) -> bool
fn verify_proof_of_possession( proof_of_possession: &<T as Pair>::Signature, allegedly_possessesd_pubkey: &<T as Pair>::Public, ) -> bool
Default implementation for non-aggregatable signatures.
While we enforce hash context separation at the library level in aggregatable schemes, it remains as an advisory for the default implementation using signature API used for non-aggregatable schemes
Source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.