39 input_buffer.
write(single_byte);
45 message_string[i] =
static_cast<char>(
static_cast<uint8_t
>(public_inputs[i]));
51 input_buffer[i].assert_equal(message[i]);
61 ecdsa_construct_signature<crypto::Sha256Hasher, typename curve::fq, typename curve::fr, typename curve::g1>(
62 message_string, account);
65 bool dry_run = crypto::
66 ecdsa_verify_signature<crypto::Sha256Hasher, typename curve::fq, typename curve::fr, typename curve::g1>(
67 message_string, account.
public_key, signature);
75 std::vector<uint8_t> rr(signature.
r.begin(), signature.
r.end());
76 std::vector<uint8_t> ss(signature.
s.begin(), signature.
s.end());
83 auto hash_arr =
crypto::sha256(std::vector<uint8_t>(message_string.begin(), message_string.end()));
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
Implements boolean logic in-circuit.
void assert_equal(const bool_t &rhs, std::string const &msg="bool_t::assert_equal") const
Implements copy constraint for bool_t elements.
Represents a dynamic array of bytes in-circuit.
byte_array & write(byte_array const &other)
Appends the contents of another byte_array (other) to the end of this one.
Sha256Hash sha256(const ByteContainer &input)
SHA-256 hash function (FIPS 180-4)
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)