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 = 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); }