diff --git a/sm9/bn256/curve.go b/sm9/bn256/curve.go index 122920f..61c4133 100644 --- a/sm9/bn256/curve.go +++ b/sm9/bn256/curve.go @@ -133,7 +133,7 @@ func (c *curvePoint) Add(a, b *curvePoint) { gfpSub(t, s2, s1) - if h.Equal(zero) == 1 && t.Equal(one) == 1 { + if h.Equal(zero) == 1 && t.Equal(zero) == 1 { c.Double(a) return } diff --git a/sm9/bn256/g1_test.go b/sm9/bn256/g1_test.go index acc8bb8..25f990f 100644 --- a/sm9/bn256/g1_test.go +++ b/sm9/bn256/g1_test.go @@ -24,6 +24,16 @@ func TestG1AddNeg(t *testing.T) { } } +func TestG1AddSame(t *testing.T) { + g1, g2 := &G1{}, &G1{} + g1.Add(Gen1, Gen1) + g2.Double(Gen1) + + if !g1.Equal(g2) { + t.Fail() + } +} + type g1BaseMultTest struct { k string }