gmorph 0.1.0

Fully homomorphic encryption library for gWasm
Documentation
use gmorph::*;

fn main() {
    let key_pair = KeyPair::new();
    let enc: Vec<_> = (1..10).map(|x| Enc::encrypt(&key_pair, x)).collect();

    let serialized = serde_json::to_string(&enc).unwrap();
    let serialized_keypair = serde_json::to_string(&key_pair).unwrap();

    let deserialized: Vec<Enc> = serde_json::from_str(&serialized).unwrap();
    let enc_sum = deserialized
        .into_iter()
        .fold(Enc::encrypt(&key_pair, 0), |acc, x| acc + x);

    let key_pair: KeyPair = serde_json::from_str(&serialized_keypair).unwrap();
    let given = enc_sum.decrypt(&key_pair);
    let expected: u32 = (1..10).sum();

    assert_eq!(expected, given, "the sums should be equal, and equal to 45");

    println!("{}", given);
}