pub fn encrypt( public_key: &[u8; 32], message: &[u8], rng: impl Rng, ) -> Result<Vec<u8>, EncryptError>