arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-schemes/src/tfhe/blind_rotation/encryption/key_compressed.rs
poulpy-schemes/src/tfhe/blind_rotation/encryption/key_compressed.rsRaw
 1use poulpy_core::{
 2    GetDistribution,
 3    layouts::{GGSWInfos, GLWEInfos, GLWESecretPreparedToRef, LWEInfos, LWESecretToRef},
 4};
 5use poulpy_hal::{
 6    layouts::{Backend, DataMut, Scratch},
 7    source::Source,
 8};
 9
10use crate::tfhe::blind_rotation::{BlindRotationAlgo, BlindRotationKeyCompressed};
11
12pub trait BlindRotationKeyCompressedEncryptSk<B: Backend, BRA: BlindRotationAlgo> {
13    fn blind_rotation_key_compressed_encrypt_sk_tmp_bytes<A>(&self, infos: &A) -> usize
14    where
15        A: GGSWInfos;
16
17    #[allow(clippy::too_many_arguments)]
18    fn blind_rotation_key_compressed_encrypt_sk<D, S0, S1>(
19        &self,
20        res: &mut BlindRotationKeyCompressed<D, BRA>,
21        sk_glwe: &S0,
22        sk_lwe: &S1,
23        seed_xa: [u8; 32],
24        source_xe: &mut Source,
25        scratch: &mut Scratch<B>,
26    ) where
27        D: DataMut,
28        S0: GLWESecretPreparedToRef<B> + GLWEInfos,
29        S1: LWESecretToRef + LWEInfos + GetDistribution;
30}