VerifyingKeyParams

Trait VerifyingKeyParams 

Source
pub trait VerifyingKeyParams: ParameterSet {
    type T1Size: ArraySize;
    type VerifyingKeySize: ArraySize;

    // Required methods
    fn encode_t1(
        t1: &Vector<BaseField, Self::K>,
    ) -> Array<u8, <Self as VerifyingKeyParams>::T1Size>;
    fn decode_t1(
        enc: &Array<u8, <Self as VerifyingKeyParams>::T1Size>,
    ) -> Vector<BaseField, Self::K>;
    fn concat_vk(
        rho: B32,
        t1: Array<u8, <Self as VerifyingKeyParams>::T1Size>,
    ) -> EncodedVerifyingKey<Self>;
    fn split_vk(
        enc: &EncodedVerifyingKey<Self>,
    ) -> (&B32, &Array<u8, <Self as VerifyingKeyParams>::T1Size>);
}

Required Associated Types§

Required Methods§

Source

fn encode_t1( t1: &Vector<BaseField, Self::K>, ) -> Array<u8, <Self as VerifyingKeyParams>::T1Size>

Source

fn decode_t1( enc: &Array<u8, <Self as VerifyingKeyParams>::T1Size>, ) -> Vector<BaseField, Self::K>

Source

fn concat_vk( rho: B32, t1: Array<u8, <Self as VerifyingKeyParams>::T1Size>, ) -> EncodedVerifyingKey<Self>

Source

fn split_vk( enc: &EncodedVerifyingKey<Self>, ) -> (&B32, &Array<u8, <Self as VerifyingKeyParams>::T1Size>)

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> VerifyingKeyParams for P
where P: ParameterSet, U320: Mul<P::K>, Prod<U320, P::K>: ArraySize + Div<P::K, Output = U320> + Rem<P::K, Output = U0>, U32: Add<Prod<U320, P::K>>, Sum<U32, U32>: ArraySize, Sum<U32, Prod<U320, P::K>>: ArraySize + Sub<U32, Output = Prod<U320, P::K>>,