File tree 1 file changed +7
-0
lines changed
internal/generator/edwards/eddsa/template
1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -118,20 +118,27 @@ func (sig *Signature) SetBytes(buf []byte) (int, error) {
118
118
// R < P_mod (to avoid malleability)
119
119
// P_mod = field of def of the twisted Edwards = Fr snark field
120
120
fpMod := fr.Modulus()
121
+ zero := big.NewInt(0)
121
122
var bufBigInt big.Int
122
123
bufCopy := make([]byte, fr.Bytes)
123
124
for i := 0; i < sizeFr; i++ {
124
125
bufCopy[sizeFr-1-i] = buf[i]
125
126
}
126
127
bufCopy[0] &= mUnmask
127
128
bufBigInt.SetBytes(bufCopy)
129
+ if bufBigInt.Cmp(zero) == 0 {
130
+ return 0, ErrZero
131
+ }
128
132
if bufBigInt.Cmp(fpMod) != -1 {
129
133
return 0, ErrRBiggerThanPMod
130
134
}
131
135
132
136
// S < R_mod (to avoid malleability)
133
137
// R_mod is the relevant group size of the twisted Edwards NOT the fr snark field so it's supposedly smaller
134
138
bufBigInt.SetBytes(buf[sizeFr : 2*sizeFr])
139
+ if bufBigInt.Cmp(zero) == 0 {
140
+ return 0, ErrZero
141
+ }
135
142
cp := twistededwards.GetEdwardsCurve()
136
143
if bufBigInt.Cmp(&cp.Order) != -1 {
137
144
return 0, ErrSBiggerThanRMod
You can’t perform that action at this time.
0 commit comments