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
Initializer
and aClosedKeyRegistration
. - This ensures that a
MerkleTree
root 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.4.9: 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.4.9: 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.4.9: 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.4.9: 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.4.9: 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.4.9: Use get_closed_key_registration
instead
pub fn get_closed_reg(&self) -> Option<ClosedKeyRegistration<D>>
get_closed_key_registration
insteadGet closed key registration