Skip to main content

RandomizedParams

Struct RandomizedParams 

Source
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.

Source

pub fn randomizer(&self) -> &Randomizer<C>

The randomizer, also called α

Source

pub fn randomizer_element(&self) -> &<C::Group as Group>::Element

The generator multiplied by the randomizer.

Source

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>

Source

pub 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

Create a new RandomizedParams for the given VerifyingKey and the given SigningPackage.

Source

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().

Source

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,

Source

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>
where C::Group: Clone,

Source§

fn clone(&self) -> RandomizedParams<C>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<C> Debug for RandomizedParams<C>
where C: Ciphersuite,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<C: PartialEq + Ciphersuite> PartialEq for RandomizedParams<C>
where C::Group: PartialEq,

Source§

fn eq(&self, other: &RandomizedParams<C>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<C: Eq + Ciphersuite> Eq for RandomizedParams<C>
where C::Group: Eq,

Source§

impl<C: Ciphersuite> StructuralPartialEq for RandomizedParams<C>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.