use super::Tensor;
use crate::{Ciphertext, Context, Decryptor, Plaintext, Result, SecretKey};
pub struct TensorDecryptor {
decryptor: Decryptor,
}
impl TensorDecryptor {
pub fn new(
ctx: &Context,
secret_key: &SecretKey,
) -> Result<Self> {
Ok(Self {
decryptor: Decryptor::new(ctx, secret_key)?,
})
}
}
impl TensorDecryptor {
pub fn decrypt(
&self,
ciphertext_batch: &Tensor<Ciphertext>,
) -> Result<Tensor<Plaintext>> {
ciphertext_batch
.map(|ciphertext| self.decryptor.decrypt(ciphertext))
.collect()
}
}