67 switch (invalid_witness_target) {
70 for (
size_t idx = 0; idx < 32; idx++) {
76 for (
size_t idx = 0; idx < 32; idx++) {
82 for (
size_t idx = 32; idx < 64; idx++) {
88 for (
size_t idx = 32; idx < 64; idx++) {
111 std::string message_string =
"Instructions unclear, ask again later.";
114 std::vector<uint8_t> message_buffer(message_string.begin(), message_string.end());
124 ecdsa_construct_signature<Sha256Hasher, FqNative, FrNative, G1Native>(message_string, account);
127 std::array<uint8_t, 32> buffer_x;
128 std::array<uint8_t, 32> buffer_y;
129 FqNative::serialize_to_buffer(account.
public_key.x, &buffer_x[0]);
130 FqNative::serialize_to_buffer(account.
public_key.y, &buffer_y[0]);
133 std::array<uint32_t, 32> hashed_message_indices =
134 add_to_witness_and_track_indices<std::span<uint8_t>, 32>(witness_values, std::span(hashed_message));
136 std::array<uint32_t, 32> pub_x_indices =
137 add_to_witness_and_track_indices<std::span<uint8_t>, 32>(witness_values, std::span(buffer_x));
139 std::array<uint32_t, 32> pub_y_indices =
140 add_to_witness_and_track_indices<std::span<uint8_t>, 32>(witness_values, std::span(buffer_y));
142 std::array<uint32_t, 32> r_indices =
143 add_to_witness_and_track_indices<std::span<uint8_t>, 32>(witness_values, std::span(signature.
r));
145 std::array<uint32_t, 32> s_indices =
146 add_to_witness_and_track_indices<std::span<uint8_t>, 32>(witness_values, std::span(signature.
s));
153 std::array<uint32_t, 64> signature_indices;
154 std::ranges::copy(r_indices, signature_indices.begin());
155 std::ranges::copy(s_indices, signature_indices.begin() + 32);
158 .hashed_message = hashed_message_indices,
159 .signature = signature_indices,
160 .pub_x_indices = pub_x_indices,
161 .pub_y_indices = pub_y_indices,
163 .result = result_index };