@@ -36,10 +36,7 @@ import (
36
36
37
37
func fuzzG1SubgroupChecks (data []byte ) int {
38
38
input := bytes .NewReader (data )
39
- cpG1 , blG1 , err := getG1Points (input )
40
- if err != nil {
41
- return 0
42
- }
39
+ cpG1 , blG1 := getG1Points (input )
43
40
inSubGroupGnark := cpG1 .IsInSubGroup ()
44
41
inSubGroupBLST := blG1 .InG1 ()
45
42
if inSubGroupGnark != inSubGroupBLST {
@@ -50,10 +47,7 @@ func fuzzG1SubgroupChecks(data []byte) int {
50
47
51
48
func fuzzG2SubgroupChecks (data []byte ) int {
52
49
input := bytes .NewReader (data )
53
- gpG2 , blG2 , err := getG2Points (input )
54
- if err != nil {
55
- return 0
56
- }
50
+ gpG2 , blG2 := getG2Points (input )
57
51
inSubGroupGnark := gpG2 .IsInSubGroup ()
58
52
inSubGroupBLST := blG2 .InG2 ()
59
53
if inSubGroupGnark != inSubGroupBLST {
@@ -66,16 +60,10 @@ func fuzzCrossPairing(data []byte) int {
66
60
input := bytes .NewReader (data )
67
61
68
62
// get random G1 points
69
- cpG1 , blG1 , err := getG1Points (input )
70
- if err != nil {
71
- return 0
72
- }
63
+ cpG1 , blG1 := getG1Points (input )
73
64
74
65
// get random G2 points
75
- cpG2 , blG2 , err := getG2Points (input )
76
- if err != nil {
77
- return 0
78
- }
66
+ cpG2 , blG2 := getG2Points (input )
79
67
80
68
// compute pairing using gnark
81
69
cResult , err := bls12381 .Pair ([]bls12381.G1Affine {* cpG1 }, []bls12381.G2Affine {* cpG2 })
@@ -122,16 +110,10 @@ func fuzzCrossG1Add(data []byte) int {
122
110
input := bytes .NewReader (data )
123
111
124
112
// get random G1 points
125
- cp1 , bl1 , err := getG1Points (input )
126
- if err != nil {
127
- return 0
128
- }
113
+ cp1 , bl1 := getG1Points (input )
129
114
130
115
// get random G1 points
131
- cp2 , bl2 , err := getG1Points (input )
132
- if err != nil {
133
- return 0
134
- }
116
+ cp2 , bl2 := getG1Points (input )
135
117
136
118
// compute cp = cp1 + cp2
137
119
_cp1 := new (bls12381.G1Jac ).FromAffine (cp1 )
@@ -150,16 +132,10 @@ func fuzzCrossG2Add(data []byte) int {
150
132
input := bytes .NewReader (data )
151
133
152
134
// get random G2 points
153
- gp1 , bl1 , err := getG2Points (input )
154
- if err != nil {
155
- return 0
156
- }
135
+ gp1 , bl1 := getG2Points (input )
157
136
158
137
// get random G2 points
159
- gp2 , bl2 , err := getG2Points (input )
160
- if err != nil {
161
- return 0
162
- }
138
+ gp2 , bl2 := getG2Points (input )
163
139
164
140
// compute cp = cp1 + cp2
165
141
_gp1 := new (bls12381.G2Jac ).FromAffine (gp1 )
@@ -183,15 +159,10 @@ func fuzzCrossG1MultiExp(data []byte) int {
183
159
// n random scalars (max 17)
184
160
for i := 0 ; i < 17 ; i ++ {
185
161
// note that geth/crypto/bls12381 works only with scalars <= 32bytes
186
- s , err := randomScalar (input , fr .Modulus ())
187
- if err != nil {
188
- break
189
- }
162
+ s := randomScalar (input , fr .Modulus ())
190
163
// get a random G1 point as basis
191
- cp1 , _ , err := getG1Points (input )
192
- if err != nil {
193
- break
194
- }
164
+ cp1 , _ := getG1Points (input )
165
+
195
166
var gnarkScalar = & fr.Element {}
196
167
gnarkScalar = gnarkScalar .SetBigInt (s )
197
168
gnarkScalars = append (gnarkScalars , * gnarkScalar )
@@ -210,12 +181,9 @@ func fuzzCrossG1MultiExp(data []byte) int {
210
181
return 1
211
182
}
212
183
213
- func getG1Points (input io.Reader ) (* bls12381.G1Affine , * blst.P1Affine , error ) {
184
+ func getG1Points (input io.Reader ) (* bls12381.G1Affine , * blst.P1Affine ) {
214
185
// sample a random scalar
215
- s , err := randomScalar (input , fp .Modulus ())
216
- if err != nil {
217
- return nil , nil , err
218
- }
186
+ s := randomScalar (input , fp .Modulus ())
219
187
220
188
// compute a random point
221
189
cp := new (bls12381.G1Affine )
@@ -230,15 +198,12 @@ func getG1Points(input io.Reader) (*bls12381.G1Affine, *blst.P1Affine, error) {
230
198
panic ("bytes(blst.G1) != bytes(geth.G1)" )
231
199
}
232
200
233
- return cp , p1 , nil
201
+ return cp , p1
234
202
}
235
203
236
- func getG2Points (input io.Reader ) (* bls12381.G2Affine , * blst.P2Affine , error ) {
204
+ func getG2Points (input io.Reader ) (* bls12381.G2Affine , * blst.P2Affine ) {
237
205
// sample a random scalar
238
- s , err := randomScalar (input , fp .Modulus ())
239
- if err != nil {
240
- return nil , nil , err
241
- }
206
+ s := randomScalar (input , fp .Modulus ())
242
207
243
208
// compute a random point
244
209
gp := new (bls12381.G2Affine )
@@ -254,16 +219,12 @@ func getG2Points(input io.Reader) (*bls12381.G2Affine, *blst.P2Affine, error) {
254
219
panic ("bytes(blst.G2) != bytes(bls12381.G2)" )
255
220
}
256
221
257
- return gp , p2 , nil
222
+ return gp , p2
258
223
}
259
224
260
- func randomScalar (r io.Reader , max * big.Int ) (k * big.Int , err error ) {
261
- for {
262
- k , err = rand .Int (r , max )
263
- if err != nil || k .Sign () > 0 {
264
- return
265
- }
266
- }
225
+ func randomScalar (r io.Reader , max * big.Int ) * big.Int {
226
+ k , _ := rand .Int (r , max )
227
+ return k
267
228
}
268
229
269
230
// multiExpG1 is a naive implementation of G1 multi-exponentiation
0 commit comments