pub struct Signer<D: Digest> { /* private fields */ }Expand description
Participant in the protocol can sign messages.
- If the signer has
closed_reg, then it can generate Stm certificate.- This kind of signer can only be generated out of an
Initializerand aClosedKeyRegistration. - This ensures that a
MerkleTreeroot is not computed before all participants have registered.
- This kind of signer can only be generated out of an
- If the signer does not have
closed_reg, then it is a core signer.- This kind of signer cannot participate certificate generation.
- Signature generated can be verified by a full node verifier (core verifier).
Implementations§
Source§impl<D: Clone + Digest + FixedOutput> Signer<D>
impl<D: Clone + Digest + FixedOutput> Signer<D>
Sourcepub fn set_stm_signer(
signer_index: u64,
stake: Stake,
params: Parameters,
sk: BlsSigningKey,
vk: VerificationKey,
closed_reg: ClosedKeyRegistration<D>,
) -> Signer<D>
👎Deprecated since 0.5.0: Use set_signer instead
pub fn set_stm_signer( signer_index: u64, stake: Stake, params: Parameters, sk: BlsSigningKey, vk: VerificationKey, closed_reg: ClosedKeyRegistration<D>, ) -> Signer<D>
set_signer insteadCreate a Signer for given input
Sourcepub fn set_core_signer(
signer_index: u64,
stake: Stake,
params: Parameters,
sk: BlsSigningKey,
vk: VerificationKey,
) -> Signer<D>
👎Deprecated since 0.5.0: Use set_basic_signer instead
pub fn set_core_signer( signer_index: u64, stake: Stake, params: Parameters, sk: BlsSigningKey, vk: VerificationKey, ) -> Signer<D>
set_basic_signer insteadCreate a core signer (no registration data) for given input
Sourcepub fn sign(&self, msg: &[u8]) -> Option<SingleSignature>
pub fn sign(&self, msg: &[u8]) -> Option<SingleSignature>
This function produces a signature following the description of Section 2.4.
Once the signature is produced, this function checks whether any index in [0,..,self.params.m]
wins the lottery by evaluating the dense mapping.
It records all the winning indexes in Self.indexes.
If it wins at least one lottery, it stores the signer’s merkle tree index. The proof of membership
will be handled by the aggregator.
Sourcepub fn get_verification_key(&self) -> VerificationKey
pub fn get_verification_key(&self) -> VerificationKey
Extract the verification key.
Sourcepub fn verification_key(&self) -> VerificationKey
👎Deprecated since 0.5.0: Use get_verification_key instead
pub fn verification_key(&self) -> VerificationKey
get_verification_key insteadExtract the verification key.
Sourcepub fn basic_sign(
&self,
msg: &[u8],
total_stake: Stake,
) -> Option<SingleSignature>
pub fn basic_sign( &self, msg: &[u8], total_stake: Stake, ) -> Option<SingleSignature>
A basic signature generated without closed key registration.
The basic signature can be verified by basic verifier.
Once the signature is produced, this function checks whether any index in [0,..,self.params.m]
wins the lottery by evaluating the dense mapping.
It records all the winning indexes in Self.indexes.
Sourcepub fn core_sign(
&self,
msg: &[u8],
total_stake: Stake,
) -> Option<SingleSignature>
👎Deprecated since 0.5.0: Use basic_sign instead
pub fn core_sign( &self, msg: &[u8], total_stake: Stake, ) -> Option<SingleSignature>
basic_sign insteadA basic signature generated without closed key registration.
The basic signature can be verified by basic verifier.
Once the signature is produced, this function checks whether any index in [0,..,self.params.m]
wins the lottery by evaluating the dense mapping.
It records all the winning indexes in Self.indexes.
Sourcepub fn check_lottery(
&self,
msg: &[u8],
sigma: &BlsSignature,
total_stake: Stake,
) -> Vec<u64>
pub fn check_lottery( &self, msg: &[u8], sigma: &BlsSignature, total_stake: Stake, ) -> Vec<u64>
Collects and returns the winning indices.
Sourcepub fn get_params(&self) -> Parameters
👎Deprecated since 0.5.0: Use get_parameters instead
pub fn get_params(&self) -> Parameters
get_parameters insteadGet Parameters
Sourcepub fn get_closed_reg(&self) -> Option<ClosedKeyRegistration<D>>
👎Deprecated since 0.5.0: Use get_closed_key_registration instead
pub fn get_closed_reg(&self) -> Option<ClosedKeyRegistration<D>>
get_closed_key_registration insteadGet closed key registration
Trait Implementations§
Auto Trait Implementations§
impl<D> Freeze for Signer<D>
impl<D> RefUnwindSafe for Signer<D>where
D: RefUnwindSafe,
impl<D> Send for Signer<D>
impl<D> Sync for Signer<D>
impl<D> Unpin for Signer<D>
impl<D> UnwindSafe for Signer<D>where
D: RefUnwindSafe,
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,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.