zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/ipp2/verifier.hpp File Reference
+ Include dependency graph for zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/ipp2/verifier.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  nil::crypto3::zk::snark::gipa_tuz< CurveType >
 
struct  nil::crypto3::zk::snark::pairing_check< CurveType, DistributionType, GeneratorType >
 
class  nil::crypto3::zk::snark::r1cs_gg_ppzksnark_verifier_strong_input_consistency< CurveType, ProvingMode::Aggregate >
 

Namespaces

 nil
 
 nil::crypto3
 
 nil::crypto3::zk
 
 nil::crypto3::zk::snark
 

Functions

template<typename CurveType , typename Hash = hashes::sha2<256>>
std::tuple< gipa_tuz< CurveType >, typename CurveType::scalar_field_type::value_type, std::vector< typename CurveType::scalar_field_type::value_type >, std::vector< typename CurveType::scalar_field_type::value_type > > nil::crypto3::zk::snark::gipa_verify_tipp_mipp (transcript< CurveType, Hash > &tr, const r1cs_gg_ppzksnark_aggregate_proof< CurveType > &proof, const typename CurveType::scalar_field_type::value_type &r_shift)
 
template<typename CurveType , typename DistributionType = boost::random::uniform_int_distribution< typename CurveType::scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937, typename Hash = hashes::sha2<256>, typename InputRangesRange , typename InputIterator >
std::enable_if< std::is_same< typename CurveType::scalar_field_type::value_type, typename std::iterator_traits< typename std::iterator_traits< typename InputRangesRange::iterator >::value_type::iterator >::value_type >::value &&std::is_same< std::uint8_t, typename std::iterator_traits< InputIterator >::value_type >::value, bool >::type nil::crypto3::zk::snark::verify_aggregate_proof (const r1cs_gg_ppzksnark_aggregate_verification_srs< CurveType > &ip_verifier_srs, const r1cs_gg_ppzksnark_aggregate_verification_key< CurveType > &pvk, const InputRangesRange &public_inputs, const r1cs_gg_ppzksnark_aggregate_proof< CurveType > &proof, InputIterator transcript_include_first, InputIterator transcript_include_last)
 
template<typename CurveType , typename DistributionType , typename GeneratorType , typename InputScalarIterator >
std::enable_if< std::is_same< typename CurveType::scalar_field_type::value_type, typename std::iterator_traits< InputScalarIterator >::value_type >::value >::type nil::crypto3::zk::snark::verify_kzg_v (const r1cs_gg_ppzksnark_aggregate_verification_srs< CurveType > &v_srs, const std::pair< typename CurveType::template g2_type<>::value_type, typename CurveType::template g2_type<>::value_type > &final_vkey, const kzg_opening< typename CurveType::template g2_type<>> &vkey_opening, InputScalarIterator challenges_first, InputScalarIterator challenges_last, const typename CurveType::scalar_field_type::value_type &kzg_challenge, pairing_check< CurveType, DistributionType, GeneratorType > &pc)
 
template<typename CurveType , typename DistributionType , typename GeneratorType , typename InputScalarIterator >
std::enable_if< std::is_same< typename CurveType::scalar_field_type::value_type, typename std::iterator_traits< InputScalarIterator >::value_type >::value >::type nil::crypto3::zk::snark::verify_kzg_w (const r1cs_gg_ppzksnark_aggregate_verification_srs< CurveType > &v_srs, const std::pair< typename CurveType::template g1_type<>::value_type, typename CurveType::template g1_type<>::value_type > &final_wkey, const kzg_opening< typename CurveType::template g1_type<>> &wkey_opening, InputScalarIterator challenges_first, InputScalarIterator challenges_last, const typename CurveType::scalar_field_type::value_type &r_shift, const typename CurveType::scalar_field_type::value_type &kzg_challenge, pairing_check< CurveType, DistributionType, GeneratorType > &pc)
 Similar to verify_kzg_opening_g2 but for g1. More...
 
template<typename CurveType , typename DistributionType , typename GeneratorType , typename Hash = hashes::sha2<256>>
void nil::crypto3::zk::snark::verify_tipp_mipp (transcript< CurveType, Hash > &tr, const r1cs_gg_ppzksnark_aggregate_verification_srs< CurveType > &v_srs, const r1cs_gg_ppzksnark_aggregate_proof< CurveType > &proof, const typename CurveType::scalar_field_type::value_type &r_shift, pairing_check< CurveType, DistributionType, GeneratorType > &pc)