MCPcopy Create free account
hub / github.com/docknetwork/crypto / derive_prepared_parameters

Method derive_prepared_parameters

proof_system/src/proof_spec.rs:372–534  ·  view source on GitHub ↗

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,
    )

Source from the content-addressed store, hash-verified

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);

Callers 1

_verifyMethod · 0.80

Calls 10

on_new_statement_idxMethod · 0.80
get_public_keyMethod · 0.80
get_encryption_gensMethod · 0.80
get_encryption_keyMethod · 0.80
iterMethod · 0.45
get_paramsMethod · 0.45
get_verifying_keyMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected