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}