Apply felix diff

Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
Kevaundray Wedderburn 2025-06-17 15:49:56 +02:00
parent 5fc7fcdbf8
commit d2bcbab38d
2 changed files with 10 additions and 22 deletions

View file

@ -51,12 +51,10 @@ func (g *G1) Unmarshal(buf []byte) (int, error) {
return 64, nil
}
err := g.inner.X.SetBytesCanonical(buf[:32])
if err != nil {
if err := g.inner.X.SetBytesCanonical(buf[:32]); err != nil {
return 0, err
}
err = g.inner.Y.SetBytesCanonical(buf[32:64])
if err != nil {
if err := g.inner.Y.SetBytesCanonical(buf[32:64]); err != nil {
return 0, err
}
@ -66,7 +64,6 @@ func (g *G1) Unmarshal(buf []byte) (int, error) {
if !g.inner.IsInSubGroup() {
return 0, errors.New("point is not in correct subgroup")
}
return 64, nil
}
@ -88,12 +85,10 @@ func (p *G1) Marshal() []byte {
}
func allZeroes(buf []byte) bool {
isZero := true
for i := 0; i < len(buf); i++ {
for i := range buf {
if buf[i] != 0 {
isZero = false
break
return false
}
}
return isZero
return true
}

View file

@ -31,41 +31,34 @@ func (g *G2) Unmarshal(buf []byte) (int, error) {
return 0, errors.New("invalid G2 point size")
}
// Check if all coordinates are zero (point at infinity)
isZero := allZeroes(buf[0:128])
if isZero {
// point at infinity
g.inner.X.A0.SetZero()
g.inner.X.A1.SetZero()
g.inner.Y.A0.SetZero()
g.inner.Y.A1.SetZero()
return 128, nil
}
err := g.inner.X.A0.SetBytesCanonical(buf[0:32])
if err != nil {
if err := g.inner.X.A0.SetBytesCanonical(buf[0:32]); err != nil {
return 0, err
}
err = g.inner.X.A1.SetBytesCanonical(buf[32:64])
if err != nil {
if err := g.inner.X.A1.SetBytesCanonical(buf[32:64]); err != nil {
return 0, err
}
err = g.inner.Y.A0.SetBytesCanonical(buf[64:96])
if err != nil {
if err := g.inner.Y.A0.SetBytesCanonical(buf[64:96]); err != nil {
return 0, err
}
err = g.inner.Y.A1.SetBytesCanonical(buf[96:128])
if err != nil {
if err := g.inner.Y.A1.SetBytesCanonical(buf[96:128]); err != nil {
return 0, err
}
if !g.inner.IsOnCurve() {
return 0, errors.New("point is not on curve")
}
if !g.inner.IsInSubGroup() {
return 0, errors.New("point is not in correct subgroup")
}
return 128, nil
}