Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions examples/main_pod_points.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,22 +46,22 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let game_sk = SecretKey::new_rand();
let game_pk = game_sk.public_key();

let mut game_signer = Signer(game_sk);
let game_signer = Signer(game_sk);

// Build 2 signed pods where the game assigns points to a player that has completed a level.
let mut builder = SignedPodBuilder::new(&params);
builder.insert("player", "Alice");
builder.insert("level", 1);
builder.insert("points", 3512);
let pod_points_lvl_1 = builder.sign(&mut game_signer)?;
let pod_points_lvl_1 = builder.sign(&game_signer)?;
pod_points_lvl_1.verify()?;
println!("# pod_points_lvl_1:\n{}", pod_points_lvl_1);

let mut builder = SignedPodBuilder::new(&params);
builder.insert("player", "Alice");
builder.insert("level", 2);
builder.insert("points", 5771);
let pod_points_lvl_2 = builder.sign(&mut game_signer)?;
let pod_points_lvl_2 = builder.sign(&game_signer)?;
pod_points_lvl_2.verify()?;
println!("# pod_points_lvl_2:\n{}", pod_points_lvl_2);

Expand Down
4 changes: 2 additions & 2 deletions examples/signed_pod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let pk = sk.public_key();
println!("Public key: {}\n", pk);

let mut signer = Signer(sk);
let signer = Signer(sk);

// Build the signed pod
let mut builder = SignedPodBuilder::new(&params);
Expand All @@ -35,7 +35,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
);

// Sign the pod and verify it
let pod = builder.sign(&mut signer)?;
let pod = builder.sign(&signer)?;
pod.verify()?;

println!("{}", pod);
Expand Down
4 changes: 2 additions & 2 deletions src/backends/plonky2/circuits/signedpod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,8 @@ pub mod tests {
pod.insert("dateOfBirth", 1169909384);
pod.insert("socialSecurityNumber", "G2121210");
let sk = SecretKey::new_rand();
let mut signer = Signer(sk);
let pod = pod.sign(&mut signer).unwrap();
let signer = Signer(sk);
let pod = pod.sign(&signer).unwrap();
let signed_pod = (pod.pod as Box<dyn Any>).downcast::<SignedPod>().unwrap();

// use the pod in the circuit
Expand Down
66 changes: 31 additions & 35 deletions src/backends/plonky2/mainpod/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -739,12 +739,12 @@ pub mod tests {

let (gov_id_builder, pay_stub_builder, sanction_list_builder) =
zu_kyc_sign_pod_builders(&params);
let mut signer = Signer(SecretKey(BigUint::one()));
let gov_id_pod = gov_id_builder.sign(&mut signer)?;
let mut signer = Signer(SecretKey(2u64.into()));
let pay_stub_pod = pay_stub_builder.sign(&mut signer)?;
let mut signer = Signer(SecretKey(3u64.into()));
let sanction_list_pod = sanction_list_builder.sign(&mut signer)?;
let signer = Signer(SecretKey(BigUint::one()));
let gov_id_pod = gov_id_builder.sign(&signer)?;
let signer = Signer(SecretKey(2u64.into()));
let pay_stub_pod = pay_stub_builder.sign(&signer)?;
let signer = Signer(SecretKey(3u64.into()));
let sanction_list_pod = sanction_list_builder.sign(&signer)?;
let kyc_builder = zu_kyc_pod_builder(
&params,
&vd_set,
Expand All @@ -753,8 +753,8 @@ pub mod tests {
&sanction_list_pod,
)?;

let mut prover = Prover {};
let kyc_pod = kyc_builder.prove(&mut prover, &params)?;
let prover = Prover {};
let kyc_pod = kyc_builder.prove(&prover, &params)?;
crate::measure_gates_print!();
let pod = (kyc_pod.pod as Box<dyn Any>).downcast::<MainPod>().unwrap();

Expand All @@ -778,8 +778,8 @@ pub mod tests {
gov_id_builder.insert("idNumber", "4242424242");
gov_id_builder.insert("dateOfBirth", 1169909384);
gov_id_builder.insert("socialSecurityNumber", "G2121210");
let mut signer = Signer(SecretKey(42u64.into()));
let gov_id = gov_id_builder.sign(&mut signer).unwrap();
let signer = Signer(SecretKey(42u64.into()));
let gov_id = gov_id_builder.sign(&signer).unwrap();
let now_minus_18y: i64 = 1169909388;
let mut kyc_builder = frontend::MainPodBuilder::new(&params, &vd_set);
kyc_builder.add_signed_pod(&gov_id);
Expand All @@ -791,17 +791,17 @@ pub mod tests {
println!();

// Mock
let mut prover = MockProver {};
let kyc_pod = kyc_builder.prove(&mut prover, &params).unwrap();
let prover = MockProver {};
let kyc_pod = kyc_builder.prove(&prover, &params).unwrap();
let pod = (kyc_pod.pod as Box<dyn Any>)
.downcast::<MockMainPod>()
.unwrap();
pod.verify().unwrap();
println!("{:#}", pod);

// Real
let mut prover = Prover {};
let kyc_pod = kyc_builder.prove(&mut prover, &params).unwrap();
let prover = Prover {};
let kyc_pod = kyc_builder.prove(&prover, &params).unwrap();
let pod = (kyc_pod.pod as Box<dyn Any>).downcast::<MainPod>().unwrap();
pod.verify().unwrap()
}
Expand Down Expand Up @@ -832,17 +832,17 @@ pub mod tests {
let pod_builder = frontend::MainPodBuilder::new(&params, &vd_set);

// Mock
let mut prover = MockProver {};
let kyc_pod = pod_builder.prove(&mut prover, &params).unwrap();
let prover = MockProver {};
let kyc_pod = pod_builder.prove(&prover, &params).unwrap();
let pod = (kyc_pod.pod as Box<dyn Any>)
.downcast::<MockMainPod>()
.unwrap();
pod.verify().unwrap();
println!("{:#}", pod);

// Real
let mut prover = Prover {};
let kyc_pod = pod_builder.prove(&mut prover, &params).unwrap();
let prover = Prover {};
let kyc_pod = pod_builder.prove(&prover, &params).unwrap();
let pod = (kyc_pod.pod as Box<dyn Any>).downcast::<MainPod>().unwrap();
pod.verify().unwrap()
}
Expand All @@ -853,27 +853,23 @@ pub mod tests {
println!("{:#?}", params);
let vd_set = &*DEFAULT_VD_SET;

let mut alice = Signer(SecretKey(1u32.into()));
let mut bob = Signer(SecretKey(2u32.into()));
let alice = Signer(SecretKey(1u32.into()));
let bob = Signer(SecretKey(2u32.into()));
let charlie = Signer(SecretKey(3u32.into()));

// Alice attests that she is ETH friends with Bob and Bob
// attests that he is ETH friends with Charlie.
let alice_attestation =
attest_eth_friend(&params, &mut alice, Value::from(bob.public_key()));
let bob_attestation =
attest_eth_friend(&params, &mut bob, Value::from(charlie.public_key()));
let alice_attestation = attest_eth_friend(&params, &alice, Value::from(bob.public_key()));
let bob_attestation = attest_eth_friend(&params, &bob, Value::from(charlie.public_key()));

let helper = EthDosHelper::new(&params, vd_set, false, Value::from(alice.public_key()))?;
let mut prover = Prover {};
let dist_1 = helper
.dist_1(&alice_attestation)?
.prove(&mut prover, &params)?;
let prover = Prover {};
let dist_1 = helper.dist_1(&alice_attestation)?.prove(&prover, &params)?;
crate::measure_gates_print!();
dist_1.pod.verify()?;
let dist_2 = helper
.dist_n_plus_1(&dist_1, &bob_attestation)?
.prove(&mut prover, &params)?;
.prove(&prover, &params)?;
Ok(dist_2.pod.verify()?)
}

Expand Down Expand Up @@ -920,12 +916,12 @@ pub mod tests {

let _st3 = pod_builder.priv_op(op!(custom, cpb_and.clone(), st0, st2))?;

let mut prover = MockProver {};
let pod = pod_builder.prove(&mut prover, &params)?;
let prover = MockProver {};
let pod = pod_builder.prove(&prover, &params)?;
assert!(pod.pod.verify().is_ok());

let mut prover = Prover {};
let pod = pod_builder.prove(&mut prover, &params)?;
let prover = Prover {};
let pod = pod_builder.prove(&prover, &params)?;
crate::measure_gates_print!();

let pod = (pod.pod as Box<dyn Any>).downcast::<MainPod>().unwrap();
Expand All @@ -948,8 +944,8 @@ pub mod tests {

builder.pub_op(op!(set_contains, st, 1))?;

let mut prover = Prover {};
let proof = builder.prove(&mut prover, &params).unwrap();
let prover = Prover {};
let proof = builder.prove(&prover, &params).unwrap();
let pod = (proof.pod as Box<dyn Any>).downcast::<MainPod>().unwrap();
Ok(pod.verify()?)
}
Expand Down
24 changes: 12 additions & 12 deletions src/backends/plonky2/mock/mainpod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -441,12 +441,12 @@ pub mod tests {
let vd_set = &*MOCK_VD_SET;
let (gov_id_builder, pay_stub_builder, sanction_list_builder) =
zu_kyc_sign_pod_builders(&params);
let mut signer = Signer(SecretKey(1u32.into()));
let gov_id_pod = gov_id_builder.sign(&mut signer)?;
let mut signer = Signer(SecretKey(2u32.into()));
let pay_stub_pod = pay_stub_builder.sign(&mut signer)?;
let mut signer = Signer(SecretKey(3u32.into()));
let sanction_list_pod = sanction_list_builder.sign(&mut signer)?;
let signer = Signer(SecretKey(1u32.into()));
let gov_id_pod = gov_id_builder.sign(&signer)?;
let signer = Signer(SecretKey(2u32.into()));
let pay_stub_pod = pay_stub_builder.sign(&signer)?;
let signer = Signer(SecretKey(3u32.into()));
let sanction_list_pod = sanction_list_builder.sign(&signer)?;
let kyc_builder = zu_kyc_pod_builder(
&params,
&vd_set,
Expand All @@ -455,8 +455,8 @@ pub mod tests {
&sanction_list_pod,
)?;

let mut prover = MockProver {};
let kyc_pod = kyc_builder.prove(&mut prover, &params)?;
let prover = MockProver {};
let kyc_pod = kyc_builder.prove(&prover, &params)?;
let pod = (kyc_pod.pod as Box<dyn Any>)
.downcast::<MockMainPod>()
.unwrap();
Expand All @@ -471,8 +471,8 @@ pub mod tests {
fn test_mock_main_great_boy() -> frontend::Result<()> {
let (params, great_boy_builder) = great_boy_pod_full_flow()?;

let mut prover = MockProver {};
let great_boy_pod = great_boy_builder.prove(&mut prover, &params)?;
let prover = MockProver {};
let great_boy_pod = great_boy_builder.prove(&prover, &params)?;
let pod = (great_boy_pod.pod as Box<dyn Any>)
.downcast::<MockMainPod>()
.unwrap();
Expand All @@ -488,8 +488,8 @@ pub mod tests {
fn test_mock_main_tickets() -> frontend::Result<()> {
let params = middleware::Params::default();
let tickets_builder = tickets_pod_full_flow()?;
let mut prover = MockProver {};
let proof_pod = tickets_builder.prove(&mut prover, &params)?;
let prover = MockProver {};
let proof_pod = tickets_builder.prove(&prover, &params)?;
let pod = (proof_pod.pod as Box<dyn Any>)
.downcast::<MockMainPod>()
.unwrap();
Expand Down
10 changes: 5 additions & 5 deletions src/backends/plonky2/signedpod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ pub struct Signer(pub SecretKey);

impl Signer {
fn sign_with_nonce(
&mut self,
&self,
params: &Params,
nonce: BigUint,
kvs: &HashMap<Key, Value>,
Expand All @@ -48,7 +48,7 @@ impl Signer {
dict,
})
}
fn _sign(&mut self, params: &Params, kvs: &HashMap<Key, Value>) -> Result<SignedPod> {
fn _sign(&self, params: &Params, kvs: &HashMap<Key, Value>) -> Result<SignedPod> {
let nonce = OsRng.gen_biguint_below(&GROUP_ORDER);
self.sign_with_nonce(params, nonce, kvs)
}
Expand All @@ -59,7 +59,7 @@ impl Signer {
}

impl PodSigner for Signer {
fn sign(&mut self, params: &Params, kvs: &HashMap<Key, Value>) -> Result<Box<dyn Pod>> {
fn sign(&self, params: &Params, kvs: &HashMap<Key, Value>) -> Result<Box<dyn Pod>> {
Ok(self._sign(params, kvs).map(Box::new)?)
}
}
Expand Down Expand Up @@ -200,8 +200,8 @@ pub mod tests {
pod.insert("socialSecurityNumber", "G2121210");

let sk = SecretKey(123u64.into());
let mut signer = Signer(sk);
let pod = pod.sign(&mut signer).unwrap();
let signer = Signer(sk);
let pod = pod.sign(&signer).unwrap();
let pod = (pod.pod as Box<dyn Any>).downcast::<SignedPod>().unwrap();

pod.verify()?;
Expand Down
26 changes: 13 additions & 13 deletions src/examples/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ pub fn zu_kyc_pod_builder(

// ETHDoS

pub fn attest_eth_friend(params: &Params, src: &mut impl PodSigner, dst: Value) -> SignedPod {
pub fn attest_eth_friend(params: &Params, src: &impl PodSigner, dst: Value) -> SignedPod {
let mut attestation = SignedPodBuilder::new(params);
attestation.insert("attestation", dst);
attestation.sign(src).unwrap()
Expand Down Expand Up @@ -334,13 +334,13 @@ pub fn great_boy_pod_full_flow() -> Result<(Params, MainPodBuilder)> {
};
let vd_set = &*MOCK_VD_SET;

let mut giggles_signer = Signer(SecretKey(1u32.into()));
let mut macrosoft_signer = Signer(SecretKey(2u32.into()));
let mut faebook_signer = Signer(SecretKey(3u32.into()));
let giggles_signer = Signer(SecretKey(1u32.into()));
let macrosoft_signer = Signer(SecretKey(2u32.into()));
let faebook_signer = Signer(SecretKey(3u32.into()));
let good_boy_issuers =
[&giggles_signer, &macrosoft_signer, &faebook_signer].map(|s| s.0.public_key());
let mut bob_signer = Signer(SecretKey(11u32.into()));
let mut charlie_signer = Signer(SecretKey(12u32.into()));
let bob_signer = Signer(SecretKey(11u32.into()));
let charlie_signer = Signer(SecretKey(12u32.into()));
let alice_signer = Signer(SecretKey(13u32.into()));
let bob = bob_signer.public_key();
let charlie = charlie_signer.public_key();
Expand All @@ -351,23 +351,23 @@ pub fn great_boy_pod_full_flow() -> Result<(Params, MainPodBuilder)> {
let mut bob_good_boys = Vec::new();

let good_boy = good_boy_sign_pod_builder(&params, &bob, 36);
bob_good_boys.push(good_boy.sign(&mut giggles_signer).unwrap());
bob_good_boys.push(good_boy.sign(&mut macrosoft_signer).unwrap());
bob_good_boys.push(good_boy.sign(&giggles_signer).unwrap());
bob_good_boys.push(good_boy.sign(&macrosoft_signer).unwrap());

// Charlie receives two good_boy pods from Macrosoft and Faebook

let mut charlie_good_boys = Vec::new();

let good_boy = good_boy_sign_pod_builder(&params, &charlie, 27);
charlie_good_boys.push(good_boy.sign(&mut macrosoft_signer).unwrap());
charlie_good_boys.push(good_boy.sign(&mut faebook_signer).unwrap());
charlie_good_boys.push(good_boy.sign(&macrosoft_signer).unwrap());
charlie_good_boys.push(good_boy.sign(&faebook_signer).unwrap());

// Bob and Charlie send Alice a Friend POD

let mut alice_friend_pods = Vec::new();
let friend = friend_sign_pod_builder(&params, &alice);
alice_friend_pods.push(friend.sign(&mut bob_signer).unwrap());
alice_friend_pods.push(friend.sign(&mut charlie_signer).unwrap());
alice_friend_pods.push(friend.sign(&bob_signer).unwrap());
alice_friend_pods.push(friend.sign(&charlie_signer).unwrap());

let good_boy_issuers = Value::from(Set::new(
params.max_depth_mt_containers,
Expand Down Expand Up @@ -433,7 +433,7 @@ pub fn tickets_pod_full_flow() -> Result<MainPodBuilder> {
let vd_set = &*MOCK_VD_SET;
let builder = tickets_sign_pod_builder(&params);

let signed_pod = builder.sign(&mut Signer(SecretKey(1u32.into()))).unwrap();
let signed_pod = builder.sign(&Signer(SecretKey(1u32.into()))).unwrap();
tickets_pod_builder(
&params,
vd_set,
Expand Down
8 changes: 4 additions & 4 deletions src/frontend/custom.rs
Original file line number Diff line number Diff line change
Expand Up @@ -311,8 +311,8 @@ mod tests {
mp_builder.pub_op(op!(custom, gt_custom_pred, desugared_gt))?;

// Check that the POD builds
let mut prover = MockProver {};
let proof = mp_builder.prove(&mut prover, &params)?;
let prover = MockProver {};
let proof = mp_builder.prove(&prover, &params)?;

Ok(())
}
Expand Down Expand Up @@ -360,8 +360,8 @@ mod tests {
let set_contains_custom_pred = CustomPredicateRef::new(batch, 0);
mp_builder.pub_op(op!(custom, set_contains_custom_pred, set_contains))?;

let mut prover = MockProver {};
let proof = mp_builder.prove(&mut prover, &params)?;
let prover = MockProver {};
let proof = mp_builder.prove(&prover, &params)?;

Ok(())
}
Expand Down
Loading
Loading