Skip to content

Commit c4e99a1

Browse files
committed
remove uneccessary error from random scalar generator
1 parent 084a110 commit c4e99a1

File tree

1 file changed

+20
-59
lines changed

1 file changed

+20
-59
lines changed

tests/fuzzers/bls12381/bls12381_fuzz.go

Lines changed: 20 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ import (
3636

3737
func fuzzG1SubgroupChecks(data []byte) int {
3838
input := bytes.NewReader(data)
39-
cpG1, blG1, err := getG1Points(input)
40-
if err != nil {
41-
return 0
42-
}
39+
cpG1, blG1 := getG1Points(input)
4340
inSubGroupGnark := cpG1.IsInSubGroup()
4441
inSubGroupBLST := blG1.InG1()
4542
if inSubGroupGnark != inSubGroupBLST {
@@ -50,10 +47,7 @@ func fuzzG1SubgroupChecks(data []byte) int {
5047

5148
func fuzzG2SubgroupChecks(data []byte) int {
5249
input := bytes.NewReader(data)
53-
gpG2, blG2, err := getG2Points(input)
54-
if err != nil {
55-
return 0
56-
}
50+
gpG2, blG2 := getG2Points(input)
5751
inSubGroupGnark := gpG2.IsInSubGroup()
5852
inSubGroupBLST := blG2.InG2()
5953
if inSubGroupGnark != inSubGroupBLST {
@@ -66,16 +60,10 @@ func fuzzCrossPairing(data []byte) int {
6660
input := bytes.NewReader(data)
6761

6862
// get random G1 points
69-
cpG1, blG1, err := getG1Points(input)
70-
if err != nil {
71-
return 0
72-
}
63+
cpG1, blG1 := getG1Points(input)
7364

7465
// get random G2 points
75-
cpG2, blG2, err := getG2Points(input)
76-
if err != nil {
77-
return 0
78-
}
66+
cpG2, blG2 := getG2Points(input)
7967

8068
// compute pairing using gnark
8169
cResult, err := bls12381.Pair([]bls12381.G1Affine{*cpG1}, []bls12381.G2Affine{*cpG2})
@@ -122,16 +110,10 @@ func fuzzCrossG1Add(data []byte) int {
122110
input := bytes.NewReader(data)
123111

124112
// get random G1 points
125-
cp1, bl1, err := getG1Points(input)
126-
if err != nil {
127-
return 0
128-
}
113+
cp1, bl1 := getG1Points(input)
129114

130115
// get random G1 points
131-
cp2, bl2, err := getG1Points(input)
132-
if err != nil {
133-
return 0
134-
}
116+
cp2, bl2 := getG1Points(input)
135117

136118
// compute cp = cp1 + cp2
137119
_cp1 := new(bls12381.G1Jac).FromAffine(cp1)
@@ -150,16 +132,10 @@ func fuzzCrossG2Add(data []byte) int {
150132
input := bytes.NewReader(data)
151133

152134
// get random G2 points
153-
gp1, bl1, err := getG2Points(input)
154-
if err != nil {
155-
return 0
156-
}
135+
gp1, bl1 := getG2Points(input)
157136

158137
// get random G2 points
159-
gp2, bl2, err := getG2Points(input)
160-
if err != nil {
161-
return 0
162-
}
138+
gp2, bl2 := getG2Points(input)
163139

164140
// compute cp = cp1 + cp2
165141
_gp1 := new(bls12381.G2Jac).FromAffine(gp1)
@@ -183,15 +159,10 @@ func fuzzCrossG1MultiExp(data []byte) int {
183159
// n random scalars (max 17)
184160
for i := 0; i < 17; i++ {
185161
// 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())
190163
// get a random G1 point as basis
191-
cp1, _, err := getG1Points(input)
192-
if err != nil {
193-
break
194-
}
164+
cp1, _ := getG1Points(input)
165+
195166
var gnarkScalar = &fr.Element{}
196167
gnarkScalar = gnarkScalar.SetBigInt(s)
197168
gnarkScalars = append(gnarkScalars, *gnarkScalar)
@@ -210,12 +181,9 @@ func fuzzCrossG1MultiExp(data []byte) int {
210181
return 1
211182
}
212183

213-
func getG1Points(input io.Reader) (*bls12381.G1Affine, *blst.P1Affine, error) {
184+
func getG1Points(input io.Reader) (*bls12381.G1Affine, *blst.P1Affine) {
214185
// 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())
219187

220188
// compute a random point
221189
cp := new(bls12381.G1Affine)
@@ -230,15 +198,12 @@ func getG1Points(input io.Reader) (*bls12381.G1Affine, *blst.P1Affine, error) {
230198
panic("bytes(blst.G1) != bytes(geth.G1)")
231199
}
232200

233-
return cp, p1, nil
201+
return cp, p1
234202
}
235203

236-
func getG2Points(input io.Reader) (*bls12381.G2Affine, *blst.P2Affine, error) {
204+
func getG2Points(input io.Reader) (*bls12381.G2Affine, *blst.P2Affine) {
237205
// 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())
242207

243208
// compute a random point
244209
gp := new(bls12381.G2Affine)
@@ -254,16 +219,12 @@ func getG2Points(input io.Reader) (*bls12381.G2Affine, *blst.P2Affine, error) {
254219
panic("bytes(blst.G2) != bytes(bls12381.G2)")
255220
}
256221

257-
return gp, p2, nil
222+
return gp, p2
258223
}
259224

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
267228
}
268229

269230
// multiExpG1 is a naive implementation of G1 multi-exponentiation

0 commit comments

Comments
 (0)