pub trait PkeParams: ParameterSet {
type NttVectorSize: ArraySize;
type EncryptionKeySize: ArraySize;
type CiphertextSize: ArraySize;
// Required methods
fn encode_u12(
p: &NttVector<Self::K>,
) -> Array<u8, <Self as PkeParams>::NttVectorSize>;
fn decode_u12(
v: &Array<u8, <Self as PkeParams>::NttVectorSize>,
) -> NttVector<Self::K>;
fn concat_ct(
u: Array<u8, <<Self as ParameterSet>::Du as VectorEncodingSize<<Self as ParameterSet>::K>>::EncodedPolynomialVectorSize>,
v: Array<u8, <<Self as ParameterSet>::Dv as EncodingSize>::EncodedPolynomialSize>,
) -> Array<u8, <Self as PkeParams>::CiphertextSize>;
fn split_ct(
ct: &Array<u8, <Self as PkeParams>::CiphertextSize>,
) -> (&Array<u8, <<Self as ParameterSet>::Du as VectorEncodingSize<<Self as ParameterSet>::K>>::EncodedPolynomialVectorSize>, &Array<u8, <<Self as ParameterSet>::Dv as EncodingSize>::EncodedPolynomialSize>);
fn concat_ek(
t_hat: Array<u8, <Self as PkeParams>::NttVectorSize>,
rho: B32,
) -> Array<u8, <Self as PkeParams>::EncryptionKeySize>;
fn split_ek(
ek: &Array<u8, <Self as PkeParams>::EncryptionKeySize>,
) -> (&Array<u8, <Self as PkeParams>::NttVectorSize>, &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>, ) -> Array<u8, <Self as PkeParams>::NttVectorSize>
fn decode_u12( v: &Array<u8, <Self as PkeParams>::NttVectorSize>, ) -> NttVector<Self::K>
fn concat_ct( u: Array<u8, <<Self as ParameterSet>::Du as VectorEncodingSize<<Self as ParameterSet>::K>>::EncodedPolynomialVectorSize>, v: Array<u8, <<Self as ParameterSet>::Dv as EncodingSize>::EncodedPolynomialSize>, ) -> Array<u8, <Self as PkeParams>::CiphertextSize>
fn split_ct( ct: &Array<u8, <Self as PkeParams>::CiphertextSize>, ) -> (&Array<u8, <<Self as ParameterSet>::Du as VectorEncodingSize<<Self as ParameterSet>::K>>::EncodedPolynomialVectorSize>, &Array<u8, <<Self as ParameterSet>::Dv as EncodingSize>::EncodedPolynomialSize>)
fn concat_ek( t_hat: Array<u8, <Self as PkeParams>::NttVectorSize>, rho: B32, ) -> Array<u8, <Self as PkeParams>::EncryptionKeySize>
fn split_ek( ek: &Array<u8, <Self as PkeParams>::EncryptionKeySize>, ) -> (&Array<u8, <Self as PkeParams>::NttVectorSize>, &B32)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.