|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Differential fuzzer for the secp256r1 fixed-base ROM-table multiplication. More...
#include "barretenberg/circuit_checker/circuit_checker.hpp"#include "barretenberg/ecc/curves/secp256r1/secp256r1.hpp"#include "barretenberg/numeric/uint256/uint256.hpp"#include "barretenberg/stdlib/primitives/biggroup/biggroup.hpp"#include "barretenberg/stdlib/primitives/curves/secp256r1.hpp"#include "barretenberg/stdlib_circuit_builders/ultra_circuit_builder.hpp"#include <cassert>#include <cstdint>#include <cstring>Go to the source code of this file.
Typedefs | |
| using | Builder = bb::UltraCircuitBuilder |
| using | Curve = bb::stdlib::secp256r1< Builder > |
| using | element_ct = typename Curve::Group |
| using | scalar_ct = typename Curve::ScalarField |
| using | fr_native = typename Curve::ScalarFieldNative |
| using | g1_native = typename Curve::GroupNative |
| using | affine_native = typename g1_native::affine_element |
Functions | |
| int | LLVMFuzzerTestOneInput (const uint8_t *Data, size_t Size) |
Differential fuzzer for the secp256r1 fixed-base ROM-table multiplication.
Builds a fresh UltraCircuitBuilder per fuzz iteration, witnesses a random scalar u, computes R = u · G (in-circuit) via element::secp256r1_fixed_base_mul, and compares against the native multiplication. Also asserts the circuit is satisfied.
Covers the 7-bit + short-tail Pedersen-style window construction, the lo/hi plookup chain, and the total-offset subtraction (including the u = 0 → infinity edge case).
Definition in file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| using affine_native = typename g1_native::affine_element |
Definition at line 38 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| using Builder = bb::UltraCircuitBuilder |
Definition at line 32 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| using Curve = bb::stdlib::secp256r1<Builder> |
Definition at line 33 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| using element_ct = typename Curve::Group |
Definition at line 34 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| using fr_native = typename Curve::ScalarFieldNative |
Definition at line 36 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| using g1_native = typename Curve::GroupNative |
Definition at line 37 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| using scalar_ct = typename Curve::ScalarField |
Definition at line 35 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.
| int LLVMFuzzerTestOneInput | ( | const uint8_t * | Data, |
| size_t | Size | ||
| ) |
Definition at line 40 of file secp256r1_fixed_base_mul_ultra.fuzzer.cpp.