nil::crypto3::zk::snark::fiat_shamir_heuristic< TChallenges, Hash > Class Template Reference

Fiat–Shamir heuristic. More...

#include <fiat_shamir.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::fiat_shamir_heuristic< TChallenges, Hash >:

Public Member Functions

 fiat_shamir_heuristic ()
 
template<challenges_ids ChallengeId>
Hash::digest_type get_challenge ()
 
template<challenges_ids ChallengeId, std::size_t Index>
Hash::digest_type get_challenge ()
 
template<typename TAny >
 operator (TAny data)
 

Detailed Description

template<enum TChallenges, typename Hash = hashes::sha2>
class nil::crypto3::zk::snark::fiat_shamir_heuristic< TChallenges, Hash >

Fiat–Shamir heuristic.

Template Parameters
HashHash function, which serves as a non-interactive random oracle.
TManifestFiat-Shamir Heuristic Manifest in the following form:

template<typename ...> struct fiat_shamir_heuristic_manifest {

struct transcript_manifest {
    std::size_t gammas_amount = 5;
  public:
    enum challenges_ids{
        alpha,
        beta,
        gamma = 10,
        delta = gamma + gammas_amount,
        epsilon
    }

}

};

Constructor & Destructor Documentation

◆ fiat_shamir_heuristic()

template<enum TChallenges, typename Hash = hashes::sha2>
nil::crypto3::zk::snark::fiat_shamir_heuristic< TChallenges, Hash >::fiat_shamir_heuristic ( )
inline

Member Function Documentation

◆ get_challenge() [1/2]

template<enum TChallenges, typename Hash = hashes::sha2>
template<challenges_ids ChallengeId>
Hash::digest_type nil::crypto3::zk::snark::fiat_shamir_heuristic< TChallenges, Hash >::get_challenge ( )
inline

◆ get_challenge() [2/2]

template<enum TChallenges, typename Hash = hashes::sha2>
template<challenges_ids ChallengeId, std::size_t Index>
Hash::digest_type nil::crypto3::zk::snark::fiat_shamir_heuristic< TChallenges, Hash >::get_challenge ( )
inline

◆ operator()

template<enum TChallenges, typename Hash = hashes::sha2>
template<typename TAny >
nil::crypto3::zk::snark::fiat_shamir_heuristic< TChallenges, Hash >::operator ( TAny  data)
inline

The documentation for this class was generated from the following file: