27     template<
typename ppT, 
typename snarkT>
 
   30         ppT::init_public_params();
 
   31         libff::inhibit_profiling_info = 
true;
 
   32         libff::inhibit_profiling_counters = 
true;
 
   34         typename snarkT::verification_key verification_key;
 
   37             snarkT::verification_key_read_bytes(verification_key, in_s);
 
   40         libsnark::r1cs_primary_input<libff::Fr<ppT>> primary_input;
 
   47         typename snarkT::proof proof;
 
   50             snarkT::proof_read_bytes(proof, in_s);
 
   54             std::cout << 
"verification failed.\n";
 
   63         boost::program_options::options_description &options,
 
   64         boost::program_options::options_description &all_options,
 
   65         boost::program_options::positional_options_description &pos)
 override 
   69         all_options.add(options).add_options()(
 
   70             "vk_file", po::value<std::string>(), 
"Verification key file");
 
   71         all_options.add_options()(
 
   73             po::value<std::string>(),
 
   74             "Primary input file");
 
   75         all_options.add_options()(
 
   76             "proof_file", po::value<std::string>(), 
"Proof file");
 
   78         pos.add(
"vk_file", 1);
 
   79         pos.add(
"primary_input_file", 1);
 
   80         pos.add(
"proof_file", 1);
 
   84         const boost::program_options::variables_map &vm)
 override 
   88         if (vm.count(
"vk_file") == 0) {
 
   89             throw po::error(
"vk_file not specified");
 
   91         if (vm.count(
"primary_input_file") == 0) {
 
   92             throw po::error(
"primary_input_file not specified");
 
   94         if (vm.count(
"proof_file") == 0) {
 
   95             throw po::error(
"proof_file not specified");
 
   98         vk_file = vm[
"vk_file"].as<std::string>();
 
   99         proof_file = vm[
"proof_file"].as<std::string>();
 
  105         std::cout << 
"Usage:\n" 
  108                   << 
" verify [vk_file] [primary_input_file] [proof_file]\n";
 
  119     "verify", 
"Verify proof against verification key and primary input");