pub struct RandomizedParams<C: Ciphersuite> { /* private fields */ }Expand description
Randomized parameters for a signing instance of randomized FROST.
Implementations§
Source§impl<C: Ciphersuite> RandomizedParams<C>
Auto-generated by derive_getters::Getters.
impl<C: Ciphersuite> RandomizedParams<C>
Auto-generated by derive_getters::Getters.
Sourcepub fn randomizer(&self) -> &Randomizer<C>
pub fn randomizer(&self) -> &Randomizer<C>
The randomizer, also called α
Sourcepub fn randomizer_element(&self) -> &<C::Group as Group>::Element
pub fn randomizer_element(&self) -> &<C::Group as Group>::Element
The generator multiplied by the randomizer.
Sourcepub fn randomized_verifying_key(&self) -> &VerifyingKey<C>
pub fn randomized_verifying_key(&self) -> &VerifyingKey<C>
The randomized group public key. The group public key added to the randomizer element.
Source§impl<C> RandomizedParams<C>where
C: RandomizedCiphersuite,
impl<C> RandomizedParams<C>where
C: RandomizedCiphersuite,
Sourcepub fn new<R: RngCore + CryptoRng>(
group_verifying_key: &VerifyingKey<C>,
signing_package: &SigningPackage<C>,
rng: R,
) -> Result<Self, Error<C>>
👎Deprecated: switch to new_from_commitments(), passing the commitments from SigningPackage
pub fn new<R: RngCore + CryptoRng>( group_verifying_key: &VerifyingKey<C>, signing_package: &SigningPackage<C>, rng: R, ) -> Result<Self, Error<C>>
Create a new RandomizedParams for the given VerifyingKey and
the given SigningPackage.
Sourcepub fn new_from_commitments<R: RngCore + CryptoRng>(
group_verifying_key: &VerifyingKey<C>,
signing_commitments: &BTreeMap<Identifier<C>, SigningCommitments<C>>,
rng: R,
) -> Result<(Self, Vec<u8>), Error<C>>
pub fn new_from_commitments<R: RngCore + CryptoRng>( group_verifying_key: &VerifyingKey<C>, signing_commitments: &BTreeMap<Identifier<C>, SigningCommitments<C>>, rng: R, ) -> Result<(Self, Vec<u8>), Error<C>>
Create a new RandomizedParams for the given VerifyingKey and the
given signing commitments.
The SigningCommitments map must be the one being used in the current
FROST signing run (built by the Coordinator after receiving from
Participants). It is hashed into the randomizer calculation, which binds
it to that specific commitments.
Returns the generated RandomizedParams and a randomizer seed. Both
can be used to regenerate the RandomizedParams with
Self::regenerate_from_seed_and_commitments().
Sourcepub fn regenerate_from_seed_and_commitments(
group_verifying_key: &VerifyingKey<C>,
randomizer_seed: &[u8],
signing_commitments: &BTreeMap<Identifier<C>, SigningCommitments<C>>,
) -> Result<Self, Error<C>>
pub fn regenerate_from_seed_and_commitments( group_verifying_key: &VerifyingKey<C>, randomizer_seed: &[u8], signing_commitments: &BTreeMap<Identifier<C>, SigningCommitments<C>>, ) -> Result<Self, Error<C>>
Regenerate a RandomizedParams with the given VerifyingKey from
the given given signing commitments.
Returns the generated RandomizedParams and a randomizer seed, which
can be used to regenerate the RandomizedParams.
Regenerates a RandomizedParams generated with
Self::new_from_commitments(). This can be used by Participants after
receiving the randomizer seed and commitments in Round 2. This is better
than the Coordinator simply generating a Randomizer and sending it
to Participants, because in this approach the participants don’t need to
fully trust the Coordinator’s random number generator (i.e. even if the
randomizer seed was not randomly generated the randomizer will still
be).
This should be used exclusively with the output of
Self::new_from_commitments(); it is strongly suggested to not
attempt generating the randomizer seed yourself (even if the point of
this approach is to hedge against issues in the randomizer seed
generation).
Source§impl<C> RandomizedParams<C>where
C: Ciphersuite,
impl<C> RandomizedParams<C>where
C: Ciphersuite,
Sourcepub fn from_randomizer(
group_verifying_key: &VerifyingKey<C>,
randomizer: Randomizer<C>,
) -> Self
pub fn from_randomizer( group_verifying_key: &VerifyingKey<C>, randomizer: Randomizer<C>, ) -> Self
Create a new RandomizedParams for the given VerifyingKey and the
given participants for the given randomizer. The randomizer MUST
be generated uniformly at random! Use RandomizedParams::new() which
generates a fresh randomizer, unless your application requires generating
a randomizer outside.
Trait Implementations§
Source§impl<C: Clone + Ciphersuite> Clone for RandomizedParams<C>
impl<C: Clone + Ciphersuite> Clone for RandomizedParams<C>
Source§fn clone(&self) -> RandomizedParams<C>
fn clone(&self) -> RandomizedParams<C>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more