diff --git a/node_modules/elliptic/lib/elliptic/eddsa/index.js b/node_modules/elliptic/lib/elliptic/eddsa/index.js index d777983..44092c2 100644 --- a/node_modules/elliptic/lib/elliptic/eddsa/index.js +++ b/node_modules/elliptic/lib/elliptic/eddsa/index.js @@ -53,6 +53,12 @@ EDDSA.prototype.verify = function verify(message, sig, pub) { message = parseBytes(message); sig = this.makeSignature(sig); var key = this.keyFromPublic(pub); + + // Reject signatures with S >= curve order or S < 0 + if (sig.S().gte(this.curve.n) || sig.S().isNeg()) { + return false; + } + var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message); var SG = this.g.mul(sig.S()); var RplusAh = sig.R().add(key.pub().mul(h));