//! RSA OAEP encryption. use super::super::{padding, public, PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN}; use crate::{error, rand}; use alloc::boxed::Box; impl public::Key { /// OAEP Encrypts `plaintext`, returning the ciphertext. pub fn encrypt_oaep_bytes_less_safe( &self, encoding: &'static padding::OaepEncoding, plaintext: &[u8], rng: &dyn rand::SecureRandom, ) -> Result, error::Unspecified> { let padded = padding::oaep_encode(encoding, plaintext, self.n().len_bits(), rng)?; let mut ciphertext = [0u8; PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN]; let ciphertext = self.exponentiate(untrusted::Input::from(&padded), &mut ciphertext)?; Ok(ciphertext.into()) } }