浏览代码

Add IsOnCurve check to EC unmarshalling in ECIES decryption

Gustav Simonsson 10 年之前
父节点
当前提交
aa4ff52d84
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      crypto/ecies/ecies.go

+ 4 - 0
crypto/ecies/ecies.go

@@ -303,6 +303,10 @@ func (prv *PrivateKey) Decrypt(rand io.Reader, c, s1, s2 []byte) (m []byte, err
 		err = ErrInvalidPublicKey
 		return
 	}
+	if !R.Curve.IsOnCurve(R.X, R.Y) {
+		err = ErrInvalidCurve
+		return
+	}
 
 	z, err := prv.GenerateShared(R, params.KeyLen, params.KeyLen)
 	if err != nil {