pub trait SigningKeyParams: ParameterSet {
type S1Size: ArraySize;
type S2Size: ArraySize;
type T0Size: ArraySize;
type SigningKeySize: ArraySize;
// Required methods
fn encode_s1(
s1: &Vector<BaseField, Self::L>,
) -> Array<u8, <Self as SigningKeyParams>::S1Size>;
fn decode_s1(
enc: &Array<u8, <Self as SigningKeyParams>::S1Size>,
) -> Vector<BaseField, Self::L>;
fn encode_s2(
s2: &Vector<BaseField, Self::K>,
) -> Array<u8, <Self as SigningKeyParams>::S2Size>;
fn decode_s2(
enc: &Array<u8, <Self as SigningKeyParams>::S2Size>,
) -> Vector<BaseField, Self::K>;
fn encode_t0(
t0: &Vector<BaseField, Self::K>,
) -> Array<u8, <Self as SigningKeyParams>::T0Size>;
fn decode_t0(
enc: &Array<u8, <Self as SigningKeyParams>::T0Size>,
) -> Vector<BaseField, Self::K>;
fn concat_sk(
rho: B32,
K: B32,
tr: Array<u8, U64>,
s1: Array<u8, <Self as SigningKeyParams>::S1Size>,
s2: Array<u8, <Self as SigningKeyParams>::S2Size>,
t0: Array<u8, <Self as SigningKeyParams>::T0Size>,
) -> EncodedSigningKey<Self>;
fn split_sk(
enc: &EncodedSigningKey<Self>,
) -> (&B32, &B32, &Array<u8, U64>, &Array<u8, <Self as SigningKeyParams>::S1Size>, &Array<u8, <Self as SigningKeyParams>::S2Size>, &Array<u8, <Self as SigningKeyParams>::T0Size>);
}Required Associated Types§
type S1Size: ArraySize
type S2Size: ArraySize
type T0Size: ArraySize
type SigningKeySize: ArraySize
Required Methods§
fn encode_s1( s1: &Vector<BaseField, Self::L>, ) -> Array<u8, <Self as SigningKeyParams>::S1Size>
fn decode_s1( enc: &Array<u8, <Self as SigningKeyParams>::S1Size>, ) -> Vector<BaseField, Self::L>
fn encode_s2( s2: &Vector<BaseField, Self::K>, ) -> Array<u8, <Self as SigningKeyParams>::S2Size>
fn decode_s2( enc: &Array<u8, <Self as SigningKeyParams>::S2Size>, ) -> Vector<BaseField, Self::K>
fn encode_t0( t0: &Vector<BaseField, Self::K>, ) -> Array<u8, <Self as SigningKeyParams>::T0Size>
fn decode_t0( enc: &Array<u8, <Self as SigningKeyParams>::T0Size>, ) -> Vector<BaseField, Self::K>
fn concat_sk( rho: B32, K: B32, tr: Array<u8, U64>, s1: Array<u8, <Self as SigningKeyParams>::S1Size>, s2: Array<u8, <Self as SigningKeyParams>::S2Size>, t0: Array<u8, <Self as SigningKeyParams>::T0Size>, ) -> EncodedSigningKey<Self>
fn split_sk( enc: &EncodedSigningKey<Self>, ) -> (&B32, &B32, &Array<u8, U64>, &Array<u8, <Self as SigningKeyParams>::S1Size>, &Array<u8, <Self as SigningKeyParams>::S2Size>, &Array<u8, <Self as SigningKeyParams>::T0Size>)
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.