Преглед на файлове

crypto/bn256/cloudflare: checks for nil pointers in Marshal functions (#19609)

* Added checks for nil pointers in Marshal functions

* Set nil pointer to identity in GT before marshaling
Antoine Rondelet преди 6 години
родител
ревизия
9efc1a847e
променени са 1 файла, в които са добавени 9 реда и са изтрити 0 реда
  1. 9 0
      crypto/bn256/cloudflare/bn256.go

+ 9 - 0
crypto/bn256/cloudflare/bn256.go

@@ -100,6 +100,10 @@ func (e *G1) Marshal() []byte {
 	// Each value is a 256-bit number.
 	const numBytes = 256 / 8
 
+	if e.p == nil {
+		e.p = &curvePoint{}
+	}
+
 	e.p.MakeAffine()
 	ret := make([]byte, numBytes*2)
 	if e.p.IsInfinity() {
@@ -382,6 +386,11 @@ func (e *GT) Marshal() []byte {
 	// Each value is a 256-bit number.
 	const numBytes = 256 / 8
 
+	if e.p == nil {
+		e.p = &gfP12{}
+		e.p.SetOne()
+	}
+
 	ret := make([]byte, numBytes*12)
 	temp := &gfP{}