pub trait Pedersen<G, I, S>: Shamir<G::Scalar, I, S>{
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§
sourcetype FeldmanVerifierSet: FeldmanVerifierSet<G>
type FeldmanVerifierSet: FeldmanVerifierSet<G>
The feldman verifier set
sourcetype PedersenVerifierSet: PedersenVerifierSet<G>
type PedersenVerifierSet: PedersenVerifierSet<G>
The pedersen verifier set
sourcetype PedersenResult: PedersenResult<G, I, S, ShareSet = <Self as Shamir<G::Scalar, I, S>>::ShareSet, FeldmanVerifierSet = Self::FeldmanVerifierSet, PedersenVerifierSet = Self::PedersenVerifierSet>
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§
sourcefn 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_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
sourcefn 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>
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