arnaucube
arnaucube/ark-r1cs-stdPublic Self-hosted repository
ark-r1cs-std/crypto-primitives/src/signature/constraints.rs
crypto-primitives/src/signature/constraints.rsRaw
 1use algebra_core::Field;
 2use r1cs_core::SynthesisError;
 3use r1cs_std::prelude::*;
 4
 5use crate::signature::SignatureScheme;
 6
 7pub trait SigRandomizePkGadget<S: SignatureScheme, ConstraintF: Field> {
 8    type ParametersVar: AllocVar<S::Parameters, ConstraintF> + Clone;
 9
10    type PublicKeyVar: ToBytesGadget<ConstraintF>
11        + EqGadget<ConstraintF>
12        + AllocVar<S::PublicKey, ConstraintF>
13        + Clone;
14
15    fn randomize(
16        parameters: &Self::ParametersVar,
17        public_key: &Self::PublicKeyVar,
18        randomness: &[UInt8<ConstraintF>],
19    ) -> Result<Self::PublicKeyVar, SynthesisError>;
20}