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}