cleanup some unused ec.js code
This commit is contained in:
parent
b6addfdfc8
commit
bc062fbdce
1 changed files with 0 additions and 80 deletions
80
src/ec.js
80
src/ec.js
|
@ -287,20 +287,6 @@ ECCurveFp.prototype.equals = curveFpEquals;
|
||||||
ECCurveFp.prototype.getInfinity = curveFpGetInfinity;
|
ECCurveFp.prototype.getInfinity = curveFpGetInfinity;
|
||||||
ECCurveFp.prototype.fromBigInteger = curveFpFromBigInteger;
|
ECCurveFp.prototype.fromBigInteger = curveFpFromBigInteger;
|
||||||
|
|
||||||
// prepends 0 if bytes < len
|
|
||||||
// cuts off start if bytes > len
|
|
||||||
function integerToBytes(i, len) {
|
|
||||||
var bytes = i.toByteArrayUnsigned();
|
|
||||||
|
|
||||||
if (len < bytes.length) {
|
|
||||||
bytes = bytes.slice(bytes.length-len);
|
|
||||||
} else while (len > bytes.length) {
|
|
||||||
bytes.unshift(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return bytes;
|
|
||||||
};
|
|
||||||
|
|
||||||
ECFieldElementFp.prototype.getByteLength = function () {
|
ECFieldElementFp.prototype.getByteLength = function () {
|
||||||
return Math.floor((this.toBigInteger().bitLength() + 7) / 8);
|
return Math.floor((this.toBigInteger().bitLength() + 7) / 8);
|
||||||
};
|
};
|
||||||
|
@ -370,72 +356,6 @@ ECPointFp.decodeFrom = function (curve, buffer) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ECPointFp.prototype.add2D = function (b) {
|
|
||||||
if(this.isInfinity()) return b;
|
|
||||||
if(b.isInfinity()) return this;
|
|
||||||
|
|
||||||
if (this.x.equals(b.x)) {
|
|
||||||
if (this.y.equals(b.y)) {
|
|
||||||
// this = b, i.e. this must be doubled
|
|
||||||
return this.twice();
|
|
||||||
}
|
|
||||||
// this = -b, i.e. the result is the point at infinity
|
|
||||||
return this.curve.getInfinity();
|
|
||||||
}
|
|
||||||
|
|
||||||
var x_x = b.x.subtract(this.x);
|
|
||||||
var y_y = b.y.subtract(this.y);
|
|
||||||
var gamma = y_y.divide(x_x);
|
|
||||||
|
|
||||||
var x3 = gamma.square().subtract(this.x).subtract(b.x);
|
|
||||||
var y3 = gamma.multiply(this.x.subtract(x3)).subtract(this.y);
|
|
||||||
|
|
||||||
return new ECPointFp(this.curve, x3, y3);
|
|
||||||
};
|
|
||||||
|
|
||||||
ECPointFp.prototype.twice2D = function () {
|
|
||||||
if (this.isInfinity()) return this;
|
|
||||||
if (this.y.toBigInteger().signum() === 0) {
|
|
||||||
// if y1 == 0, then (x1, y1) == (x1, -y1)
|
|
||||||
// and hence this = -this and thus 2(x1, y1) == infinity
|
|
||||||
return this.curve.getInfinity();
|
|
||||||
}
|
|
||||||
|
|
||||||
var FpTWO = this.curve.fromBigInteger(TWO);
|
|
||||||
var FpTHREE = this.curve.fromBigInteger(THREE)
|
|
||||||
var gamma = this.x.square().multiply(FpTHREE).add(this.curve.a).divide(this.y.multiply(FpTWO));
|
|
||||||
|
|
||||||
var x3 = gamma.square().subtract(this.x.multiply(FpTWO));
|
|
||||||
var y3 = gamma.multiply(this.x.subtract(x3)).subtract(this.y);
|
|
||||||
|
|
||||||
return new ECPointFp(this.curve, x3, y3);
|
|
||||||
};
|
|
||||||
|
|
||||||
ECPointFp.prototype.multiply2D = function (k) {
|
|
||||||
if(this.isInfinity()) return this;
|
|
||||||
if (k.signum() === 0) return this.curve.getInfinity()
|
|
||||||
|
|
||||||
var e = k;
|
|
||||||
var h = e.multiply(THREE)
|
|
||||||
|
|
||||||
var neg = this.negate();
|
|
||||||
var R = this;
|
|
||||||
|
|
||||||
var i;
|
|
||||||
for (i = h.bitLength() - 2; i > 0; --i) {
|
|
||||||
R = R.twice();
|
|
||||||
|
|
||||||
var hBit = h.testBit(i);
|
|
||||||
var eBit = e.testBit(i);
|
|
||||||
|
|
||||||
if (hBit != eBit) {
|
|
||||||
R = R.add2D(hBit ? this : neg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return R;
|
|
||||||
};
|
|
||||||
|
|
||||||
ECPointFp.prototype.isOnCurve = function () {
|
ECPointFp.prototype.isOnCurve = function () {
|
||||||
var x = this.getX().toBigInteger();
|
var x = this.getX().toBigInteger();
|
||||||
var y = this.getY().toBigInteger();
|
var y = this.getY().toBigInteger();
|
||||||
|
|
Loading…
Reference in a new issue