Skip to content

Commit a318fba

Browse files
authored
Merge pull request #547 from dedis/correct-doc
Correct linter explaination
2 parents d0f3223 + 60fd02b commit a318fba

File tree

7 files changed

+44
-44
lines changed

7 files changed

+44
-44
lines changed

group/edwards25519/curve.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func (c *Curve) NewKeyAndSeedWithInput(buffer []byte) (kyber.Scalar, []byte, []b
5454
digest[31] &= 0x7f
5555
digest[31] |= 0x40
5656

57-
secret := c.Scalar().(*scalar) //nolint:errcheck // V4 may bring better error handling
57+
secret := c.Scalar().(*scalar) //nolint:errcheck // Design pattern to emulate generics
5858
copy(secret.v[:], digest[:])
5959
return secret, buffer, digest[32:]
6060
}

group/edwards25519/point.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ func (P *point) Data() ([]byte, error) {
185185
}
186186

187187
func (P *point) Add(P1, P2 kyber.Point) kyber.Point {
188-
E1 := P1.(*point) //nolint:errcheck // V4 may bring better error handling
189-
E2 := P2.(*point) //nolint:errcheck // V4 may bring better error handling
188+
E1 := P1.(*point) //nolint:errcheck // Design pattern to emulate generics
189+
E2 := P2.(*point) //nolint:errcheck // Design pattern to emulate generics
190190

191191
var t2 cachedGroupElement
192192
var r completedGroupElement
@@ -199,8 +199,8 @@ func (P *point) Add(P1, P2 kyber.Point) kyber.Point {
199199
}
200200

201201
func (P *point) Sub(P1, P2 kyber.Point) kyber.Point {
202-
E1 := P1.(*point) //nolint:errcheck // V4 may bring better error handling
203-
E2 := P2.(*point) //nolint:errcheck // V4 may bring better error handling
202+
E1 := P1.(*point) //nolint:errcheck // Design pattern to emulate generics
203+
E2 := P2.(*point) //nolint:errcheck // Design pattern to emulate generics
204204

205205
var t2 cachedGroupElement
206206
var r completedGroupElement

group/edwards25519/scalar.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func (s *scalar) Div(a, b kyber.Scalar) kyber.Scalar {
113113
func (s *scalar) Inv(a kyber.Scalar) kyber.Scalar {
114114
var res scalar
115115
res.One()
116-
ac := a.(*scalar) //nolint:errcheck // V4 may bring better error handling
116+
ac := a.(*scalar) //nolint:errcheck // Design pattern to emulate generics
117117
// Modular inversion in a multiplicative group is a^(phi(m)-1) = a^-1 mod m
118118
// Since m is prime, phi(m) = m - 1 => a^(m-2) = a^-1 mod m.
119119
// The inverse is computed using the exponentation-and-square algorithm.

group/edwards25519vartime/ext.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ type extPoint struct {
1717
}
1818

1919
func (P *extPoint) initXY(x, y *big.Int, c kyber.Group) {
20-
P.c = c.(*ExtendedCurve) //nolint:errcheck // V4 may bring better error handling
20+
P.c = c.(*ExtendedCurve) //nolint:errcheck // Design pattern to emulate generics
2121

2222
P.X.Init(x, &P.c.P)
2323
P.Y.Init(y, &P.c.P)
@@ -69,15 +69,15 @@ func (P *extPoint) UnmarshalFrom(r io.Reader) (int, error) {
6969
// iff
7070
// (X1*Z2,Y1*Z2) == (X2*Z1,Y2*Z1)
7171
func (P *extPoint) Equal(CP2 kyber.Point) bool {
72-
p2 := CP2.(*extPoint) //nolint:errcheck // V4 may bring better error handling
72+
p2 := CP2.(*extPoint) //nolint:errcheck // Design pattern to emulate generics
7373
var t1, t2 mod.Int
7474
xeq := t1.Mul(&P.X, &p2.Z).Equal(t2.Mul(&p2.X, &P.Z))
7575
yeq := t1.Mul(&P.Y, &p2.Z).Equal(t2.Mul(&p2.Y, &P.Z))
7676
return xeq && yeq
7777
}
7878

7979
func (P *extPoint) Set(CP2 kyber.Point) kyber.Point {
80-
p2 := CP2.(*extPoint) //nolint:errcheck // V4 may bring better error handling
80+
p2 := CP2.(*extPoint) //nolint:errcheck // Design pattern to emulate generics
8181
P.c = p2.c
8282
P.X.Set(&p2.X)
8383
P.Y.Set(&p2.Y)
@@ -149,8 +149,8 @@ func (P *extPoint) Data() ([]byte, error) {
149149
//
150150
//nolint:dupl //Doesn't make sense to extract part of Add(), Sub(), double()
151151
func (P *extPoint) Add(CP1, CP2 kyber.Point) kyber.Point {
152-
p1 := CP1.(*extPoint) //nolint:errcheck // V4 may bring better error handling
153-
p2 := CP2.(*extPoint) //nolint:errcheck // V4 may bring better error handling
152+
p1 := CP1.(*extPoint) //nolint:errcheck // Design pattern to emulate generics
153+
p2 := CP2.(*extPoint) //nolint:errcheck // Design pattern to emulate generics
154154
X1, Y1, Z1, T1 := &p1.X, &p1.Y, &p1.Z, &p1.T
155155
X2, Y2, Z2, T2 := &p2.X, &p2.Y, &p2.Z, &p2.T
156156
X3, Y3, Z3, T3 := &P.X, &P.Y, &P.Z, &P.T
@@ -175,8 +175,8 @@ func (P *extPoint) Add(CP1, CP2 kyber.Point) kyber.Point {
175175
//
176176
//nolint:dupl //Doesn't make sense to extract part of Add(), Sub(), double()
177177
func (P *extPoint) Sub(CP1, CP2 kyber.Point) kyber.Point {
178-
p1 := CP1.(*extPoint) //nolint:errcheck // V4 may bring better error handling
179-
p2 := CP2.(*extPoint) //nolint:errcheck // V4 may bring better error handling
178+
p1 := CP1.(*extPoint) //nolint:errcheck // Design pattern to emulate generics
179+
p2 := CP2.(*extPoint) //nolint:errcheck // Design pattern to emulate generics
180180
X1, Y1, Z1, T1 := &p1.X, &p1.Y, &p1.Z, &p1.T
181181
X2, Y2, Z2, T2 := &p2.X, &p2.Y, &p2.Z, &p2.T
182182
X3, Y3, Z3, T3 := &P.X, &P.Y, &P.Z, &P.T
@@ -200,7 +200,7 @@ func (P *extPoint) Sub(CP1, CP2 kyber.Point) kyber.Point {
200200
// Find the negative of point A.
201201
// For Edwards curves, the negative of (x,y) is (-x,y).
202202
func (P *extPoint) Neg(CA kyber.Point) kyber.Point {
203-
A := CA.(*extPoint) //nolint:errcheck // V4 may bring better error handling
203+
A := CA.(*extPoint) //nolint:errcheck // Design pattern to emulate generics
204204
P.c = A.c
205205
P.X.Neg(&A.X)
206206
P.Y.Set(&A.Y)

group/edwards25519vartime/proj.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type projPoint struct {
1616
}
1717

1818
func (P *projPoint) initXY(x, y *big.Int, c kyber.Group) {
19-
P.c = c.(*ProjectiveCurve) //nolint:errcheck // V4 may bring better error handling
19+
P.c = c.(*ProjectiveCurve) //nolint:errcheck // Design pattern to emulate generics
2020
P.X.Init(x, &P.c.P)
2121
P.Y.Init(y, &P.c.P)
2222
P.Z.Init64(1, &P.c.P)
@@ -61,15 +61,15 @@ func (P *projPoint) UnmarshalFrom(r io.Reader) (int, error) {
6161
// iff
6262
// (X1*Z2,Y1*Z2) == (X2*Z1,Y2*Z1)
6363
func (P *projPoint) Equal(CP2 kyber.Point) bool {
64-
P2 := CP2.(*projPoint) //nolint:errcheck // V4 may bring better error handling
64+
P2 := CP2.(*projPoint) //nolint:errcheck // Design pattern to emulate generics
6565
var t1, t2 mod.Int
6666
xeq := t1.Mul(&P.X, &P2.Z).Equal(t2.Mul(&P2.X, &P.Z))
6767
yeq := t1.Mul(&P.Y, &P2.Z).Equal(t2.Mul(&P2.Y, &P.Z))
6868
return xeq && yeq
6969
}
7070

7171
func (P *projPoint) Set(CP2 kyber.Point) kyber.Point {
72-
P2 := CP2.(*projPoint) //nolint:errcheck // V4 may bring better error handling
72+
P2 := CP2.(*projPoint) //nolint:errcheck // Design pattern to emulate generics
7373
P.c = P2.c
7474
P.X.Set(&P2.X)
7575
P.Y.Set(&P2.Y)
@@ -131,8 +131,8 @@ func (P *projPoint) Data() ([]byte, error) {
131131
//
132132
//nolint:dupl //Doesn't make sense to extract part of Add(), Sub()
133133
func (P *projPoint) Add(CP1, CP2 kyber.Point) kyber.Point {
134-
P1 := CP1.(*projPoint) //nolint:errcheck // V4 may bring better error handling
135-
P2 := CP2.(*projPoint) //nolint:errcheck // V4 may bring better error handling
134+
P1 := CP1.(*projPoint) //nolint:errcheck // Design pattern to emulate generics
135+
P2 := CP2.(*projPoint) //nolint:errcheck // Design pattern to emulate generics
136136
X1, Y1, Z1 := &P1.X, &P1.Y, &P1.Z
137137
X2, Y2, Z2 := &P2.X, &P2.Y, &P2.Z
138138
var A, B, C, D, E, F, G, X3, Y3, Z3 mod.Int
@@ -160,8 +160,8 @@ func (P *projPoint) Add(CP1, CP2 kyber.Point) kyber.Point {
160160
//
161161
//nolint:dupl //Doesn't make sense to extract part of Add(), Sub(), double()
162162
func (P *projPoint) Sub(CP1, CP2 kyber.Point) kyber.Point {
163-
P1 := CP1.(*projPoint) //nolint:errcheck // V4 may bring better error handling
164-
P2 := CP2.(*projPoint) //nolint:errcheck // V4 may bring better error handling
163+
P1 := CP1.(*projPoint) //nolint:errcheck // Design pattern to emulate generics
164+
P2 := CP2.(*projPoint) //nolint:errcheck // Design pattern to emulate generics
165165
X1, Y1, Z1 := &P1.X, &P1.Y, &P1.Z
166166
X2, Y2, Z2 := &P2.X, &P2.Y, &P2.Z
167167
var A, B, C, D, E, F, G, X3, Y3, Z3 mod.Int
@@ -188,7 +188,7 @@ func (P *projPoint) Sub(CP1, CP2 kyber.Point) kyber.Point {
188188
// Find the negative of point A.
189189
// For Edwards curves, the negative of (x,y) is (-x,y).
190190
func (P *projPoint) Neg(CA kyber.Point) kyber.Point {
191-
A := CA.(*projPoint) //nolint:errcheck // V4 may bring better error handling
191+
A := CA.(*projPoint) //nolint:errcheck // Design pattern to emulate generics
192192
P.c = A.c
193193
P.X.Neg(&A.X)
194194
P.Y.Set(&A.Y)

group/mod/int.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ func (i *Int) Nonzero() bool {
141141
// Since this method copies the modulus as well,
142142
// it may be used as an alternative to Init().
143143
func (i *Int) Set(a kyber.Scalar) kyber.Scalar {
144-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
144+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
145145
i.V.Set(&ai.V)
146146
i.M = ai.M
147147
return i
@@ -194,8 +194,8 @@ func (i *Int) Uint64() uint64 {
194194

195195
// Add sets the target to a + b mod M, where M is a's modulus..
196196
func (i *Int) Add(a, b kyber.Scalar) kyber.Scalar {
197-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
198-
bi := b.(*Int) //nolint:errcheck // V4 may bring better error handling
197+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
198+
bi := b.(*Int) //nolint:errcheck // Design pattern to emulate generics
199199
i.M = ai.M
200200
i.V.Add(&ai.V, &bi.V).Mod(&i.V, i.M)
201201
return i
@@ -204,16 +204,16 @@ func (i *Int) Add(a, b kyber.Scalar) kyber.Scalar {
204204
// Sub sets the target to a - b mod M.
205205
// Target receives a's modulus.
206206
func (i *Int) Sub(a, b kyber.Scalar) kyber.Scalar {
207-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
208-
bi := b.(*Int) //nolint:errcheck // V4 may bring better error handling
207+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
208+
bi := b.(*Int) //nolint:errcheck // Design pattern to emulate generics
209209
i.M = ai.M
210210
i.V.Sub(&ai.V, &bi.V).Mod(&i.V, i.M)
211211
return i
212212
}
213213

214214
// Neg sets the target to -a mod M.
215215
func (i *Int) Neg(a kyber.Scalar) kyber.Scalar {
216-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
216+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
217217
i.M = ai.M
218218
if ai.V.Sign() > 0 {
219219
i.V.Sub(i.M, &ai.V)
@@ -226,17 +226,17 @@ func (i *Int) Neg(a kyber.Scalar) kyber.Scalar {
226226
// Mul sets the target to a * b mod M.
227227
// Target receives a's modulus.
228228
func (i *Int) Mul(a, b kyber.Scalar) kyber.Scalar {
229-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
230-
bi := b.(*Int) //nolint:errcheck // V4 may bring better error handling
229+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
230+
bi := b.(*Int) //nolint:errcheck // Design pattern to emulate generics
231231
i.M = ai.M
232232
i.V.Mul(&ai.V, &bi.V).Mod(&i.V, i.M)
233233
return i
234234
}
235235

236236
// Div sets the target to a * b^-1 mod M, where b^-1 is the modular inverse of b.
237237
func (i *Int) Div(a, b kyber.Scalar) kyber.Scalar {
238-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
239-
bi := b.(*Int) //nolint:errcheck // V4 may bring better error handling
238+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
239+
bi := b.(*Int) //nolint:errcheck // Design pattern to emulate generics
240240
var t big.Int
241241
i.M = ai.M
242242
i.V.Mul(&ai.V, t.ModInverse(&bi.V, i.M))
@@ -246,7 +246,7 @@ func (i *Int) Div(a, b kyber.Scalar) kyber.Scalar {
246246

247247
// Inv sets the target to the modular inverse of a with respect to modulus M.
248248
func (i *Int) Inv(a kyber.Scalar) kyber.Scalar {
249-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
249+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
250250
i.M = ai.M
251251
i.V.ModInverse(&a.(*Int).V, i.M)
252252
return i
@@ -255,7 +255,7 @@ func (i *Int) Inv(a kyber.Scalar) kyber.Scalar {
255255
// Exp sets the target to a^e mod M,
256256
// where e is an arbitrary big.Int exponent (not necessarily 0 <= e < M).
257257
func (i *Int) Exp(a kyber.Scalar, e *big.Int) kyber.Scalar {
258-
ai := a.(*Int) //nolint:errcheck // V4 may bring better error handling
258+
ai := a.(*Int) //nolint:errcheck // Design pattern to emulate generics
259259
i.M = ai.M
260260
// to protect against golang/go#22830
261261
var tmp big.Int
@@ -267,7 +267,7 @@ func (i *Int) Exp(a kyber.Scalar, e *big.Int) kyber.Scalar {
267267
// Jacobi computes the Jacobi symbol of (a/M), which indicates whether a is
268268
// zero (0), a positive square in M (1), or a non-square in M (-1).
269269
func (i *Int) Jacobi(as kyber.Scalar) kyber.Scalar {
270-
ai := as.(*Int) //nolint:errcheck // V4 may bring better error handling
270+
ai := as.(*Int) //nolint:errcheck // Design pattern to emulate generics
271271
i.M = ai.M
272272
i.V.SetInt64(int64(big.Jacobi(&ai.V, i.M)))
273273
return i
@@ -277,7 +277,7 @@ func (i *Int) Jacobi(as kyber.Scalar) kyber.Scalar {
277277
// Assumes the modulus M is an odd prime.
278278
// Returns true on success, false if input a is not a square.
279279
func (i *Int) Sqrt(as kyber.Scalar) bool {
280-
ai := as.(*Int) //nolint:errcheck // V4 may bring better error handling
280+
ai := as.(*Int) //nolint:errcheck // Design pattern to emulate generics
281281
out := i.V.ModSqrt(&ai.V, ai.M)
282282
i.M = ai.M
283283
return out != nil

group/p256/curve.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func (P *curvePoint) String() string {
2323
}
2424

2525
func (P *curvePoint) Equal(P2 kyber.Point) bool {
26-
cp2 := P2.(*curvePoint) //nolint:errcheck // V4 may bring better error handling
26+
cp2 := P2.(*curvePoint) //nolint:errcheck // Design pattern to emulate generics
2727

2828
// Make sure both coordinates are normalized.
2929
// Apparently Go's elliptic curve code doesn't always ensure this.
@@ -134,17 +134,17 @@ func (P *curvePoint) Data() ([]byte, error) {
134134
}
135135

136136
func (P *curvePoint) Add(A, B kyber.Point) kyber.Point {
137-
ca := A.(*curvePoint) //nolint:errcheck // V4 may bring better error handling
138-
cb := B.(*curvePoint) //nolint:errcheck // V4 may bring better error handling
137+
ca := A.(*curvePoint) //nolint:errcheck // Design pattern to emulate generics
138+
cb := B.(*curvePoint) //nolint:errcheck // Design pattern to emulate generics
139139
P.x, P.y = P.c.Add(ca.x, ca.y, cb.x, cb.y)
140140
return P
141141
}
142142

143143
func (P *curvePoint) Sub(A, B kyber.Point) kyber.Point {
144-
ca := A.(*curvePoint) //nolint:errcheck // V4 may bring better error handling
145-
cb := B.(*curvePoint) //nolint:errcheck // V4 may bring better error handling
144+
ca := A.(*curvePoint) //nolint:errcheck // Design pattern to emulate generics
145+
cb := B.(*curvePoint) //nolint:errcheck // Design pattern to emulate generics
146146

147-
cbn := P.c.Point().Neg(cb).(*curvePoint) //nolint:errcheck // V4 may bring better error handling
147+
cbn := P.c.Point().Neg(cb).(*curvePoint) //nolint:errcheck // Design pattern to emulate generics
148148
P.x, P.y = P.c.Add(ca.x, ca.y, cbn.x, cbn.y)
149149
return P
150150
}
@@ -156,9 +156,9 @@ func (P *curvePoint) Neg(A kyber.Point) kyber.Point {
156156
}
157157

158158
func (P *curvePoint) Mul(s kyber.Scalar, B kyber.Point) kyber.Point {
159-
cs := s.(*mod.Int) //nolint:errcheck // V4 may bring better error handling
159+
cs := s.(*mod.Int) //nolint:errcheck // Design pattern to emulate generics
160160
if B != nil {
161-
cb := B.(*curvePoint) //nolint:errcheck // V4 may bring better error handling
161+
cb := B.(*curvePoint) //nolint:errcheck // Design pattern to emulate generics
162162
P.x, P.y = P.c.ScalarMult(cb.x, cb.y, cs.V.Bytes())
163163
} else {
164164
P.x, P.y = P.c.ScalarBaseMult(cs.V.Bytes())

0 commit comments

Comments
 (0)