Skip to main content

primitives/sharing/unauthenticated/
mod.rs

1pub mod additive_shares;
2
3pub use additive_shares::AdditiveShares;
4
5#[cfg(test)]
6mod tests {
7    use crate::{
8        algebra::elliptic_curve::{Curve, Curve25519Ristretto},
9        random::{self, Random},
10        sharing::unauthenticated::AdditiveShares,
11        types::heap_array::SubfieldElements,
12    };
13
14    #[test]
15    fn test_subfield_additive_shares() {
16        // Context
17        type C = Curve25519Ristretto;
18        type F = <C as Curve>::Scalar;
19        type M = typenum::U1;
20        let n_parties = 3;
21        let mut rng = random::test_rng();
22
23        let secret = SubfieldElements::<F, M>::random(&mut rng);
24        let shares = secret.to_additive_shares(n_parties, &mut rng);
25        let reconstructed = SubfieldElements::<F, M>::from_additive_shares(&shares);
26
27        assert_eq!(secret, reconstructed);
28    }
29}