Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
r1cs_ppzkadsnark.hpp
Go to the documentation of this file.
1 
44 #ifndef R1CS_PPZKADSNARK_HPP_
45 #define R1CS_PPZKADSNARK_HPP_
46 
47 #include <libff/algebra/curves/public_params.hpp>
54 #include <memory>
55 
56 namespace libsnark
57 {
58 
59 /******************************** Public authentication parameters
60  * ********************************/
61 
62 template<typename ppT> class r1cs_ppzkadsnark_pub_auth_prms;
63 
64 template<typename ppT>
65 std::ostream &operator<<(
66  std::ostream &out, const r1cs_ppzkadsnark_pub_auth_prms<ppT> &pap);
67 
68 template<typename ppT>
69 std::istream &operator>>(
70  std::istream &in, r1cs_ppzkadsnark_pub_auth_prms<ppT> &pap);
71 
75 template<typename ppT> class r1cs_ppzkadsnark_pub_auth_prms
76 {
77 public:
78  libff::G1<snark_pp<ppT>> I1;
79 
82  const r1cs_ppzkadsnark_pub_auth_prms<ppT> &other) = default;
84  const r1cs_ppzkadsnark_pub_auth_prms<ppT> &other) = default;
86  r1cs_ppzkadsnark_pub_auth_prms<ppT> &&other) = default;
88  : I1(std::move(I1)){};
89 
90  bool operator==(const r1cs_ppzkadsnark_pub_auth_prms<ppT> &other) const;
91  friend std::ostream &operator<<<ppT>(
92  std::ostream &out, const r1cs_ppzkadsnark_pub_auth_prms<ppT> &pap);
93  friend std::istream &operator>>
94  <ppT>(std::istream &in, r1cs_ppzkadsnark_pub_auth_prms<ppT> &pap);
95 };
96 
97 /******************************** Secret authentication key
98  * ********************************/
99 
100 template<typename ppT> class r1cs_ppzkadsnark_sec_auth_key;
101 
102 template<typename ppT>
103 std::ostream &operator<<(
104  std::ostream &out, const r1cs_ppzkadsnark_sec_auth_key<ppT> &key);
105 
106 template<typename ppT>
107 std::istream &operator>>(
108  std::istream &in, r1cs_ppzkadsnark_sec_auth_key<ppT> &key);
109 
113 template<typename ppT> class r1cs_ppzkadsnark_sec_auth_key
114 {
115 public:
116  libff::Fr<snark_pp<ppT>> i;
119 
122  const r1cs_ppzkadsnark_sec_auth_key<ppT> &other) = default;
124  const r1cs_ppzkadsnark_sec_auth_key<ppT> &other) = default;
126  default;
128  libff::Fr<snark_pp<ppT>> &&i,
131  : i(std::move(i)), skp(std::move(skp)), S(std::move(S)){};
132 
133  bool operator==(const r1cs_ppzkadsnark_sec_auth_key<ppT> &other) const;
134  friend std::ostream &operator<<<ppT>(
135  std::ostream &out, const r1cs_ppzkadsnark_sec_auth_key<ppT> &key);
136  friend std::istream &operator>>
137  <ppT>(std::istream &in, r1cs_ppzkadsnark_sec_auth_key<ppT> &key);
138 };
139 
140 /******************************** Public authentication key
141  * ********************************/
142 
143 template<typename ppT> class r1cs_ppzkadsnark_pub_auth_key;
144 
145 template<typename ppT>
146 std::ostream &operator<<(
147  std::ostream &out, const r1cs_ppzkadsnark_pub_auth_key<ppT> &key);
148 
149 template<typename ppT>
150 std::istream &operator>>(
151  std::istream &in, r1cs_ppzkadsnark_pub_auth_key<ppT> &key);
152 
156 template<typename ppT> class r1cs_ppzkadsnark_pub_auth_key
157 {
158 public:
159  libff::G2<snark_pp<ppT>> minusI2;
161 
164  const r1cs_ppzkadsnark_pub_auth_key<ppT> &other) = default;
166  const r1cs_ppzkadsnark_pub_auth_key<ppT> &other) = default;
168  default;
171  : minusI2(std::move(minusI2)), vkp(std::move(vkp)){};
172 
173  bool operator==(const r1cs_ppzkadsnark_pub_auth_key<ppT> &other) const;
174  friend std::ostream &operator<<<ppT>(
175  std::ostream &out, const r1cs_ppzkadsnark_pub_auth_key<ppT> &key);
176  friend std::istream &operator>>
177  <ppT>(std::istream &in, r1cs_ppzkadsnark_pub_auth_key<ppT> &key);
178 };
179 
180 /******************************** Authentication key material
181  * ********************************/
182 
183 template<typename ppT> class r1cs_ppzkadsnark_auth_keys
184 {
185 public:
189 
192  default;
197  : pap(std::move(pap)), pak(std::move(pak)), sak(std::move(sak))
198  {
199  }
200 };
201 
202 /******************************** Authenticated data
203  * ********************************/
204 
205 template<typename ppT> class r1cs_ppzkadsnark_auth_data;
206 
207 template<typename ppT>
208 std::ostream &operator<<(
209  std::ostream &out, const r1cs_ppzkadsnark_auth_data<ppT> &data);
210 
211 template<typename ppT>
212 std::istream &operator>>(
213  std::istream &in, r1cs_ppzkadsnark_auth_data<ppT> &data);
214 
218 template<typename ppT> class r1cs_ppzkadsnark_auth_data
219 {
220 public:
221  libff::Fr<snark_pp<ppT>> mu;
222  libff::G2<snark_pp<ppT>> Lambda;
224 
227  const r1cs_ppzkadsnark_auth_data<ppT> &other) = default;
229  default;
231  default;
233  libff::Fr<snark_pp<ppT>> &&mu,
234  libff::G2<snark_pp<ppT>> &&Lambda,
236  : mu(std::move(mu))
237  , Lambda(std::move(Lambda))
238  , sigma(std::move(sigma)){};
239 
240  bool operator==(const r1cs_ppzkadsnark_auth_data<ppT> &other) const;
241  friend std::ostream &operator<<<ppT>(
242  std::ostream &out, const r1cs_ppzkadsnark_auth_data<ppT> &key);
243  friend std::istream &operator>>
244  <ppT>(std::istream &in, r1cs_ppzkadsnark_auth_data<ppT> &key);
245 };
246 
247 /******************************** Proving key ********************************/
248 
249 template<typename ppT> class r1cs_ppzkadsnark_proving_key;
250 
251 template<typename ppT>
252 std::ostream &operator<<(
253  std::ostream &out, const r1cs_ppzkadsnark_proving_key<ppT> &pk);
254 
255 template<typename ppT>
256 std::istream &operator>>(
257  std::istream &in, r1cs_ppzkadsnark_proving_key<ppT> &pk);
258 
262 template<typename ppT> class r1cs_ppzkadsnark_proving_key
263 {
264 public:
266  libff::G1<snark_pp<ppT>>,
267  libff::G1<snark_pp<ppT>>>
270  libff::G2<snark_pp<ppT>>,
271  libff::G1<snark_pp<ppT>>>
274  libff::G1<snark_pp<ppT>>,
275  libff::G1<snark_pp<ppT>>>
277  libff::G1_vector<snark_pp<ppT>> H_query; // t powers
278  libff::G1_vector<snark_pp<ppT>> K_query;
279  /* Now come the additional elements for ad */
280  libff::G1<snark_pp<ppT>> rA_i_Z_g1;
281 
283 
286  const r1cs_ppzkadsnark_proving_key<ppT> &other) = default;
288  const r1cs_ppzkadsnark_proving_key<ppT> &other) = default;
290  default;
293  libff::G1<snark_pp<ppT>>,
294  libff::G1<snark_pp<ppT>>> &&A_query,
296  libff::G2<snark_pp<ppT>>,
297  libff::G1<snark_pp<ppT>>> &&B_query,
299  libff::G1<snark_pp<ppT>>,
300  libff::G1<snark_pp<ppT>>> &&C_query,
301  libff::G1_vector<snark_pp<ppT>> &&H_query,
302  libff::G1_vector<snark_pp<ppT>> &&K_query,
303  libff::G1<snark_pp<ppT>> &&rA_i_Z_g1,
305  : A_query(std::move(A_query))
306  , B_query(std::move(B_query))
307  , C_query(std::move(C_query))
308  , H_query(std::move(H_query))
309  , K_query(std::move(K_query))
310  , rA_i_Z_g1(std::move(rA_i_Z_g1))
311  , constraint_system(std::move(constraint_system)){};
312 
313  size_t G1_size() const
314  {
315  return 2 * (A_query.domain_size() + C_query.domain_size()) +
316  B_query.domain_size() + H_query.size() + K_query.size() + 1;
317  }
318 
319  size_t G2_size() const { return B_query.domain_size(); }
320 
321  size_t G1_sparse_size() const
322  {
323  return 2 * (A_query.size() + C_query.size()) + B_query.size() +
324  H_query.size() + K_query.size() + 1;
325  }
326 
327  size_t G2_sparse_size() const { return B_query.size(); }
328 
329  size_t size_in_bits() const
330  {
331  return A_query.size_in_bits() + B_query.size_in_bits() +
332  C_query.size_in_bits() + libff::size_in_bits(H_query) +
333  libff::size_in_bits(K_query) +
334  libff::G1<snark_pp<ppT>>::size_in_bits();
335  }
336 
337  void print_size() const
338  {
339  libff::print_indent();
340  printf("* G1 elements in PK: %zu\n", this->G1_size());
341  libff::print_indent();
342  printf("* Non-zero G1 elements in PK: %zu\n", this->G1_sparse_size());
343  libff::print_indent();
344  printf("* G2 elements in PK: %zu\n", this->G2_size());
345  libff::print_indent();
346  printf("* Non-zero G2 elements in PK: %zu\n", this->G2_sparse_size());
347  libff::print_indent();
348  printf("* PK size in bits: %zu\n", this->size_in_bits());
349  }
350 
351  bool operator==(const r1cs_ppzkadsnark_proving_key<ppT> &other) const;
352  friend std::ostream &operator<<<ppT>(
353  std::ostream &out, const r1cs_ppzkadsnark_proving_key<ppT> &pk);
354  friend std::istream &operator>>
355  <ppT>(std::istream &in, r1cs_ppzkadsnark_proving_key<ppT> &pk);
356 };
357 
358 /******************************* Verification key ****************************/
359 
360 template<typename ppT> class r1cs_ppzkadsnark_verification_key;
361 
362 template<typename ppT>
363 std::ostream &operator<<(
364  std::ostream &out, const r1cs_ppzkadsnark_verification_key<ppT> &vk);
365 
366 template<typename ppT>
367 std::istream &operator>>(
368  std::istream &in, r1cs_ppzkadsnark_verification_key<ppT> &vk);
369 
373 template<typename ppT> class r1cs_ppzkadsnark_verification_key
374 {
375 public:
376  libff::G2<snark_pp<ppT>> alphaA_g2;
377  libff::G1<snark_pp<ppT>> alphaB_g1;
378  libff::G2<snark_pp<ppT>> alphaC_g2;
379  libff::G2<snark_pp<ppT>> gamma_g2;
380  libff::G1<snark_pp<ppT>> gamma_beta_g1;
381  libff::G2<snark_pp<ppT>> gamma_beta_g2;
382  libff::G2<snark_pp<ppT>> rC_Z_g2;
383 
384  libff::G1<snark_pp<ppT>> A0;
385  libff::G1_vector<snark_pp<ppT>> Ain;
386 
389  const libff::G2<snark_pp<ppT>> &alphaA_g2,
390  const libff::G1<snark_pp<ppT>> &alphaB_g1,
391  const libff::G2<snark_pp<ppT>> &alphaC_g2,
392  const libff::G2<snark_pp<ppT>> &gamma_g2,
393  const libff::G1<snark_pp<ppT>> &gamma_beta_g1,
394  const libff::G2<snark_pp<ppT>> &gamma_beta_g2,
395  const libff::G2<snark_pp<ppT>> &rC_Z_g2,
396  const libff::G1<snark_pp<ppT>> A0,
397  const libff::G1_vector<snark_pp<ppT>> Ain)
401  , gamma_g2(gamma_g2)
404  , rC_Z_g2(rC_Z_g2)
405  , A0(A0)
406  , Ain(Ain){};
407 
408  size_t G1_size() const { return 3 + Ain.size(); }
409 
410  size_t G2_size() const { return 5; }
411 
412  size_t size_in_bits() const
413  {
414  return G1_size() * libff::G1<snark_pp<ppT>>::size_in_bits() +
415  G2_size() *
416  libff::G2<snark_pp<ppT>>::size_in_bits(); // possible zksnark
417  // bug
418  }
419 
420  void print_size() const
421  {
422  libff::print_indent();
423  printf("* G1 elements in VK: %zu\n", this->G1_size());
424  libff::print_indent();
425  printf("* G2 elements in VK: %zu\n", this->G2_size());
426  libff::print_indent();
427  printf("* VK size in bits: %zu\n", this->size_in_bits());
428  }
429 
430  bool operator==(const r1cs_ppzkadsnark_verification_key<ppT> &other) const;
431  friend std::ostream &operator<<<ppT>(
432  std::ostream &out, const r1cs_ppzkadsnark_verification_key<ppT> &vk);
433  friend std::istream &operator>>
434  <ppT>(std::istream &in, r1cs_ppzkadsnark_verification_key<ppT> &vk);
435 
437  const size_t input_size);
438 };
439 
440 /************************ Processed verification key *************************/
441 
442 template<typename ppT> class r1cs_ppzkadsnark_processed_verification_key;
443 
444 template<typename ppT>
445 std::ostream &operator<<(
446  std::ostream &out,
448 
449 template<typename ppT>
450 std::istream &operator>>(
451  std::istream &in, r1cs_ppzkadsnark_processed_verification_key<ppT> &pvk);
452 
460 template<typename ppT> class r1cs_ppzkadsnark_processed_verification_key
461 {
462 public:
463  libff::G2_precomp<snark_pp<ppT>> pp_G2_one_precomp;
464  libff::G2_precomp<snark_pp<ppT>> vk_alphaA_g2_precomp;
465  libff::G1_precomp<snark_pp<ppT>> vk_alphaB_g1_precomp;
466  libff::G2_precomp<snark_pp<ppT>> vk_alphaC_g2_precomp;
467  libff::G2_precomp<snark_pp<ppT>> vk_rC_Z_g2_precomp;
468  libff::G2_precomp<snark_pp<ppT>> vk_gamma_g2_precomp;
469  libff::G1_precomp<snark_pp<ppT>> vk_gamma_beta_g1_precomp;
470  libff::G2_precomp<snark_pp<ppT>> vk_gamma_beta_g2_precomp;
471  libff::G2_precomp<snark_pp<ppT>> vk_rC_i_g2_precomp;
472 
473  libff::G1<snark_pp<ppT>> A0;
474  libff::G1_vector<snark_pp<ppT>> Ain;
475 
476  std::vector<libff::G1_precomp<snark_pp<ppT>>> proof_g_vki_precomp;
477 
478  bool operator==(
480  friend std::ostream &operator<<<ppT>(
481  std::ostream &out,
483  friend std::istream &operator>><ppT>(
484  std::istream &in,
486 };
487 
488 /********************************** Key pair *********************************/
489 
494 template<typename ppT> class r1cs_ppzkadsnark_keypair
495 {
496 public:
499 
500  r1cs_ppzkadsnark_keypair() = default;
502  default;
506  : pk(std::move(pk)), vk(std::move(vk))
507  {
508  }
509 
511 };
512 
513 /*********************************** Proof ***********************************/
514 
515 template<typename ppT> class r1cs_ppzkadsnark_proof;
516 
517 template<typename ppT>
518 std::ostream &operator<<(
519  std::ostream &out, const r1cs_ppzkadsnark_proof<ppT> &proof);
520 
521 template<typename ppT>
522 std::istream &operator>>(std::istream &in, r1cs_ppzkadsnark_proof<ppT> &proof);
523 
531 template<typename ppT> class r1cs_ppzkadsnark_proof
532 {
533 public:
534  knowledge_commitment<libff::G1<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
536  knowledge_commitment<libff::G2<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
538  knowledge_commitment<libff::G1<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
540  libff::G1<snark_pp<ppT>> g_H;
541  libff::G1<snark_pp<ppT>> g_K;
542  knowledge_commitment<libff::G1<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
544  libff::G1<snark_pp<ppT>> muA;
545 
547  {
548  // invalid proof with valid curve points
549  this->g_A.g = libff::G1<snark_pp<ppT>>::one();
550  this->g_A.h = libff::G1<snark_pp<ppT>>::one();
551  this->g_B.g = libff::G2<snark_pp<ppT>>::one();
552  this->g_B.h = libff::G1<snark_pp<ppT>>::one();
553  this->g_C.g = libff::G1<snark_pp<ppT>>::one();
554  this->g_C.h = libff::G1<snark_pp<ppT>>::one();
555  this->g_H = libff::G1<snark_pp<ppT>>::one();
556  this->g_K = libff::G1<snark_pp<ppT>>::one();
558  libff::G1<snark_pp<ppT>>,
559  libff::G1<snark_pp<ppT>>>(
560  libff::G1<snark_pp<ppT>>::one(), libff::G1<snark_pp<ppT>>::one());
561  this->muA = libff::G1<snark_pp<ppT>>::one();
562  }
564  knowledge_commitment<libff::G1<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
565  &&g_A,
566  knowledge_commitment<libff::G2<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
567  &&g_B,
568  knowledge_commitment<libff::G1<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
569  &&g_C,
570  libff::G1<snark_pp<ppT>> &&g_H,
571  libff::G1<snark_pp<ppT>> &&g_K,
572  knowledge_commitment<libff::G1<snark_pp<ppT>>, libff::G1<snark_pp<ppT>>>
573  &&g_Aau,
574  libff::G1<snark_pp<ppT>> &&muA)
575  : g_A(std::move(g_A))
576  , g_B(std::move(g_B))
577  , g_C(std::move(g_C))
578  , g_H(std::move(g_H))
579  , g_K(std::move(g_K))
580  , g_Aau(std::move(g_Aau))
581  , muA(std::move(muA)){};
582 
583  size_t G1_size() const { return 10; }
584 
585  size_t G2_size() const { return 1; }
586 
587  size_t size_in_bits() const
588  {
589  return G1_size() * libff::G1<snark_pp<ppT>>::size_in_bits() +
590  G2_size() * libff::G2<snark_pp<ppT>>::size_in_bits();
591  }
592 
593  void print_size() const
594  {
595  libff::print_indent();
596  printf("* G1 elements in proof: %zu\n", this->G1_size());
597  libff::print_indent();
598  printf("* G2 elements in proof: %zu\n", this->G2_size());
599  libff::print_indent();
600  printf("* Proof size in bits: %zu\n", this->size_in_bits());
601  }
602 
603  bool is_well_formed() const
604  {
605  return (
606  g_A.g.is_well_formed() && g_A.h.is_well_formed() &&
607  g_B.g.is_well_formed() && g_B.h.is_well_formed() &&
608  g_C.g.is_well_formed() && g_C.h.is_well_formed() &&
609  g_H.is_well_formed() && g_K.is_well_formed() &&
610  g_Aau.g.is_well_formed() && g_Aau.h.is_well_formed() &&
611  muA.is_well_formed());
612  }
613 
614  bool operator==(const r1cs_ppzkadsnark_proof<ppT> &other) const;
615  friend std::ostream &operator<<<ppT>(
616  std::ostream &out, const r1cs_ppzkadsnark_proof<ppT> &proof);
617  friend std::istream &operator>>
618  <ppT>(std::istream &in, r1cs_ppzkadsnark_proof<ppT> &proof);
619 };
620 
621 /***************************** Main algorithms *******************************/
622 
626 template<
627  typename ppT,
628  libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_normal>
629 r1cs_ppzkadsnark_auth_keys<ppT> r1cs_ppzkadsnark_auth_generator(void);
630 
634 template<typename ppT>
635 std::vector<r1cs_ppzkadsnark_auth_data<ppT>> r1cs_ppzkadsnark_auth_sign(
636  const std::vector<libff::Fr<snark_pp<ppT>>> &ins,
637  const r1cs_ppzkadsnark_sec_auth_key<ppT> &sk,
638  const std::vector<labelT> labels);
639 
643 template<typename ppT>
645  const std::vector<libff::Fr<snark_pp<ppT>>> &data,
646  const std::vector<r1cs_ppzkadsnark_auth_data<ppT>> &auth_data,
647  const r1cs_ppzkadsnark_sec_auth_key<ppT> &sak,
648  const std::vector<labelT> &labels);
649 
650 template<typename ppT>
652  const std::vector<libff::Fr<snark_pp<ppT>>> &data,
653  const std::vector<r1cs_ppzkadsnark_auth_data<ppT>> &auth_data,
654  const r1cs_ppzkadsnark_pub_auth_key<ppT> &pak,
655  const std::vector<labelT> &labels);
656 
663 template<typename ppT>
664 r1cs_ppzkadsnark_keypair<ppT> r1cs_ppzkadsnark_generator(
665  const r1cs_ppzkadsnark_constraint_system<ppT> &cs,
666  const r1cs_ppzkadsnark_pub_auth_prms<ppT> &prms);
667 
677 template<typename ppT>
678 r1cs_ppzkadsnark_proof<ppT> r1cs_ppzkadsnark_prover(
679  const r1cs_ppzkadsnark_proving_key<ppT> &pk,
680  const r1cs_ppzkadsnark_primary_input<ppT> &primary_input,
681  const r1cs_ppzkadsnark_auxiliary_input<ppT> &auxiliary_input,
682  const std::vector<r1cs_ppzkadsnark_auth_data<ppT>> &auth_data);
683 
684 /*
685  Below are two variants of verifier algorithm for the R1CS ppzkADSNARK.
686 
687  These are the four cases that arise from the following choices:
688 
689 1) The verifier accepts a (non-processed) verification key or, instead, a
690 processed verification key. In the latter case, we call the algorithm an "online
691 verifier".
692 
693 2) The verifier uses the symmetric key or the public verification key.
694  In the former case we call the algorithm a "symmetric verifier".
695 
696 */
697 
701 template<typename ppT>
702 r1cs_ppzkadsnark_processed_verification_key<ppT>
704  const r1cs_ppzkadsnark_verification_key<ppT> &vk);
705 
710 template<typename ppT>
712  const r1cs_ppzkadsnark_verification_key<ppT> &vk,
713  const r1cs_ppzkadsnark_proof<ppT> &proof,
714  const r1cs_ppzkadsnark_sec_auth_key<ppT> &sak,
715  const std::vector<labelT> &labels);
716 
721 template<typename ppT>
723  const r1cs_ppzkadsnark_processed_verification_key<ppT> &pvk,
724  const r1cs_ppzkadsnark_proof<ppT> &proof,
725  const r1cs_ppzkadsnark_sec_auth_key<ppT> &sak,
726  const std::vector<labelT> &labels);
727 
732 template<typename ppT>
734  const r1cs_ppzkadsnark_verification_key<ppT> &vk,
735  const std::vector<r1cs_ppzkadsnark_auth_data<ppT>> &auth_data,
736  const r1cs_ppzkadsnark_proof<ppT> &proof,
737  const r1cs_ppzkadsnark_pub_auth_key<ppT> &pak,
738  const std::vector<labelT> &labels);
739 
744 template<typename ppT>
746  const r1cs_ppzkadsnark_processed_verification_key<ppT> &pvk,
747  const std::vector<r1cs_ppzkadsnark_auth_data<ppT>> &auth_data,
748  const r1cs_ppzkadsnark_proof<ppT> &proof,
749  const r1cs_ppzkadsnark_pub_auth_key<ppT> &pak,
750  const std::vector<labelT> &labels);
751 
752 } // namespace libsnark
753 
755 
756 #endif // R1CS_PPZKSNARK_HPP_
libsnark::r1cs_ppzkadsnark_proof::g_A
knowledge_commitment< libff::G1< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > g_A
Definition: r1cs_ppzkadsnark.hpp:535
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_gamma_beta_g1_precomp
libff::G1_precomp< snark_pp< ppT > > vk_gamma_beta_g1_precomp
Definition: r1cs_ppzkadsnark.hpp:469
libsnark::knowledge_commitment::g
T1 g
Definition: knowledge_commitment.hpp:36
libsnark::r1cs_ppzkadsnark_verification_key::gamma_beta_g2
libff::G2< snark_pp< ppT > > gamma_beta_g2
Definition: r1cs_ppzkadsnark.hpp:381
libsnark::r1cs_ppzkadsnark_sec_auth_key::skp
r1cs_ppzkadsnark_skT< ppT > skp
Definition: r1cs_ppzkadsnark.hpp:117
accumulation_vector.hpp
libsnark::r1cs_ppzkadsnark_proof::g_B
knowledge_commitment< libff::G2< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > g_B
Definition: r1cs_ppzkadsnark.hpp:537
libsnark::r1cs_ppzkadsnark_verification_key::Ain
libff::G1_vector< snark_pp< ppT > > Ain
Definition: r1cs_ppzkadsnark.hpp:385
libsnark::r1cs_ppzkadsnark_keypair
Definition: r1cs_ppzkadsnark.hpp:494
libsnark::r1cs_ppzkadsnark_processed_verification_key::operator==
bool operator==(const r1cs_ppzkadsnark_processed_verification_key &other) const
libsnark::r1cs_ppzkadsnark_pub_auth_key::minusI2
libff::G2< snark_pp< ppT > > minusI2
Definition: r1cs_ppzkadsnark.hpp:159
libsnark::r1cs_ppzkadsnark_verification_key::alphaC_g2
libff::G2< snark_pp< ppT > > alphaC_g2
Definition: r1cs_ppzkadsnark.hpp:378
libsnark::r1cs_ppzkadsnark_pub_auth_key
Definition: r1cs_ppzkadsnark.hpp:143
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_rC_i_g2_precomp
libff::G2_precomp< snark_pp< ppT > > vk_rC_i_g2_precomp
Definition: r1cs_ppzkadsnark.hpp:471
libsnark::r1cs_ppzkadsnark_proof::size_in_bits
size_t size_in_bits() const
Definition: r1cs_ppzkadsnark.hpp:587
libsnark::r1cs_ppzkadsnark_auth_keys::pap
r1cs_ppzkadsnark_pub_auth_prms< ppT > pap
Definition: r1cs_ppzkadsnark.hpp:186
libsnark::r1cs_ppzkadsnark_auth_keys
Definition: r1cs_ppzkadsnark.hpp:183
libsnark::r1cs_ppzkadsnark_verifier
bool r1cs_ppzkadsnark_verifier(const r1cs_ppzkadsnark_verification_key< ppT > &vk, const r1cs_ppzkadsnark_proof< ppT > &proof, const r1cs_ppzkadsnark_sec_auth_key< ppT > &sak, const std::vector< labelT > &labels)
libsnark::r1cs_ppzkadsnark_proof::print_size
void print_size() const
Definition: r1cs_ppzkadsnark.hpp:593
libsnark::r1cs_ppzkadsnark_processed_verification_key
Definition: r1cs_ppzkadsnark.hpp:442
libsnark::r1cs_ppzkadsnark_verification_key::gamma_g2
libff::G2< snark_pp< ppT > > gamma_g2
Definition: r1cs_ppzkadsnark.hpp:379
libsnark
Definition: accumulation_vector.hpp:18
libsnark::r1cs_ppzkadsnark_proving_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_ppzkadsnark.hpp:329
libsnark::operator<<
std::ostream & operator<<(std::ostream &out, const accumulation_vector< T > &v)
libsnark::snark_pp
typename r1cs_ppzkadsnark_ppT::snark_pp snark_pp
Definition: r1cs_ppzkadsnark_params.hpp:33
libsnark::r1cs_ppzkadsnark_proving_key::print_size
void print_size() const
Definition: r1cs_ppzkadsnark.hpp:337
libsnark::r1cs_ppzkadsnark_prover
r1cs_ppzkadsnark_proof< ppT > r1cs_ppzkadsnark_prover(const r1cs_ppzkadsnark_proving_key< ppT > &pk, const r1cs_ppzkadsnark_primary_input< ppT > &primary_input, const r1cs_ppzkadsnark_auxiliary_input< ppT > &auxiliary_input, const std::vector< r1cs_ppzkadsnark_auth_data< ppT >> &auth_data)
libsnark::r1cs_ppzkadsnark_auth_data::operator==
bool operator==(const r1cs_ppzkadsnark_auth_data< ppT > &other) const
libsnark::r1cs_ppzkadsnark_proof::muA
libff::G1< snark_pp< ppT > > muA
Definition: r1cs_ppzkadsnark.hpp:544
libsnark::r1cs_ppzkadsnark_proving_key::operator=
r1cs_ppzkadsnark_proving_key< ppT > & operator=(const r1cs_ppzkadsnark_proving_key< ppT > &other)=default
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_rC_Z_g2_precomp
libff::G2_precomp< snark_pp< ppT > > vk_rC_Z_g2_precomp
Definition: r1cs_ppzkadsnark.hpp:467
libsnark::r1cs_ppzkadsnark_proving_key::A_query
knowledge_commitment_vector< libff::G1< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > A_query
Definition: r1cs_ppzkadsnark.hpp:268
libsnark::r1cs_ppzkadsnark_processed_verification_key::proof_g_vki_precomp
std::vector< libff::G1_precomp< snark_pp< ppT > > > proof_g_vki_precomp
Definition: r1cs_ppzkadsnark.hpp:476
libsnark::r1cs_ppzkadsnark_proving_key
Definition: r1cs_ppzkadsnark.hpp:249
libsnark::r1cs_ppzkadsnark_pub_auth_prms::r1cs_ppzkadsnark_pub_auth_prms
r1cs_ppzkadsnark_pub_auth_prms(libff::G1< snark_pp< ppT >> &&I1)
Definition: r1cs_ppzkadsnark.hpp:87
libsnark::r1cs_ppzkadsnark_proof::g_C
knowledge_commitment< libff::G1< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > g_C
Definition: r1cs_ppzkadsnark.hpp:539
libsnark::r1cs_ppzkadsnark_verification_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_ppzkadsnark.hpp:412
libsnark::r1cs_ppzkadsnark_proving_key::K_query
libff::G1_vector< snark_pp< ppT > > K_query
Definition: r1cs_ppzkadsnark.hpp:278
libsnark::r1cs_ppzkadsnark_auth_sign
std::vector< r1cs_ppzkadsnark_auth_data< ppT > > r1cs_ppzkadsnark_auth_sign(const std::vector< libff::Fr< snark_pp< ppT >>> &ins, const r1cs_ppzkadsnark_sec_auth_key< ppT > &sk, const std::vector< labelT > labels)
libsnark::r1cs_ppzkadsnark_auth_keys::r1cs_ppzkadsnark_auth_keys
r1cs_ppzkadsnark_auth_keys(r1cs_ppzkadsnark_pub_auth_prms< ppT > &&pap, r1cs_ppzkadsnark_pub_auth_key< ppT > &&pak, r1cs_ppzkadsnark_sec_auth_key< ppT > &&sak)
Definition: r1cs_ppzkadsnark.hpp:193
libsnark::r1cs_ppzkadsnark_auth_data
Definition: r1cs_ppzkadsnark.hpp:205
libsnark::r1cs_ppzkadsnark_proving_key::G2_size
size_t G2_size() const
Definition: r1cs_ppzkadsnark.hpp:319
libsnark::r1cs_ppzkadsnark_pub_auth_key::operator=
r1cs_ppzkadsnark_pub_auth_key< ppT > & operator=(const r1cs_ppzkadsnark_pub_auth_key< ppT > &other)=default
libsnark::r1cs_ppzkadsnark_auth_data::sigma
r1cs_ppzkadsnark_sigT< ppT > sigma
Definition: r1cs_ppzkadsnark.hpp:223
libsnark::knowledge_commitment
Definition: knowledge_commitment.hpp:34
libsnark::r1cs_ppzkadsnark_verification_key::operator==
bool operator==(const r1cs_ppzkadsnark_verification_key< ppT > &other) const
libsnark::r1cs_ppzkadsnark_proof
Definition: r1cs_ppzkadsnark.hpp:515
libsnark::r1cs_ppzkadsnark_verifier_process_vk
r1cs_ppzkadsnark_processed_verification_key< ppT > r1cs_ppzkadsnark_verifier_process_vk(const r1cs_ppzkadsnark_verification_key< ppT > &vk)
libsnark::r1cs_ppzkadsnark_verification_key::alphaA_g2
libff::G2< snark_pp< ppT > > alphaA_g2
Definition: r1cs_ppzkadsnark.hpp:376
libsnark::r1cs_ppzkadsnark_pub_auth_key::r1cs_ppzkadsnark_pub_auth_key
r1cs_ppzkadsnark_pub_auth_key(libff::G2< snark_pp< ppT >> &&minusI2, r1cs_ppzkadsnark_vkT< ppT > &&vkp)
Definition: r1cs_ppzkadsnark.hpp:169
libsnark::r1cs_ppzkadsnark_proof::g_Aau
knowledge_commitment< libff::G1< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > g_Aau
Definition: r1cs_ppzkadsnark.hpp:543
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_gamma_g2_precomp
libff::G2_precomp< snark_pp< ppT > > vk_gamma_g2_precomp
Definition: r1cs_ppzkadsnark.hpp:468
libsnark::r1cs_ppzkadsnark_proving_key::B_query
knowledge_commitment_vector< libff::G2< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > B_query
Definition: r1cs_ppzkadsnark.hpp:272
libsnark::r1cs_ppzkadsnark_auth_data::operator=
r1cs_ppzkadsnark_auth_data< ppT > & operator=(const r1cs_ppzkadsnark_auth_data< ppT > &other)=default
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_alphaB_g1_precomp
libff::G1_precomp< snark_pp< ppT > > vk_alphaB_g1_precomp
Definition: r1cs_ppzkadsnark.hpp:465
libsnark::r1cs_ppzkadsnark_proving_key::r1cs_ppzkadsnark_proving_key
r1cs_ppzkadsnark_proving_key()
Definition: r1cs_ppzkadsnark.hpp:284
libsnark::r1cs_ppzkadsnark_keypair::vk
r1cs_ppzkadsnark_verification_key< ppT > vk
Definition: r1cs_ppzkadsnark.hpp:498
libsnark::r1cs_ppzkadsnark_pub_auth_prms::I1
libff::G1< snark_pp< ppT > > I1
Definition: r1cs_ppzkadsnark.hpp:78
libsnark::r1cs_ppzkadsnark_verification_key::r1cs_ppzkadsnark_verification_key
r1cs_ppzkadsnark_verification_key(const libff::G2< snark_pp< ppT >> &alphaA_g2, const libff::G1< snark_pp< ppT >> &alphaB_g1, const libff::G2< snark_pp< ppT >> &alphaC_g2, const libff::G2< snark_pp< ppT >> &gamma_g2, const libff::G1< snark_pp< ppT >> &gamma_beta_g1, const libff::G2< snark_pp< ppT >> &gamma_beta_g2, const libff::G2< snark_pp< ppT >> &rC_Z_g2, const libff::G1< snark_pp< ppT >> A0, const libff::G1_vector< snark_pp< ppT >> Ain)
Definition: r1cs_ppzkadsnark.hpp:388
libsnark::r1cs_ppzkadsnark_proving_key::G1_size
size_t G1_size() const
Definition: r1cs_ppzkadsnark.hpp:313
libsnark::r1cs_ppzkadsnark_skT
typename r1cs_ppzkadsnark_ppT::skT r1cs_ppzkadsnark_skT
Definition: r1cs_ppzkadsnark_params.hpp:48
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_alphaC_g2_precomp
libff::G2_precomp< snark_pp< ppT > > vk_alphaC_g2_precomp
Definition: r1cs_ppzkadsnark.hpp:466
libsnark::r1cs_ppzkadsnark_auth_data::Lambda
libff::G2< snark_pp< ppT > > Lambda
Definition: r1cs_ppzkadsnark.hpp:222
libsnark::r1cs_ppzkadsnark_verification_key::A0
libff::G1< snark_pp< ppT > > A0
Definition: r1cs_ppzkadsnark.hpp:384
libsnark::r1cs_ppzkadsnark_verification_key::G2_size
size_t G2_size() const
Definition: r1cs_ppzkadsnark.hpp:410
libsnark::r1cs_ppzkadsnark_proving_key::G2_sparse_size
size_t G2_sparse_size() const
Definition: r1cs_ppzkadsnark.hpp:327
libsnark::r1cs_ppzkadsnark_auth_keys::sak
r1cs_ppzkadsnark_sec_auth_key< ppT > sak
Definition: r1cs_ppzkadsnark.hpp:188
libsnark::r1cs_ppzkadsnark_sigT
typename r1cs_ppzkadsnark_ppT::sigT r1cs_ppzkadsnark_sigT
Definition: r1cs_ppzkadsnark_params.hpp:54
libsnark::r1cs_ppzkadsnark_vkT
typename r1cs_ppzkadsnark_ppT::vkT r1cs_ppzkadsnark_vkT
Definition: r1cs_ppzkadsnark_params.hpp:51
libsnark::r1cs_ppzkadsnark_processed_verification_key::pp_G2_one_precomp
libff::G2_precomp< snark_pp< ppT > > pp_G2_one_precomp
Definition: r1cs_ppzkadsnark.hpp:463
libsnark::r1cs_ppzkadsnark_sec_auth_key::S
r1cs_ppzkadsnark_prfKeyT< ppT > S
Definition: r1cs_ppzkadsnark.hpp:118
libsnark::r1cs_ppzkadsnark_pub_auth_prms::operator==
bool operator==(const r1cs_ppzkadsnark_pub_auth_prms< ppT > &other) const
libsnark::r1cs_ppzkadsnark_pub_auth_key::r1cs_ppzkadsnark_pub_auth_key
r1cs_ppzkadsnark_pub_auth_key()
Definition: r1cs_ppzkadsnark.hpp:162
libsnark::r1cs_ppzkadsnark_sec_auth_key::operator=
r1cs_ppzkadsnark_sec_auth_key< ppT > & operator=(const r1cs_ppzkadsnark_sec_auth_key< ppT > &other)=default
libsnark::r1cs_ppzkadsnark_verification_key::alphaB_g1
libff::G1< snark_pp< ppT > > alphaB_g1
Definition: r1cs_ppzkadsnark.hpp:377
knowledge_commitment.hpp
libsnark::r1cs_ppzkadsnark_verification_key::dummy_verification_key
static r1cs_ppzkadsnark_verification_key< ppT > dummy_verification_key(const size_t input_size)
libsnark::r1cs_ppzkadsnark_auth_keys::pak
r1cs_ppzkadsnark_pub_auth_key< ppT > pak
Definition: r1cs_ppzkadsnark.hpp:187
libsnark::r1cs_ppzkadsnark_proof::operator==
bool operator==(const r1cs_ppzkadsnark_proof< ppT > &other) const
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_gamma_beta_g2_precomp
libff::G2_precomp< snark_pp< ppT > > vk_gamma_beta_g2_precomp
Definition: r1cs_ppzkadsnark.hpp:470
libsnark::r1cs_ppzkadsnark_proving_key::constraint_system
r1cs_ppzkadsnark_constraint_system< ppT > constraint_system
Definition: r1cs_ppzkadsnark.hpp:282
libsnark::r1cs_ppzkadsnark_proof::is_well_formed
bool is_well_formed() const
Definition: r1cs_ppzkadsnark.hpp:603
libsnark::r1cs_ppzkadsnark_keypair::r1cs_ppzkadsnark_keypair
r1cs_ppzkadsnark_keypair(r1cs_ppzkadsnark_proving_key< ppT > &&pk, r1cs_ppzkadsnark_verification_key< ppT > &&vk)
Definition: r1cs_ppzkadsnark.hpp:503
libsnark::r1cs_ppzkadsnark_verification_key::print_size
void print_size() const
Definition: r1cs_ppzkadsnark.hpp:420
libsnark::r1cs_ppzkadsnark_proof::g_H
libff::G1< snark_pp< ppT > > g_H
Definition: r1cs_ppzkadsnark.hpp:540
libsnark::operator>>
std::istream & operator>>(std::istream &in, accumulation_vector< T > &v)
libsnark::r1cs_ppzkadsnark_processed_verification_key::vk_alphaA_g2_precomp
libff::G2_precomp< snark_pp< ppT > > vk_alphaA_g2_precomp
Definition: r1cs_ppzkadsnark.hpp:464
libsnark::r1cs_ppzkadsnark_proving_key::rA_i_Z_g1
libff::G1< snark_pp< ppT > > rA_i_Z_g1
Definition: r1cs_ppzkadsnark.hpp:280
libsnark::r1cs_ppzkadsnark_proving_key::r1cs_ppzkadsnark_proving_key
r1cs_ppzkadsnark_proving_key(knowledge_commitment_vector< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&A_query, knowledge_commitment_vector< libff::G2< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&B_query, knowledge_commitment_vector< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&C_query, libff::G1_vector< snark_pp< ppT >> &&H_query, libff::G1_vector< snark_pp< ppT >> &&K_query, libff::G1< snark_pp< ppT >> &&rA_i_Z_g1, r1cs_ppzkadsnark_constraint_system< ppT > &&constraint_system)
Definition: r1cs_ppzkadsnark.hpp:291
libsnark::r1cs_ppzkadsnark_proof::r1cs_ppzkadsnark_proof
r1cs_ppzkadsnark_proof(knowledge_commitment< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&g_A, knowledge_commitment< libff::G2< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&g_B, knowledge_commitment< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&g_C, libff::G1< snark_pp< ppT >> &&g_H, libff::G1< snark_pp< ppT >> &&g_K, knowledge_commitment< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&g_Aau, libff::G1< snark_pp< ppT >> &&muA)
Definition: r1cs_ppzkadsnark.hpp:563
r1cs_ppzkadsnark_prf.hpp
libsnark::r1cs_ppzkadsnark_pub_auth_key::vkp
r1cs_ppzkadsnark_vkT< ppT > vkp
Definition: r1cs_ppzkadsnark.hpp:160
libsnark::r1cs_ppzkadsnark_proof::G1_size
size_t G1_size() const
Definition: r1cs_ppzkadsnark.hpp:583
libsnark::r1cs_ppzkadsnark_auth_data::mu
libff::Fr< snark_pp< ppT > > mu
Definition: r1cs_ppzkadsnark.hpp:221
libsnark::r1cs_ppzkadsnark_keypair::pk
r1cs_ppzkadsnark_proving_key< ppT > pk
Definition: r1cs_ppzkadsnark.hpp:497
libsnark::r1cs_ppzkadsnark_verification_key::gamma_beta_g1
libff::G1< snark_pp< ppT > > gamma_beta_g1
Definition: r1cs_ppzkadsnark.hpp:380
libsnark::knowledge_commitment::h
T2 h
Definition: knowledge_commitment.hpp:37
libsnark::r1cs_ppzkadsnark_verification_key
Definition: r1cs_ppzkadsnark.hpp:360
libsnark::r1cs_ppzkadsnark_auth_keys::r1cs_ppzkadsnark_auth_keys
r1cs_ppzkadsnark_auth_keys()
Definition: r1cs_ppzkadsnark.hpp:190
libsnark::r1cs_ppzkadsnark_auth_verify
bool r1cs_ppzkadsnark_auth_verify(const std::vector< libff::Fr< snark_pp< ppT >>> &data, const std::vector< r1cs_ppzkadsnark_auth_data< ppT >> &auth_data, const r1cs_ppzkadsnark_sec_auth_key< ppT > &sak, const std::vector< labelT > &labels)
libsnark::r1cs_ppzkadsnark_sec_auth_key::r1cs_ppzkadsnark_sec_auth_key
r1cs_ppzkadsnark_sec_auth_key(libff::Fr< snark_pp< ppT >> &&i, r1cs_ppzkadsnark_skT< ppT > &&skp, r1cs_ppzkadsnark_prfKeyT< ppT > &&S)
Definition: r1cs_ppzkadsnark.hpp:127
libsnark::r1cs_ppzkadsnark_pub_auth_key::operator==
bool operator==(const r1cs_ppzkadsnark_pub_auth_key< ppT > &other) const
libsnark::r1cs_constraint_system
Definition: protoboard.hpp:25
libsnark::r1cs_ppzkadsnark_proof::G2_size
size_t G2_size() const
Definition: r1cs_ppzkadsnark.hpp:585
libsnark::r1cs_ppzkadsnark_auth_data::r1cs_ppzkadsnark_auth_data
r1cs_ppzkadsnark_auth_data()
Definition: r1cs_ppzkadsnark.hpp:225
libsnark::r1cs_ppzkadsnark_sec_auth_key::operator==
bool operator==(const r1cs_ppzkadsnark_sec_auth_key< ppT > &other) const
libsnark::r1cs_ppzkadsnark_proving_key::G1_sparse_size
size_t G1_sparse_size() const
Definition: r1cs_ppzkadsnark.hpp:321
libsnark::r1cs_ppzkadsnark_processed_verification_key::A0
libff::G1< snark_pp< ppT > > A0
Definition: r1cs_ppzkadsnark.hpp:473
r1cs_ppzkadsnark_params.hpp
libsnark::r1cs_ppzkadsnark_proving_key::C_query
knowledge_commitment_vector< libff::G1< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > C_query
Definition: r1cs_ppzkadsnark.hpp:276
libsnark::r1cs_ppzkadsnark_auth_data::r1cs_ppzkadsnark_auth_data
r1cs_ppzkadsnark_auth_data(libff::Fr< snark_pp< ppT >> &&mu, libff::G2< snark_pp< ppT >> &&Lambda, r1cs_ppzkadsnark_sigT< ppT > &&sigma)
Definition: r1cs_ppzkadsnark.hpp:232
libsnark::r1cs_ppzkadsnark_proving_key::operator==
bool operator==(const r1cs_ppzkadsnark_proving_key< ppT > &other) const
libsnark::r1cs_ppzkadsnark_proving_key::H_query
libff::G1_vector< snark_pp< ppT > > H_query
Definition: r1cs_ppzkadsnark.hpp:277
libsnark::r1cs_ppzkadsnark_online_verifier
bool r1cs_ppzkadsnark_online_verifier(const r1cs_ppzkadsnark_processed_verification_key< ppT > &pvk, const r1cs_ppzkadsnark_proof< ppT > &proof, const r1cs_ppzkadsnark_sec_auth_key< ppT > &sak, const std::vector< labelT > &labels)
libsnark::r1cs_ppzkadsnark_verification_key::rC_Z_g2
libff::G2< snark_pp< ppT > > rC_Z_g2
Definition: r1cs_ppzkadsnark.hpp:382
r1cs_ppzkadsnark_signature.hpp
libsnark::r1cs_ppzkadsnark_sec_auth_key
Definition: r1cs_ppzkadsnark.hpp:100
r1cs_ppzkadsnark.tcc
libsnark::r1cs_ppzkadsnark_verification_key::r1cs_ppzkadsnark_verification_key
r1cs_ppzkadsnark_verification_key()=default
libsnark::r1cs_ppzkadsnark_prfKeyT
typename r1cs_ppzkadsnark_ppT::prfKeyT r1cs_ppzkadsnark_prfKeyT
Definition: r1cs_ppzkadsnark_params.hpp:57
libsnark::sparse_vector
Definition: sparse_vector.hpp:21
libsnark::r1cs_ppzkadsnark_processed_verification_key::Ain
libff::G1_vector< snark_pp< ppT > > Ain
Definition: r1cs_ppzkadsnark.hpp:474
libsnark::r1cs_ppzkadsnark_pub_auth_prms
Definition: r1cs_ppzkadsnark.hpp:62
libsnark::r1cs_ppzkadsnark_proof::g_K
libff::G1< snark_pp< ppT > > g_K
Definition: r1cs_ppzkadsnark.hpp:541
libsnark::r1cs_ppzkadsnark_pub_auth_prms::operator=
r1cs_ppzkadsnark_pub_auth_prms< ppT > & operator=(const r1cs_ppzkadsnark_pub_auth_prms< ppT > &other)=default
libsnark::r1cs_ppzkadsnark_auth_generator
r1cs_ppzkadsnark_auth_keys< ppT > r1cs_ppzkadsnark_auth_generator(void)
libsnark::r1cs_ppzkadsnark_keypair::r1cs_ppzkadsnark_keypair
r1cs_ppzkadsnark_keypair()=default
libsnark::r1cs_ppzkadsnark_sec_auth_key::r1cs_ppzkadsnark_sec_auth_key
r1cs_ppzkadsnark_sec_auth_key()
Definition: r1cs_ppzkadsnark.hpp:120
libsnark::r1cs_ppzkadsnark_sec_auth_key::i
libff::Fr< snark_pp< ppT > > i
Definition: r1cs_ppzkadsnark.hpp:116
libsnark::r1cs_ppzkadsnark_proof::r1cs_ppzkadsnark_proof
r1cs_ppzkadsnark_proof()
Definition: r1cs_ppzkadsnark.hpp:546
libsnark::r1cs_ppzkadsnark_verification_key::G1_size
size_t G1_size() const
Definition: r1cs_ppzkadsnark.hpp:408
r1cs.hpp
libsnark::r1cs_ppzkadsnark_pub_auth_prms::r1cs_ppzkadsnark_pub_auth_prms
r1cs_ppzkadsnark_pub_auth_prms()
Definition: r1cs_ppzkadsnark.hpp:80
libsnark::r1cs_ppzkadsnark_generator
r1cs_ppzkadsnark_keypair< ppT > r1cs_ppzkadsnark_generator(const r1cs_ppzkadsnark_constraint_system< ppT > &cs, const r1cs_ppzkadsnark_pub_auth_prms< ppT > &prms)