SignatureParams

Trait SignatureParams 

Source
pub trait SignatureParams: ParameterSet {
    type W1Size: ArraySize;
    type ZSize: ArraySize;
    type HintSize: ArraySize;
    type SignatureSize: ArraySize;

    const GAMMA1_MINUS_BETA: u32;
    const GAMMA2_MINUS_BETA: u32;

    // Required methods
    fn split_hint(
        y: &Array<u8, <Self as SignatureParams>::HintSize>,
    ) -> (&Array<u8, <Self as ParameterSet>::Omega>, &Array<u8, <Self as ParameterSet>::K>);
    fn encode_w1(
        t1: &Vector<BaseField, Self::K>,
    ) -> Array<u8, <Self as SignatureParams>::W1Size>;
    fn decode_w1(
        enc: &Array<u8, <Self as SignatureParams>::W1Size>,
    ) -> Vector<BaseField, Self::K>;
    fn encode_z(
        z: &Vector<BaseField, Self::L>,
    ) -> Array<u8, <Self as SignatureParams>::ZSize>;
    fn decode_z(
        enc: &Array<u8, <Self as SignatureParams>::ZSize>,
    ) -> Vector<BaseField, Self::L>;
    fn concat_sig(
        c_tilde: Array<u8, <Self as ParameterSet>::Lambda>,
        z: Array<u8, <Self as SignatureParams>::ZSize>,
        h: Array<u8, <Self as SignatureParams>::HintSize>,
    ) -> EncodedSignature<Self>;
    fn split_sig(
        enc: &EncodedSignature<Self>,
    ) -> (&Array<u8, <Self as ParameterSet>::Lambda>, &Array<u8, <Self as SignatureParams>::ZSize>, &Array<u8, <Self as SignatureParams>::HintSize>);
}

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn split_hint( y: &Array<u8, <Self as SignatureParams>::HintSize>, ) -> (&Array<u8, <Self as ParameterSet>::Omega>, &Array<u8, <Self as ParameterSet>::K>)

Source

fn encode_w1( t1: &Vector<BaseField, Self::K>, ) -> Array<u8, <Self as SignatureParams>::W1Size>

Source

fn decode_w1( enc: &Array<u8, <Self as SignatureParams>::W1Size>, ) -> Vector<BaseField, Self::K>

Source

fn encode_z( z: &Vector<BaseField, Self::L>, ) -> Array<u8, <Self as SignatureParams>::ZSize>

Source

fn decode_z( enc: &Array<u8, <Self as SignatureParams>::ZSize>, ) -> Vector<BaseField, Self::L>

Source

fn concat_sig( c_tilde: Array<u8, <Self as ParameterSet>::Lambda>, z: Array<u8, <Self as SignatureParams>::ZSize>, h: Array<u8, <Self as SignatureParams>::HintSize>, ) -> EncodedSignature<Self>

Source

fn split_sig( enc: &EncodedSignature<Self>, ) -> (&Array<u8, <Self as ParameterSet>::Lambda>, &Array<u8, <Self as SignatureParams>::ZSize>, &Array<u8, <Self as SignatureParams>::HintSize>)

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.

Implementors§

Source§

impl<P> SignatureParams for P
where P: ParameterSet, U32: Mul<P::W1Bits>, <P::W1Bits as EncodingSize>::EncodedPolynomialSize: Mul<P::K>, Prod<<P::W1Bits as EncodingSize>::EncodedPolynomialSize, P::K>: ArraySize + Div<P::K, Output = <P::W1Bits as EncodingSize>::EncodedPolynomialSize> + Rem<P::K, Output = U0>, P::Gamma1: Sub<U1>, (Diff<P::Gamma1, U1>, P::Gamma1): RangeEncodingSize, <<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize: Mul<P::L>, Prod<<<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize, P::L>: ArraySize + Div<P::L, Output = <<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize> + Rem<P::L, Output = U0>, P::Omega: Add<P::K>, Sum<P::Omega, P::K>: ArraySize + Sub<P::Omega, Output = P::K>, P::Lambda: Add<Prod<<<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize, P::L>>, Sum<P::Lambda, Prod<<<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize, P::L>>: ArraySize + Add<Sum<P::Omega, P::K>> + Sub<P::Lambda, Output = Prod<<<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize, P::L>>, Sum<Sum<P::Lambda, Prod<<<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize, P::L>>, Sum<P::Omega, P::K>>: ArraySize + Sub<Sum<P::Lambda, Prod<<<(Diff<P::Gamma1, U1>, P::Gamma1) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize, P::L>>, Output = Sum<P::Omega, P::K>>,