elastic_elgamal::dkg

Struct ParticipantCollectingCommitments

Source
pub struct ParticipantCollectingCommitments<G: Group> { /* private fields */ }
Expand description

Participant state during the first stage of the committed Pedersen’s distributed key generation.

During this stage, participants exchange commitments to their public keys via a public bulletin board (e.g., a blockchain).

Implementations§

Source§

impl<G: Group> ParticipantCollectingCommitments<G>

Source

pub fn new<R: CryptoRng + RngCore>( params: Params, index: usize, rng: &mut R, ) -> Self

Instantiates a distributed key generation participant.

§Panics

Panics if index is greater or equal to the number of shares.

Source

pub fn params(&self) -> &Params

Returns params of this threshold ElGamal encryption scheme.

Source

pub fn index(&self) -> usize

Returns 0-based index of this participant.

Source

pub fn commitment(&self) -> [u8; 32]

Returns the commitment of participant’s share of the joint public key.

§Panics

Panics if the commitment is missing which can only happen if this struct got corrupted (e.g., after deserialization).

Source

pub fn insert_commitment( &mut self, participant_index: usize, commitment: [u8; 32], )

Inserts a commitment from the participant with index participant_index.

§Panics

Panics if commitment for given participant was already provided or participant_index is out of bounds.

Source

pub fn missing_commitments(&self) -> impl Iterator<Item = usize> + '_

Returns indices of parties whose commitments were not provided.

Source

pub fn finish_commitment_phase(self) -> ParticipantCollectingPolynomials<G>

Proceeds to the next step of the DKG protocol, in which participants exchange public polynomials.

§Panics

Panics if any commitments are missing. If this is not known statically, check with Self::missing_commitments() before calling this method.

Trait Implementations§

Source§

impl<G: Clone + Group> Clone for ParticipantCollectingCommitments<G>

Source§

fn clone(&self) -> ParticipantCollectingCommitments<G>

Returns a copy 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<G: Debug + Group> Debug for ParticipantCollectingCommitments<G>

Source§

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

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

impl<'de, G: Group> Deserialize<'de> for ParticipantCollectingCommitments<G>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<G: Group> Serialize for ParticipantCollectingCommitments<G>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,