Derive prepared keys for performing pairings. This is done to avoid preparing the same parameters again and is effectively a pre-processing step done for optimization.
(
&self,
)
| 370 | /// Derive prepared keys for performing pairings. This is done to avoid preparing the same |
| 371 | /// parameters again and is effectively a pre-processing step done for optimization. |
| 372 | pub fn derive_prepared_parameters( |
| 373 | &self, |
| 374 | ) -> Result< |
| 375 | ( |
| 376 | StatementDerivedParams<LegoPreparedVerifyingKey<E>>, |
| 377 | StatementDerivedParams<PreparedEncryptionGens<E>>, |
| 378 | StatementDerivedParams<PreparedEncryptionKey<E>>, |
| 379 | StatementDerivedParams<SaverPreparedVerifyingKey<E>>, |
| 380 | StatementDerivedParams<PreparedBBSPlusSigParams<E>>, |
| 381 | StatementDerivedParams<PreparedBBSPlusPk<E>>, |
| 382 | StatementDerivedParams<PreparedAccumParams<E>>, |
| 383 | StatementDerivedParams<PreparedAccumPk<E>>, |
| 384 | StatementDerivedParams<KBPreparedAccumParams<E>>, |
| 385 | StatementDerivedParams<KBPreparedAccumPk<E>>, |
| 386 | StatementDerivedParams<PreparedPSSigParams<E>>, |
| 387 | StatementDerivedParams<PreparedPSPk<E>>, |
| 388 | StatementDerivedParams<PreparedBBSSigParams23<E>>, |
| 389 | StatementDerivedParams<SmcParamsWithPairingAndCommitmentKey<E>>, |
| 390 | ), |
| 391 | ProofSystemError, |
| 392 | > { |
| 393 | let mut derived_lego_vk = |
| 394 | DerivedParamsTracker::<LegoVerifyingKey<E>, LegoPreparedVerifyingKey<E>, E>::new(); |
| 395 | let mut derived_enc_gens = |
| 396 | DerivedParamsTracker::<EncryptionGens<E>, PreparedEncryptionGens<E>, E>::new(); |
| 397 | let mut derived_ek = |
| 398 | DerivedParamsTracker::<EncryptionKey<E>, PreparedEncryptionKey<E>, E>::new(); |
| 399 | let mut derived_saver_vk = |
| 400 | DerivedParamsTracker::<SaverVerifyingKey<E>, SaverPreparedVerifyingKey<E>, E>::new(); |
| 401 | let mut derived_bbs_p = |
| 402 | DerivedParamsTracker::<BBSPlusSigParams<E>, PreparedBBSPlusSigParams<E>, E>::new(); |
| 403 | let mut derived_bbs = |
| 404 | DerivedParamsTracker::<BBSSigParams23<E>, PreparedBBSSigParams23<E>, E>::new(); |
| 405 | let mut derived_bbs_pk = |
| 406 | DerivedParamsTracker::<BBSPlusPk<E>, PreparedBBSPlusPk<E>, E>::new(); |
| 407 | let mut derived_accum_p = |
| 408 | DerivedParamsTracker::<AccumParams<E>, PreparedAccumParams<E>, E>::new(); |
| 409 | let mut derived_accum_pk = DerivedParamsTracker::<AccumPk<E>, PreparedAccumPk<E>, E>::new(); |
| 410 | let mut derived_ps_p = |
| 411 | DerivedParamsTracker::<PSSigParams<E>, PreparedPSSigParams<E>, E>::new(); |
| 412 | let mut derived_ps_pk = DerivedParamsTracker::<PSPk<E>, PreparedPSPk<E>, E>::new(); |
| 413 | let mut derived_smc_p = DerivedParamsTracker::< |
| 414 | SmcParamsAndCommitmentKey<E>, |
| 415 | SmcParamsWithPairingAndCommitmentKey<E>, |
| 416 | E, |
| 417 | >::new(); |
| 418 | let mut derived_kb_accum_p = |
| 419 | DerivedParamsTracker::<KBAccumParams<E>, KBPreparedAccumParams<E>, E>::new(); |
| 420 | let mut derived_kb_accum_pk = |
| 421 | DerivedParamsTracker::<KBAccumPublicKey<E>, KBPreparedAccumPk<E>, E>::new(); |
| 422 | |
| 423 | macro_rules! set_derived_for_accum { |
| 424 | ($s: ident, $s_idx: ident, $derived_accum_p: ident, $derived_accum_pk: ident) => { |
| 425 | let params = $s.get_params(&self.setup_params, $s_idx)?; |
| 426 | $derived_accum_p.on_new_statement_idx(params, $s_idx); |
| 427 | |
| 428 | let pk = $s.get_public_key(&self.setup_params, $s_idx)?; |
| 429 | $derived_accum_pk.on_new_statement_idx(pk, $s_idx); |
no test coverage detected