|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Classes | |
| class | stdlib_field_conversion |
Typedefs | |
| template<typename Builder > | |
| using | fr = field_t< Builder > |
| template<typename Builder > | |
| using | fq = bigfield< Builder, bb::Bn254FqParams > |
| template<typename Builder > | |
| using | bn254_element = element< Builder, fq< Builder >, fr< Builder >, curve::BN254::Group > |
| template<typename Builder > | |
| using | grumpkin_element = cycle_group< Builder > |
| using | BuilderTypes = testing::Types< UltraCircuitBuilder, MegaCircuitBuilder > |
Functions | |
| TYPED_TEST_SUITE (stdlib_field_conversion, BuilderTypes) | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionFr) | |
| Field conversion test for fr<Builder> | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionGrumpkinFr) | |
| Field conversion test for fq<Builder> | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionBN254AffineElement) | |
| Field conversion test for bn254_element<Builder> | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionGrumpkinAffineElement) | |
| Field conversion test for grumpkin_element<Builder> | |
| TYPED_TEST (stdlib_field_conversion, DeserializePointAtInfinity) | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionArrayBn254Fr) | |
| Field conversion test for std::array<fr<Builder>, N> | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionArrayGrumpkinFr) | |
| Field conversion test for std::array<fq<Builder>, N> | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionUnivariateBn254Fr) | |
| Field conversion test for Univariate<fr<Builder>, N> | |
| TYPED_TEST (stdlib_field_conversion, FieldConversionUnivariateGrumpkinFr) | |
| Field conversion test for Univariate<fq<Builder>, N> | |
| TYPED_TEST (stdlib_field_conversion, GateCountScalarDeserialization) | |
| Measure gate counts for scalar (fr) deserialization. | |
| TYPED_TEST (stdlib_field_conversion, GateCountBigfieldDeserialization) | |
| Measure gate counts for bigfield deserialization. | |
| TYPED_TEST (stdlib_field_conversion, GateCountMultipleBigfieldDeserialization) | |
| Measure gate counts for multiple bigfield deserializations. | |
| TYPED_TEST (stdlib_field_conversion, GateCountBN254PointDeserialization) | |
| Measure gate counts for BN254 point deserialization. | |
| TYPED_TEST (stdlib_field_conversion, GateCountMultipleBN254PointDeserialization) | |
| Measure gate counts for multiple BN254 point deserializations. | |
| TYPED_TEST (stdlib_field_conversion, GateCountGrumpkinPointDeserialization) | |
| Measure gate counts for Grumpkin point deserialization. | |
| TYPED_TEST (stdlib_field_conversion, GateCountArrayDeserialization) | |
| Measure gate counts for array deserialization. | |
| TYPED_TEST (stdlib_field_conversion, GateCountUnivariateDeserialization) | |
| Measure gate counts for univariate deserialization. | |
| TYPED_TEST (stdlib_field_conversion, BigfieldDeserializationFailsOnLimbOverflow) | |
| Failure test for deserializing limbs that exceed their range bounds. | |
| TYPED_TEST (stdlib_field_conversion, BothCodecsRejectPointAtInfinityAlias) | |
| Test that both codecs reject point with alias coordinates. | |
| TYPED_TEST (stdlib_field_conversion, BothCodecsAcceptCanonicalRejectAlias) | |
| Test that both codecs accept canonical values and reject aliases. | |
| using bb::stdlib::field_conversion_tests::bn254_element = typedef element<Builder, fq<Builder>, fr<Builder>, curve::BN254::Group> |
Definition at line 13 of file field_conversion.test.cpp.
| using bb::stdlib::field_conversion_tests::BuilderTypes = typedef testing::Types<UltraCircuitBuilder, MegaCircuitBuilder> |
Definition at line 78 of file field_conversion.test.cpp.
| using bb::stdlib::field_conversion_tests::fq = typedef bigfield<Builder, bb::Bn254FqParams> |
Definition at line 12 of file field_conversion.test.cpp.
| using bb::stdlib::field_conversion_tests::fr = typedef field_t<Builder> |
Definition at line 11 of file field_conversion.test.cpp.
| using bb::stdlib::field_conversion_tests::grumpkin_element = typedef cycle_group<Builder> |
Definition at line 14 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| BigfieldDeserializationFailsOnLimbOverflow | |||
| ) |
Failure test for deserializing limbs that exceed their range bounds.
The encoding uses low_limb (136 bits) and high_limb (118 bits). This test verifies that a high_limb value exceeding 2^118 is rejected by both codecs. Native codec uses BB_ASSERT, circuit codec uses in-circuit range constraints.
Definition at line 449 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| BothCodecsAcceptCanonicalRejectAlias | |||
| ) |
Test that both codecs accept canonical values and reject aliases.
With assert_is_in_field, only canonical values < Fq::modulus are accepted.
Definition at line 531 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| BothCodecsRejectPointAtInfinityAlias | |||
| ) |
Test that both codecs reject point with alias coordinates.
Specific case from audit: (x=modulus, y=modulus) should be rejected by both. For Ultra, the on-curve check is in the main circuit. For Mega (goblin), the on-curve check is delegated to ECCVM (see ECCVMTranscriptRelationImpl), so the main circuit will pass.
Definition at line 490 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| DeserializePointAtInfinity | |||
| ) |
Definition at line 221 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionArrayBn254Fr | |||
| ) |
Field conversion test for std::array<fr<Builder>, N>
Definition at line 251 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionArrayGrumpkinFr | |||
| ) |
Field conversion test for std::array<fq<Builder>, N>
Definition at line 275 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionBN254AffineElement | |||
| ) |
Field conversion test for bn254_element<Builder>
Definition at line 121 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionFr | |||
| ) |
Field conversion test for fr<Builder>
Definition at line 85 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionGrumpkinAffineElement | |||
| ) |
Field conversion test for grumpkin_element<Builder>
Definition at line 178 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionGrumpkinFr | |||
| ) |
Field conversion test for fq<Builder>
Definition at line 106 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionUnivariateBn254Fr | |||
| ) |
Field conversion test for Univariate<fr<Builder>, N>
Definition at line 301 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| FieldConversionUnivariateGrumpkinFr | |||
| ) |
Field conversion test for Univariate<fq<Builder>, N>
Definition at line 316 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountArrayDeserialization | |||
| ) |
Measure gate counts for array deserialization.
Arrays of scalars add no gates
Definition at line 411 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountBigfieldDeserialization | |||
| ) |
Measure gate counts for bigfield deserialization.
Definition at line 356 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountBN254PointDeserialization | |||
| ) |
Measure gate counts for BN254 point deserialization.
Includes bigfield reconstruction + point-at-infinity check + on-curve validation
Definition at line 375 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountGrumpkinPointDeserialization | |||
| ) |
Measure gate counts for Grumpkin point deserialization.
Includes point-at-infinity check + on-curve validation
Definition at line 401 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountMultipleBigfieldDeserialization | |||
| ) |
Measure gate counts for multiple bigfield deserializations.
Range constraints are batched, making subsequent bigfields much cheaper
Definition at line 366 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountMultipleBN254PointDeserialization | |||
| ) |
Measure gate counts for multiple BN254 point deserializations.
Definition at line 388 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountScalarDeserialization | |||
| ) |
Measure gate counts for scalar (fr) deserialization.
Must be zero gates, as it's the "native" field type of our circuits.
Definition at line 347 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST | ( | stdlib_field_conversion | , |
| GateCountUnivariateDeserialization | |||
| ) |
Measure gate counts for univariate deserialization.
Same as array - no gates added
Definition at line 429 of file field_conversion.test.cpp.
| bb::stdlib::field_conversion_tests::TYPED_TEST_SUITE | ( | stdlib_field_conversion | , |
| BuilderTypes | |||
| ) |