`g` is the generator used in the scheme to generate public key and ephemeral public key by sender/encryptor
(
rng: &mut R,
g: &G,
)
| 42 | |
| 43 | /// `g` is the generator used in the scheme to generate public key and ephemeral public key by sender/encryptor |
| 44 | pub fn keygen<R: RngCore, G: AffineRepr>( |
| 45 | rng: &mut R, |
| 46 | g: &G, |
| 47 | ) -> (SecretKey<G::ScalarField>, PublicKey<G>) { |
| 48 | let sk = SecretKey::new(rng); |
| 49 | let pk = PublicKey::new(&sk, g); |
| 50 | (sk, pk) |
| 51 | } |
| 52 | |
| 53 | /// Elgamal encryption of a group element `m` |
| 54 | #[cfg_attr(feature = "serde", cfg_eval::cfg_eval, serde_with::serde_as)] |