pub mod additive_shares;
pub use additive_shares::AdditiveShares;
#[cfg(test)]
mod tests {
use crate::{
algebra::elliptic_curve::{Curve, Curve25519Ristretto},
random::{self, Random},
sharing::unauthenticated::AdditiveShares,
types::heap_array::SubfieldElements,
};
#[test]
fn test_subfield_additive_shares() {
type C = Curve25519Ristretto;
type F = <C as Curve>::Scalar;
type M = typenum::U1;
let n_parties = 3;
let mut rng = random::test_rng();
let secret = SubfieldElements::<F, M>::random(&mut rng);
let shares = secret.to_additive_shares(n_parties, &mut rng);
let reconstructed = SubfieldElements::<F, M>::from_additive_shares(&shares);
assert_eq!(secret, reconstructed);
}
}