| 115 | let mut rng = StdRng::seed_from_u64(0u64); |
| 116 | |
| 117 | fn check<G: AffineRepr>(rng: &mut StdRng) { |
| 118 | let g = G::Group::rand(rng).into_affine(); |
| 119 | let (sk, pk) = keygen(rng, &g); |
| 120 | let mut msg = vec![]; |
| 121 | let r = G::ScalarField::rand(rng); |
| 122 | r.serialize_compressed(&mut msg).unwrap(); |
| 123 | let enc = Encryption::<G, 32, 24>::encrypt::<_, XChaCha20Poly1305>( |
| 124 | rng, &msg, &pk.0, &g, None, None, |
| 125 | ); |
| 126 | let decrypted = enc.decrypt::<XChaCha20Poly1305>(&sk.0, None, None); |
| 127 | assert_eq!(msg, decrypted); |
| 128 | let decrypted_r: G::ScalarField = |
| 129 | CanonicalDeserialize::deserialize_compressed(&decrypted[..]).unwrap(); |
| 130 | assert_eq!(decrypted_r, r); |
| 131 | } |
| 132 | |
| 133 | check::<G1Affine>(&mut rng); |
| 134 | check::<G2Affine>(&mut rng); |