From 2f081e231f9f43148d4fef7c0c8c40636f9be149 Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Sun, 25 Sep 2016 16:09:07 -0600 Subject: [PATCH] Refactor verification of NIZKs. --- src/protocol/secrets.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/protocol/secrets.rs b/src/protocol/secrets.rs index a79cf2e..f8f2a4d 100644 --- a/src/protocol/secrets.rs +++ b/src/protocol/secrets.rs @@ -38,14 +38,23 @@ pub struct PublicKey { impl PublicKey { fn is_valid(&self) -> bool { + // Ensure that all the fields are well-formed, so we can + // safely form s-pairs out of them. self.is_well_formed() && + + // The NIZKs verify that the creator of the public key + // knows the secrets. + self.nizks_are_valid() + } + + fn nizks_are_valid(&self) -> bool { self.f3_tau.verify_nizk(&self.nizk_tau) && self.f4_alpha_a.verify_nizk(&self.nizk_alpha_a) && - self.nizk_alpha_b.verify(self.f1_rho_a_rho_b, self.f1_rho_a_rho_b_alpha_b) && + self.alpha_b_g2().verify_nizk(&self.nizk_alpha_b) && self.f5_alpha_c.verify_nizk(&self.nizk_alpha_c) && - self.nizk_rho_a.verify(self.f1, self.f1_rho_a) && + self.rho_a_g2().verify_nizk(&self.nizk_rho_a) && self.f6_rho_b.verify_nizk(&self.nizk_rho_b) && - self.nizk_beta.verify(self.f2, self.f2_beta) && + self.beta_g2().verify_nizk(&self.nizk_beta) && self.f8_gamma.verify_nizk(&self.nizk_gamma) }