Trait vsss_rs::pedersen::Pedersen

source ·
pub trait Pedersen<G, I, S>: Shamir<G::Scalar, I, S>
where G: Group + GroupEncoding + Default, I: ShareIdentifier, S: Share<Identifier = I>,
{ type FeldmanVerifierSet: FeldmanVerifierSet<G>; type PedersenVerifierSet: PedersenVerifierSet<G>; type PedersenResult: PedersenResult<G, I, S, ShareSet = <Self as Shamir<G::Scalar, I, S>>::ShareSet, FeldmanVerifierSet = Self::FeldmanVerifierSet, PedersenVerifierSet = Self::PedersenVerifierSet>; // Provided methods fn split_secret_with_blind_verifier( threshold: usize, limit: usize, secret: G::Scalar, blinder: Option<G::Scalar>, secret_generator: Option<G>, blinder_generator: Option<G>, rng: impl RngCore + CryptoRng ) -> VsssResult<Self::PedersenResult> { ... } fn split_secret_with_participant_generator_and_blind_verifiers<P: ParticipantNumberGenerator<G::Scalar>>( threshold: usize, limit: usize, secret: G::Scalar, blinder: Option<G::Scalar>, secret_generator: Option<G>, blinder_generator: Option<G>, rng: impl RngCore + CryptoRng, participant_generator: P ) -> VsssResult<Self::PedersenResult> { ... } }
Expand description

A secret sharing scheme that uses pedersen commitments as verifiers (see https://www.cs.cornell.edu/courses/cs754/2001fa/129.PDF)

Required Associated Types§

source

type FeldmanVerifierSet: FeldmanVerifierSet<G>

The feldman verifier set

source

type PedersenVerifierSet: PedersenVerifierSet<G>

The pedersen verifier set

source

type PedersenResult: PedersenResult<G, I, S, ShareSet = <Self as Shamir<G::Scalar, I, S>>::ShareSet, FeldmanVerifierSet = Self::FeldmanVerifierSet, PedersenVerifierSet = Self::PedersenVerifierSet>

The result from running split_secret_with_verifier

Provided Methods§

source

fn split_secret_with_blind_verifier( threshold: usize, limit: usize, secret: G::Scalar, blinder: Option<G::Scalar>, secret_generator: Option<G>, blinder_generator: Option<G>, rng: impl RngCore + CryptoRng ) -> VsssResult<Self::PedersenResult>

Create shares from a secret. blinder is the blinding factor. If None, a random value is generated in G::Scalar. secret_generator is the generator point to use for shares. If None, the default generator is used. blinder_generator is the generator point to use for blinder shares. If None, a random generator is used

Returns the secret shares, blinder, blinder shares, and the verifiers

source

fn split_secret_with_participant_generator_and_blind_verifiers<P: ParticipantNumberGenerator<G::Scalar>>( threshold: usize, limit: usize, secret: G::Scalar, blinder: Option<G::Scalar>, secret_generator: Option<G>, blinder_generator: Option<G>, rng: impl RngCore + CryptoRng, participant_generator: P ) -> VsssResult<Self::PedersenResult>

Create shares from a secret and a participant number generator. blinder is the blinding factor. If None, a random value is generated in G::Scalar. secret_generator is the generator point to use for shares. If None, the default generator is used. blinder_generator is the generator point to use for blinder shares. If None, a random generator is used

Returns the secret shares, blinder, blinder shares, and the verifiers

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<G> Pedersen<G, u8, Vec<u8>> for DefaultStdVsss<G>

source§

impl<G, I, S> Pedersen<G, I, S> for StdVsss<G, I, S>
where G: Group + GroupEncoding + Default, I: ShareIdentifier, S: Share<Identifier = I>,