Socket
Socket
Sign inDemoInstall

elliptic

Package Overview
Dependencies
Maintainers
1
Versions
84
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

elliptic - npm Package Compare versions

Comparing version 0.9.2 to 0.10.0

27

lib/elliptic/curve.js

@@ -56,3 +56,3 @@ var assert = require('assert');

var rhs = x.montSqr().montMul(x).montAdd(ax).montAdd(this.b);
return y.montSqr().montSub(rhs).cmp(0) === 0;
return y.montSqr().montSub(rhs).cmpn(0) === 0;
};

@@ -226,3 +226,3 @@

var ys1 = this.y.montShl(1);
if (ys1.cmp(0) === 0)
if (ys1.cmpn(0) === 0)
return this.curve.point(null, null);

@@ -234,3 +234,3 @@

var dyinv = ys1.montInvm();
var c = x2.montMul(3).montIAdd(a).montMul(dyinv);
var c = x2.montShl(1).montIAdd(x2).montIAdd(a).montMul(dyinv);

@@ -255,6 +255,6 @@ var nx = c.montSqr().montISub(this.x.montShl(1));

var k = num.clone();
while (k.cmp(1) >= 0) {
while (k.cmpn(1) >= 0) {
var z;
if (k.isOdd()) {
var mod = k.andl(ws - 1);
var mod = k.andln(ws - 1);
if (mod > (ws >> 1) - 1)

@@ -271,3 +271,3 @@ z = (ws >> 1) - mod;

// Optimization, shift by word if possible
var shift = (k.cmp(0) !== 0 && k.andl(ws - 1) === 0) ? w : 1;
var shift = (k.cmpn(0) !== 0 && k.andln(ws - 1) === 0) ? w : 1;
for (var i = 1; i < shift; i++)

@@ -281,5 +281,4 @@ naf.push(0);

Point.prototype.mul = function mul(k, kbase) {
if (!(k instanceof bn))
k = new bn(k, kbase);
Point.prototype.mul = function mul(k) {
k = new bn(k, 16);

@@ -414,3 +413,3 @@ if (this.precomputed && this.precomputed.length)

var jy2 = jy.montSqr();
var c = jx2.montMul(3).montIAdd(a.montMul(jz4));
var c = jx2.montShl(1).montIAdd(jx2).montIAdd(a.montMul(jz4));

@@ -432,3 +431,3 @@ var t1 = jx.montShl(2).montMul(jy2);

var jyd4 = jyd2.montSqr();
var c = jx2.montMul(3).montIAdd(a.montMul(jz4));
var c = jx2.montShl(1).montIAdd(jx2).montIAdd(a.montMul(jz4));

@@ -466,5 +465,5 @@ var t1 = jx.montMul(jyd2);

return this === p ||
this.x.mul(z2).isub(p.x.mul(pz2)).mod(m).cmp(0) === 0 ||
this.x.mul(z2).isub(p.x.mul(pz2)).mod(m).cmpn(0) === 0 ||
this.y.mul(z2.mul(this.z))
.isub(p.y.mul(pz2.mul(p.z))).mod(m).cmp(0) === 0;
.isub(p.y.mul(pz2.mul(p.z))).mod(m).cmpn(0) === 0;
};

@@ -481,3 +480,3 @@

JPoint.prototype.isInfinity = function isInfinity() {
return this.z.cmp(0) === 0;
return this.z.cmpn(0) === 0;
};

@@ -45,3 +45,3 @@ var assert = require('assert');

var bytes = this.n.byteLength();
var ns2 = this.n.sub(2);
var ns2 = this.n.sub(new bn(2));
do {

@@ -90,7 +90,7 @@ var priv = new bn(drbg.generate(bytes));

// Number of bytes to generate
var ns1 = this.n.sub(1);
var ns1 = this.n.sub(new bn(1));
do {
var k = new bn(drbg.generate(this.n.byteLength()));
k = this._truncateToN(k, true);
if (k.cmp(1) <= 0 || k.cmp(ns1) >= 0)
if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)
continue;

@@ -103,7 +103,7 @@

var r = kp.getX().mod(this.n);
if (r.cmp(0) === 0)
if (r.cmpn(0) === 0)
continue;
var s = k.invm(this.n).mul(msg.add(r.mul(key.getPrivate()))).mod(this.n);
if (s.cmp(0) === 0)
if (s.cmpn(0) === 0)
continue;

@@ -123,5 +123,5 @@

var s = signature.s;
if (r.cmp(1) < 0 || r.cmp(this.n) >= 0)
if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)
return false;
if (s.cmp(1) < 0 || s.cmp(this.n) >= 0)
if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)
return false;

@@ -128,0 +128,0 @@

@@ -55,3 +55,3 @@ var assert = require('assert');

return { result: false, reason: 'Public key is not a point' };
if (!pub.mul(this.n).isInfinity())
if (!pub.mul(this.ecdsa.n).isInfinity())
return { result: false, reason: 'Public key * N != O' };

@@ -58,0 +58,0 @@

{
"name": "elliptic",
"version": "0.9.2",
"version": "0.10.0",
"description": "EC cryptography",

@@ -30,5 +30,5 @@ "main": "lib/elliptic.js",

"dependencies": {
"bn.js": "^0.3.0",
"bn.js": "^0.4.0",
"hash.js": "^0.2.0"
}
}
var assert = require('assert');
var bn = require('bn.js');
var elliptic = require('../');

@@ -49,4 +50,4 @@

assert(p.toJ().dbl().toP().validate());
assert(p.mul('79be667e f9dcbbac 55a06295 ce870b07').validate());
assert(p.mul(new bn('79be667e f9dcbbac 55a06295 ce870b07', 16)).validate());
});
});

@@ -11,3 +11,5 @@ var assert = require('assert');

var ecdsa = new elliptic.ecdsa(curve);
var keys = ecdsa.genKeyPair();
var keys = ecdsa.genKeyPair({
entropy: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 ]
});
var msg = 'deadbeef';

@@ -20,2 +22,3 @@

assert(keys.getPrivate('hex').length > 0);
assert(keys.validate().result);

@@ -22,0 +25,0 @@ // Sign and verify

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc