|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Test utility for injecting malicious witness values to test failure modes. More...
#include <failure_test_utils.hpp>
Public Types | |
| using | Builder = typename Flavor::CircuitBuilder |
| using | FF = typename Flavor::FF |
| using | ProverInstance = ProverInstance_< Flavor > |
Public Member Functions | |
| uint32_t | add_malicious_variable (const FF &good_val, const FF &bad_val) |
| Add a "good" variable to the builder and specify a malicious value to inject later. | |
| std::pair< std::shared_ptr< ProverInstance >, std::shared_ptr< ProverInstance > > | create_instances () |
| Create two prover instances, one based on the good witness values and one based on the malicious values. | |
| Builder | create_builder_with_malicious_witnesses () |
| Create a copy of the builder with malicious values injected. | |
Public Attributes | |
| Builder | builder |
Private Attributes | |
| std::unordered_map< uint32_t, FF > | malicious_variable_map |
Test utility for injecting malicious witness values to test failure modes.
This class allows tests to construct circuits with "malicious" variables that have different witness values in passing vs failing proofs. This enables systematic testing of constraint violations, particularly useful for validating that invalid witnesses correctly fail verification.
Definition at line 24 of file failure_test_utils.hpp.
| using bb::MaliciousWitnessInjector< Flavor >::Builder = typename Flavor::CircuitBuilder |
Definition at line 26 of file failure_test_utils.hpp.
| using bb::MaliciousWitnessInjector< Flavor >::FF = typename Flavor::FF |
Definition at line 27 of file failure_test_utils.hpp.
| using bb::MaliciousWitnessInjector< Flavor >::ProverInstance = ProverInstance_<Flavor> |
Definition at line 28 of file failure_test_utils.hpp.
|
inline |
Add a "good" variable to the builder and specify a malicious value to inject later.
Equivalent to using builder.add_variable(good_val). The malicious value is simply stored to be injected later.
| good_val | The honest value |
| bad_val | The malicious value to be injected for failure testing |
Definition at line 46 of file failure_test_utils.hpp.
|
inline |
Create a copy of the builder with malicious values injected.
Malicious values are injected based on real_variable_index which means that the entire copy cycle will be updated implicitly.
Definition at line 78 of file failure_test_utils.hpp.
|
inline |
Create two prover instances, one based on the good witness values and one based on the malicious values.
Definition at line 61 of file failure_test_utils.hpp.
| Builder bb::MaliciousWitnessInjector< Flavor >::builder |
Definition at line 30 of file failure_test_utils.hpp.
|
private |
Definition at line 34 of file failure_test_utils.hpp.