Struct phron_finality::abft::crypto::Keychain
source · pub struct Keychain {
id: NodeIndex,
authority_pen: AuthorityPen,
authority_verifier: AuthorityVerifier,
}
Expand description
Keychain combines an AuthorityPen and AuthorityVerifier into one object implementing the AlephBFT MultiKeychain trait.
Fields§
§id: NodeIndex
Implementations§
source§impl Keychain
impl Keychain
sourcepub fn new(
id: NodeIndex,
authority_verifier: AuthorityVerifier,
authority_pen: AuthorityPen
) -> Self
pub fn new( id: NodeIndex, authority_verifier: AuthorityVerifier, authority_pen: AuthorityPen ) -> Self
Constructs a new keychain from a signing contraption and verifier, with the specified node index.
fn index(&self) -> NodeIndex
fn node_count(&self) -> NodeCount
fn sign(&self, msg: &[u8]) -> Signature
fn verify<I: Into<NodeIndex>>( &self, msg: &[u8], sgn: &Signature, index: I ) -> bool
fn is_complete(&self, msg: &[u8], partial: &SignatureSet<Signature>) -> bool
Trait Implementations§
source§impl Keychain for Keychain
impl Keychain for Keychain
type Signature = Signature
source§fn node_count(&self) -> NodeCount
fn node_count(&self) -> NodeCount
Returns the total number of known public keys.
source§impl Keychain for Keychain
impl Keychain for Keychain
type Signature = Signature
source§fn node_count(&self) -> NodeCount
fn node_count(&self) -> NodeCount
Returns the total number of known public keys.
source§impl MultiKeychain for Keychain
impl MultiKeychain for Keychain
type PartialMultisignature = SignatureSet<Signature>
source§fn bootstrap_multi(
&self,
signature: &Signature,
index: NodeIndex
) -> Self::PartialMultisignature
fn bootstrap_multi( &self, signature: &Signature, index: NodeIndex ) -> Self::PartialMultisignature
Transform a single signature to a multisignature consisting of the signature.
source§fn is_complete(&self, msg: &[u8], partial: &Self::PartialMultisignature) -> bool
fn is_complete(&self, msg: &[u8], partial: &Self::PartialMultisignature) -> bool
Checks if enough signatures have beed added.
source§impl MultiKeychain for Keychain
impl MultiKeychain for Keychain
type PartialMultisignature = SignatureSet<Signature>
source§fn bootstrap_multi(
&self,
signature: &Signature,
index: NodeIndex
) -> Self::PartialMultisignature
fn bootstrap_multi( &self, signature: &Signature, index: NodeIndex ) -> Self::PartialMultisignature
Transform a single signature to a multisignature consisting of the signature.
source§fn is_complete(&self, msg: &[u8], partial: &Self::PartialMultisignature) -> bool
fn is_complete(&self, msg: &[u8], partial: &Self::PartialMultisignature) -> bool
Checks if enough signatures have beed added.
Auto Trait Implementations§
impl !RefUnwindSafe for Keychain
impl Send for Keychain
impl Sync for Keychain
impl Unpin for Keychain
impl !UnwindSafe for Keychain
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
Mutably borrows from an owned value. Read more
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<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§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read more§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.