pub trait PkeParams: ParameterSet {
type NttVectorSize: ArraySize;
type EncryptionKeySize: ArraySize;
type CiphertextSize: ArraySize;
// Required methods
fn encode_u12(p: &NttVector<Self::K>) -> EncodedNttVector<Self>;
fn decode_u12(v: &EncodedNttVector<Self>) -> NttVector<Self::K>;
fn concat_ct(
u: Array<u8, EncodedPolynomialVectorSize<<Self as ParameterSet>::Du, <Self as ParameterSet>::K>>,
v: Array<u8, EncodedPolynomialSize<<Self as ParameterSet>::Dv>>,
) -> EncodedCiphertext<Self>;
fn split_ct(
ct: &EncodedCiphertext<Self>,
) -> (&Array<u8, EncodedPolynomialVectorSize<<Self as ParameterSet>::Du, <Self as ParameterSet>::K>>, &Array<u8, EncodedPolynomialSize<<Self as ParameterSet>::Dv>>);
fn concat_ek(
t_hat: EncodedNttVector<Self>,
rho: B32,
) -> EncodedEncryptionKey<Self>;
fn split_ek(
ek: &EncodedEncryptionKey<Self>,
) -> (&EncodedNttVector<Self>, &B32);
}
Expand description
Derived parameter relevant to K-PKE
Required Associated Types§
type NttVectorSize: ArraySize
type EncryptionKeySize: ArraySize
type CiphertextSize: ArraySize
Required Methods§
fn encode_u12(p: &NttVector<Self::K>) -> EncodedNttVector<Self>
fn decode_u12(v: &EncodedNttVector<Self>) -> NttVector<Self::K>
fn concat_ct( u: Array<u8, EncodedPolynomialVectorSize<<Self as ParameterSet>::Du, <Self as ParameterSet>::K>>, v: Array<u8, EncodedPolynomialSize<<Self as ParameterSet>::Dv>>, ) -> EncodedCiphertext<Self>
fn split_ct( ct: &EncodedCiphertext<Self>, ) -> (&Array<u8, EncodedPolynomialVectorSize<<Self as ParameterSet>::Du, <Self as ParameterSet>::K>>, &Array<u8, EncodedPolynomialSize<<Self as ParameterSet>::Dv>>)
fn concat_ek( t_hat: EncodedNttVector<Self>, rho: B32, ) -> EncodedEncryptionKey<Self>
fn split_ek(ek: &EncodedEncryptionKey<Self>) -> (&EncodedNttVector<Self>, &B32)
Object Safety§
This trait is not object safe.