Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
schnorr.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  bb
 Entry point for Barretenberg command-line interface.
 
namespace  bb::stdlib
 

Macros

#define VERIFY_SIGNATURE_INTERNAL(circuit_type)
 
#define VERIFY_SIGNATURE(circuit_type)
 
#define SIGNATURE_VERIFICATION_RESULT(circuit_type)
 
#define CONVERT_SIGNATURE(circuit_type)
 

Functions

template<typename C >
schnorr_signature_bits< Cbb::stdlib::schnorr_convert_signature (C *context, const crypto::schnorr_signature &signature)
 Instantiate a witness containing the signature (s, e) as a quadruple of field_t elements (s_lo, s_hi, e_lo, e_hi).
 
template<typename C >
std::array< field_t< C >, 2 > bb::stdlib::schnorr_verify_signature_internal (const byte_array< C > &message, const cycle_group< C > &pub_key, const schnorr_signature_bits< C > &sig)
 Make the computations needed to verify a signature (s, e), i.e., compute e' = hash(([s]g + [e]pub).x | message) and return e'.
 
template<typename C >
void bb::stdlib::schnorr_verify_signature (const byte_array< C > &message, const cycle_group< C > &pub_key, const schnorr_signature_bits< C > &sig)
 Verify that a signature (s, e) is valid, i.e., compute e' = hash(([s]g + [e]pub).x | message) and check that e' == e is true.
 
template<typename C >
bool_t< Cbb::stdlib::schnorr_signature_verification_result (const byte_array< C > &message, const cycle_group< C > &pub_key, const schnorr_signature_bits< C > &sig)
 Attempt to verify a signature (s, e) and return the result, i.e., compute e' = hash(([s]g + [e]pub).x | message) and return the boolean witness e' == e.
 
 bb::stdlib::VERIFY_SIGNATURE_INTERNAL (bb::UltraCircuitBuilder)
 
 bb::stdlib::VERIFY_SIGNATURE_INTERNAL (bb::MegaCircuitBuilder)
 
 bb::stdlib::VERIFY_SIGNATURE (bb::UltraCircuitBuilder)
 
 bb::stdlib::VERIFY_SIGNATURE (bb::MegaCircuitBuilder)
 
 bb::stdlib::SIGNATURE_VERIFICATION_RESULT (bb::UltraCircuitBuilder)
 
 bb::stdlib::SIGNATURE_VERIFICATION_RESULT (bb::MegaCircuitBuilder)
 
 bb::stdlib::CONVERT_SIGNATURE (bb::UltraCircuitBuilder)
 
 bb::stdlib::CONVERT_SIGNATURE (bb::MegaCircuitBuilder)
 

Macro Definition Documentation

◆ CONVERT_SIGNATURE

#define CONVERT_SIGNATURE (   circuit_type)
Value:
template schnorr_signature_bits<circuit_type> schnorr_convert_signature<circuit_type>( \
circuit_type*, const crypto::schnorr_signature&)

Definition at line 119 of file schnorr.cpp.

◆ SIGNATURE_VERIFICATION_RESULT

#define SIGNATURE_VERIFICATION_RESULT (   circuit_type)
Value:
template bool_t<circuit_type> schnorr_signature_verification_result<circuit_type>( \
const cycle_group<circuit_type>&, \
const schnorr_signature_bits<circuit_type>&)
Represents a dynamic array of bytes in-circuit.

Definition at line 112 of file schnorr.cpp.

◆ VERIFY_SIGNATURE

#define VERIFY_SIGNATURE (   circuit_type)
Value:
template void schnorr_verify_signature<circuit_type>(const byte_array<circuit_type>&, \
const cycle_group<circuit_type>&, \
const schnorr_signature_bits<circuit_type>&)

Definition at line 106 of file schnorr.cpp.

◆ VERIFY_SIGNATURE_INTERNAL

#define VERIFY_SIGNATURE_INTERNAL (   circuit_type)
Value:
template std::array<field_t<circuit_type>, 2> schnorr_verify_signature_internal<circuit_type>( \
const cycle_group<circuit_type>&, \
const schnorr_signature_bits<circuit_type>&)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13

Definition at line 99 of file schnorr.cpp.