pub struct Scheme { /* private fields */ }Expand description
Ed25519 signing scheme wrapper.
Implementations§
Source§impl Scheme
impl Scheme
Sourcepub fn signer(
participants: Set<PublicKey>,
private_key: PrivateKey,
) -> Option<Self>
pub fn signer( participants: Set<PublicKey>, private_key: PrivateKey, ) -> Option<Self>
Creates a new scheme instance with the provided key material.
Participants use the same key for both identity and signing.
If the provided private key does not match any signing key in the participant set, the instance will act as a verifier (unable to generate signatures).
Returns None if the provided private key does not match any participant
in the participant set.
Trait Implementations§
Source§impl Scheme for Scheme
impl Scheme for Scheme
Source§type Subject<'a, D: Digest> = AckSubject<'a, PublicKey, D>
type Subject<'a, D: Digest> = AckSubject<'a, PublicKey, D>
Subject type for signing and verification.
Source§type PublicKey = PublicKey
type PublicKey = PublicKey
Public key type for participant identity used to order and index the participant set.
Source§type Certificate = Certificate
type Certificate = Certificate
Certificate assembled from a set of attestations.
Source§fn me(&self) -> Option<u32>
fn me(&self) -> Option<u32>
Returns the index of “self” in the participant set, if available.
Returns
None if the scheme is a verifier-only instance.Source§fn participants(&self) -> &Set<Self::PublicKey>
fn participants(&self) -> &Set<Self::PublicKey>
Returns the ordered set of participant public identity keys managed by the scheme.
Source§fn sign<D: Digest>(
&self,
namespace: &[u8],
subject: Self::Subject<'_, D>,
) -> Option<Attestation<Self>>
fn sign<D: Digest>( &self, namespace: &[u8], subject: Self::Subject<'_, D>, ) -> Option<Attestation<Self>>
Signs a subject using the supplied namespace for domain separation.
Returns
None if the scheme cannot sign (e.g. it’s a verifier-only instance).Source§fn verify_attestation<D: Digest>(
&self,
namespace: &[u8],
subject: Self::Subject<'_, D>,
attestation: &Attestation<Self>,
) -> bool
fn verify_attestation<D: Digest>( &self, namespace: &[u8], subject: Self::Subject<'_, D>, attestation: &Attestation<Self>, ) -> bool
Verifies a single attestation against the participant material managed by the scheme.
Source§fn verify_attestations<R, D, I>(
&self,
rng: &mut R,
namespace: &[u8],
subject: Self::Subject<'_, D>,
attestations: I,
) -> Verification<Self>
fn verify_attestations<R, D, I>( &self, rng: &mut R, namespace: &[u8], subject: Self::Subject<'_, D>, attestations: I, ) -> Verification<Self>
Batch-verifies attestations and separates valid attestations from signer indices that failed
verification. Read more
Source§fn assemble<I>(&self, attestations: I) -> Option<Self::Certificate>where
I: IntoIterator<Item = Attestation<Self>>,
fn assemble<I>(&self, attestations: I) -> Option<Self::Certificate>where
I: IntoIterator<Item = Attestation<Self>>,
Assembles attestations into a certificate, returning
None if the threshold is not met. Read moreSource§fn verify_certificate<R: Rng + CryptoRng, D: Digest>(
&self,
rng: &mut R,
namespace: &[u8],
subject: Self::Subject<'_, D>,
certificate: &Self::Certificate,
) -> bool
fn verify_certificate<R: Rng + CryptoRng, D: Digest>( &self, rng: &mut R, namespace: &[u8], subject: Self::Subject<'_, D>, certificate: &Self::Certificate, ) -> bool
Verifies a certificate that was recovered or received from the network.
Source§fn verify_certificates<'a, R, D, I>(
&self,
rng: &mut R,
namespace: &[u8],
certificates: I,
) -> bool
fn verify_certificates<'a, R, D, I>( &self, rng: &mut R, namespace: &[u8], certificates: I, ) -> bool
Verifies a stream of certificates, returning
false at the first failure.Source§fn is_attributable(&self) -> bool
fn is_attributable(&self) -> bool
Returns whether per-participant fault evidence can be safely exposed. Read more
Source§fn certificate_codec_config(&self) -> <Self::Certificate as Read>::Cfg
fn certificate_codec_config(&self) -> <Self::Certificate as Read>::Cfg
Encoding configuration for bounded-size certificate decoding used in network payloads.
Source§fn certificate_codec_config_unbounded() -> <Self::Certificate as Read>::Cfg
fn certificate_codec_config_unbounded() -> <Self::Certificate as Read>::Cfg
Encoding configuration that allows unbounded certificate decoding. Read more
Auto Trait Implementations§
impl Freeze for Scheme
impl RefUnwindSafe for Scheme
impl Send for Scheme
impl Sync for Scheme
impl Unpin for Scheme
impl UnwindSafe for Scheme
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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>
Converts
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>
Converts
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 more