elastic_elgamal::dkg

Struct ParticipantCollectingPolynomials

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

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

During this stage, participants exchange public polynomials and openings for the commitments exchanged on the previous stage. The exchange happens using a public bulletin board (e.g., a blockchain).

Implementations§

Source§

impl<G: Group> ParticipantCollectingPolynomials<G>

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 public_info(&self) -> PublicInfo<'_, G>

Returns public participant information: participant’s public polynomial, proof of possession for the corresponding secret polynomial and the opening of the participant’s public key share commitment.

Source

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

Returns the indices of parties whose public polynomials were not provided.

Source

pub fn insert_public_polynomial( &mut self, participant_index: usize, info: PublicInfo<'_, G>, ) -> Result<(), Error>

Inserts public polynomial from participant with index participant_index their proof of possession of the public polynomial and opening of their previously provided commitment.

§Errors

Returns an error if provided polynomial doesn’t correspond to the previous commitment or the proof of possession is not valid.

§Panics

Panics if participant_index is out of bounds.

Source

pub fn finish_polynomials_phase(self) -> ParticipantExchangingSecrets<G>

Proceeds to the next step of the DKG protocol, in which participants exchange secret shares.

§Panics

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

Trait Implementations§

Source§

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

Source§

fn clone(&self) -> ParticipantCollectingPolynomials<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 ParticipantCollectingPolynomials<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 ParticipantCollectingPolynomials<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 ParticipantCollectingPolynomials<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>,