aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorGustav Simonsson <gustav.simonsson@gmail.com>2015-04-07 23:40:51 +0800
committerGustav Simonsson <gustav.simonsson@gmail.com>2015-04-08 05:50:04 +0800
commitaa4ff52d84b525f682dd00d231e57284f4735b5a (patch)
tree2cdd30c902903c178163e12bcebd662477f3187d /crypto
parent09147a50ede8c85022d115e23bb2ce067a50c8de (diff)
downloaddexon-aa4ff52d84b525f682dd00d231e57284f4735b5a.tar.gz
dexon-aa4ff52d84b525f682dd00d231e57284f4735b5a.tar.zst
dexon-aa4ff52d84b525f682dd00d231e57284f4735b5a.zip
Add IsOnCurve check to EC unmarshalling in ECIES decryption
Diffstat (limited to 'crypto')
-rw-r--r--crypto/ecies/ecies.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/crypto/ecies/ecies.go b/crypto/ecies/ecies.go
index 18952fc0b..812545631 100644
--- a/crypto/ecies/ecies.go
+++ b/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 {