41 message_string[i] =
static_cast<char>(
static_cast<uint8_t
>(public_inputs[i]));
47 input_buffer[i].assert_equal(message[i]);
57 ecdsa_construct_signature<crypto::Sha256Hasher, typename curve::fq, typename curve::fr, typename curve::g1>(
58 message_string, account);
61 bool dry_run = crypto::
62 ecdsa_verify_signature<crypto::Sha256Hasher, typename curve::fq, typename curve::fr, typename curve::g1>(
63 message_string, account.
public_key, signature);
71 std::vector<uint8_t> rr(signature.
r.begin(), signature.
r.end());
72 std::vector<uint8_t> ss(signature.
s.begin(), signature.
s.end());
93 signature_result.assert_equal(
bool_ct(
true));
static constexpr size_t NUM_PUBLIC_INPUTS
stdlib::bool_t< Builder > bool_ct
bb::UltraCircuitBuilder Builder
stdlib::public_witness_t< Builder > public_witness_ct
stdlib::secp256k1< Builder > curve
static Builder generate(uint256_t public_inputs[])
static constexpr element one
static byte_array< Builder > hash(const byte_array_ct &input)
Implements boolean logic in-circuit.
Represents a dynamic array of bytes in-circuit.
bool_t< Builder > ecdsa_verify_signature(const stdlib::byte_array< Builder > &hashed_message, const G1 &public_key, const ecdsa_signature< Builder > &sig)
Verify ECDSA signature. Returns bool_t(true/false) depending on whether the signature is valid or not...
Entry point for Barretenberg command-line interface.
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
G1::affine_element public_key
std::array< uint8_t, 32 > r
std::array< uint8_t, 32 > s
static field random_element(numeric::RNG *engine=nullptr) noexcept
byte_array< Builder > byte_array_ct
bigfield< Builder, typename ::bb::secp256k1::FqParams > fq_ct
element< Builder, fq_ct, bigfr_ct, g1 > g1_bigfr_ct
bigfield< Builder, typename ::bb::secp256k1::FrParams > bigfr_ct
void throw_or_abort(std::string const &err)