wsts/
vss.rs

1use polynomial::Polynomial;
2use rand_core::{CryptoRng, RngCore};
3
4use crate::curve::scalar::Scalar;
5
6/// A verifiable secret share algorithm
7pub struct VSS {}
8
9impl VSS {
10    /// Construct a random polynomial of the passed degree `n`
11    pub fn random_poly<RNG: RngCore + CryptoRng>(n: u32, rng: &mut RNG) -> Polynomial<Scalar> {
12        let params: Vec<Scalar> = (0..n + 1).map(|_| Scalar::random(rng)).collect();
13        Polynomial::new(params)
14    }
15}