Skip to content

test_invalid_g1_point()

Documentation for tests/byzantium/eip197_ec_pairing/test_ecpairing_fuzzed.py::test_invalid_g1_point@b314d18e.

Generate fixtures for these test cases for Amsterdam with:

fill -v tests/byzantium/eip197_ec_pairing/test_ecpairing_fuzzed.py::test_invalid_g1_point --fork Amsterdam

Test invalid g1 point inputs to the ecpairing precompile.

Source code in tests/byzantium/eip197_ec_pairing/test_ecpairing_fuzzed.py
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
@pytest.mark.parametrize(
    "expected_output", [pytest.param(Spec.INVALID, id=pytest.HIDDEN_PARAM)]
)
@pytest.mark.parametrize(
    "input_data",
    [
        pytest.param(
            PointG1(
                0x0, 0xBE00BE00BEBEBEBEBEBE0000000000000000000000000000000000
            )
            + Spec.INF_G2,
        ),
        pytest.param(
            PointG1(0x0, 0xFFFFFFFF << 216) + Spec.INF_G2,
        ),
        pytest.param(
            PointG1(0x0, Spec.P - 0x1B7193500000000002) + Spec.INF_G2,
        ),
        pytest.param(
            PointG1(
                0xFFFF7D7D7D7D7D7D7D7D7D7D7D7D,
                0x30644E72E131A0297D7D7D7DFFFFFFFFFF000000000000000000000000000000,
            )
            + PointG2(
                (
                    0xFF7D7D7D7D7D817D7D7D7D7DFFFFFFFFFFA100,
                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7D7D7D7D7D7D7D7D7D7D7D,
                ),
                (
                    0x30644E72E131A0297D7D7D7DFFFFFFFFFF000000000000000000000000000000,
                    0xFF7D7D7D7D7D817D7D7D7D7D827D7D7D7D7D7D,
                ),
            ),
        ),
        pytest.param(
            PointG1(
                0x2900000000000000000000000000000000000000000000000000, 0x0
            )
            + PointG2(
                (0xFFFFFFFFFFFFFFF80000000000000000000000, 0x0), (0x0, 0x0)
            ),
        ),
        pytest.param(
            PointG1(
                0xFFFFFFFFFDFFFFFE2E0000000000000000000000000000000000, 0x0
            )
            + Spec.INF_G2,
        ),
        pytest.param(
            PointG1(
                0x0A12D3FB2743836BBBB51414A351E5E70429A5DE70C0FE7CEC084E47D6027709,
                0x006A8C414196ABF21DA0B3F6944846C77A1032B519BAA1ABF125F4F84010C47A,
            )
            + PointG2(
                (
                    0x250F9CF43675BC1077753C607600F3E51B627A10F3AA68A7E462D89A6BD2A213,
                    0x12AE5D695C4F9792CF70228A1BA07E5E0C2CB47D7AECBAE923A84A3734A94FF1,
                ),
                (
                    0x0BDCD3D0B8E47A925F98BAD0184DFE81967AAFF8DB8F0DFAE31AFCCBCB8C4BD6,
                    0x148DFF646F2764243BA9100A930EB7CC8C766B58E0D9953256698DA5DBE66CC3,
                ),
            )
            + PointG1(
                0x1F372B78747DB898121455853A5672E71977957F134615FD0DD1FAB4938B65E7,
                0x201458C7D8EC49141BD3289F8CC4D19BB52041D51187432579E2E67CAB27C847,
            )
            + PointG2(
                (
                    0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
                    0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
                ),
                (
                    0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
                    0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
                ),
            )
            + PointG1(
                0x2110E6D9F2378C1C1CD070A3F1507C3AA924A60F67259ABE487621B0D3C5C38F,
                0x0C26130B8AAA54109A5D82FBB2782B9ED461A4B8FAA69341CCF652D2F73E1887,
            )
            + PointG2(
                (
                    0x22F1ACBB03C4508760C2430AF35865E7CDF9F3EB1224504FDCC3708DDB954A48,
                    0x2A344FAD01C2ED0ED73142AE1752429EAEA515C6F3F6B941103CC21C2308E1CB,
                ),
                (
                    0x159F15B842BA9C8449AA3268F981010D4C7142E5193473D80B464E964845C3F8,
                    0x0EFD30AC7B6F8D0D3CCBC2207587C2ACBAD1532DC0293F0D034CF8258CD428B3,
                ),
            )
            + PointG1(
                0x00710C68E1B8B73A72A289422D2B6F841CC56FE8C51105021C56AE30C3AE1ACA,
                0x0B2FF392A2FC535427EC9B7E1AE1C35A7961986788CF648349190DD92E182F05,
            )
            + PointG2(
                (
                    0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
                    0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
                ),
                (
                    0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
                    0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
                ),
            )
            + PointG1(
                0xBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE,
                0xBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE,
            )
            + PointG2(
                (
                    0xBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE,
                    0xBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE,
                ),
                (
                    0xBEFDBEBEBEBEABC689BEBEBEBE43BE92BE5FBEBEBEBEBEBEBEBEBEBEBEBEBEBE,
                    0xBEBEBEBEBEBEBEBEBE9EBEBEBE2ABEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE,
                ),
            ),
        ),
        pytest.param(
            PointG1(
                0x25A78FA05DE3E5F7C69F35AB209D6595697E8664C3572A57EA0C971FE33532ED,
                0x0BC38B0A2D9961CF8D392DE63BE18471FFAAA192111CD8ADCCC98B7D790B6114,
            )
            + Spec.INF_G2
            + PointG1(
                0x8013E823575500FFFFFFFFFFFFFFFA00000000000000000000000000, 0x0
            )
            + Spec.INF_G2,
        ),
        pytest.param(
            PointG1(
                0x2DEC711C75595613E8F7E4723C19F6E69BE2EBAFE07E965A001F4FA00A41EECC,
                0x10246180D145035DFE0E334A8E1F4274A189B8DDE0B2CC683CDDFD9CAE9B634B,
            )
            + PointG2(
                (
                    0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
                    0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
                ),
                (
                    0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
                    0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
                ),
            )
            + PointG1(0x0, 0xFFFFFFFFFFFFFF0F000000000000000000)
            + Spec.INF_G2,
        ),
        pytest.param(
            PointG1(
                0x30644E72E131A029B85045AC81EC585DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,
                0xFFFF7D7DFFFF7D817F827D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D,
            )
            + PointG2(
                (
                    0x7D7D767D7D7D7D7D7D797D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7F7D7D,
                    0x7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D8D7D7D7D7D7D7D7DFFFFFFFFFFFFFFFFFF,
                ),
                (
                    0xFFFF01FFFFFFFFFFFFFFFFFFFFFF747D7D7D7D7D7D7D7D7DFD7D7D7D7D7D7D7D,
                    0x7D7D7D7D7D7D7D7D7D7D7DFFFFFFFFFFFFFFFFFFFFFFFF29FFFFFF0AFFFFFF0A,
                ),
            ),
        ),
        pytest.param(
            PointG1(Spec.N, 0x0)
            + PointG2(
                (
                    0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
                    0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
                ),
                (
                    0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
                    0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
                ),
            ),
        ),
        pytest.param(
            PointG1(Spec.P, 0x0)
            + PointG2(
                (
                    0xFFFFFF000060BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
                    0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
                ),
                (
                    0x090689D0585FF075EC9E99AD0C693395BC4B313370B38EF355ACDADCD122975B,
                    0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
                ),
            ),
        ),
        pytest.param(
            PointG1(Spec.P + 0x10000000000, 0x0)
            + Spec.INF_G2
            + Spec.INF_G1
            + Spec.INF_G2,
        ),
    ],
    ids=lambda _: "invalid_g1_point_",
)
def test_invalid_g1_point(
    state_test: StateTestFiller,
    pre: Alloc,
    post: dict,
    tx: Transaction,
) -> None:
    """Test invalid g1 point inputs to the ecpairing precompile."""
    state_test(
        env=Environment(),
        pre=pre,
        tx=tx,
        post=post,
    )

Parametrized Test Cases

This test generates 13 parametrized test cases across 12 forks.