Skip to content

Commit

Permalink
fix Key tests
Browse files Browse the repository at this point in the history
  • Loading branch information
maraoz committed Mar 11, 2014
1 parent 76cf425 commit 069f67e
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 26 deletions.
5 changes: 3 additions & 2 deletions Key.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,11 @@ if (process.versions) {
}

var eck = new ECKey();
eck.setPub( bufferToArray(self.public));
eck.setPub(bufferToArray(self.public));
eck.setCompressed(self.compressed);
var sigA = bufferToArray(sig);
return eck.verify(hash,sigA);
var ret = eck.verify(hash,sigA);
return ret;
};


Expand Down
34 changes: 22 additions & 12 deletions browser/vendor.js
Original file line number Diff line number Diff line change
Expand Up @@ -2284,24 +2284,34 @@ ECPointFp.prototype.getEncoded = function (compressed) {
return enc;
};

ECPointFp.decodeFrom = function (curve, enc) {
ECPointFp.decodeFrom = function (ecparams, enc) {
var type = enc[0];
var dataLen = enc.length-1;

// Extract x and y as byte arrays
var xBa = enc.slice(1, 1 + dataLen/2);
var yBa = enc.slice(1 + dataLen/2, 1 + dataLen);

// Prepend zero byte to prevent interpretation as negative integer
xBa.unshift(0);
yBa.unshift(0);

// Convert to BigIntegers
var x = new BigInteger(xBa);
var y = new BigInteger(yBa);
if (type === 4) {
var xBa = enc.slice(1, 1 + dataLen/2),
yBa = enc.slice(1 + dataLen/2, 1 + dataLen),
x = BigInteger.fromByteArrayUnsigned(xBa),
y = BigInteger.fromByteArrayUnsigned(yBa);
}
else {
var xBa = enc.slice(1),
x = BigInteger.fromByteArrayUnsigned(xBa),
p = ecparams.getQ(),
xCubedPlus7 = x.multiply(x).multiply(x).add(new BigInteger('7')).mod(p),
pPlus1Over4 = p.add(new BigInteger('1'))
.divide(new BigInteger('4')),
y = xCubedPlus7.modPow(pPlus1Over4,p);
if (y.mod(new BigInteger('2')).toString() != ''+(type % 2)) {
y = p.subtract(y)
}
}

// Return point
return new ECPointFp(curve, curve.fromBigInteger(x), curve.fromBigInteger(y));
return new ECPointFp(ecparams,
ecparams.fromBigInteger(x),
ecparams.fromBigInteger(y));
};

ECPointFp.prototype.add2D = function (b) {
Expand Down
34 changes: 22 additions & 12 deletions browser/vendor/ecdsa.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,24 +41,34 @@ ECPointFp.prototype.getEncoded = function (compressed) {
return enc;
};

ECPointFp.decodeFrom = function (curve, enc) {
ECPointFp.decodeFrom = function (ecparams, enc) {
var type = enc[0];
var dataLen = enc.length-1;

// Extract x and y as byte arrays
var xBa = enc.slice(1, 1 + dataLen/2);
var yBa = enc.slice(1 + dataLen/2, 1 + dataLen);

// Prepend zero byte to prevent interpretation as negative integer
xBa.unshift(0);
yBa.unshift(0);

// Convert to BigIntegers
var x = new BigInteger(xBa);
var y = new BigInteger(yBa);
if (type === 4) {
var xBa = enc.slice(1, 1 + dataLen/2),
yBa = enc.slice(1 + dataLen/2, 1 + dataLen),
x = BigInteger.fromByteArrayUnsigned(xBa),
y = BigInteger.fromByteArrayUnsigned(yBa);
}
else {
var xBa = enc.slice(1),
x = BigInteger.fromByteArrayUnsigned(xBa),
p = ecparams.getQ(),
xCubedPlus7 = x.multiply(x).multiply(x).add(new BigInteger('7')).mod(p),
pPlus1Over4 = p.add(new BigInteger('1'))
.divide(new BigInteger('4')),
y = xCubedPlus7.modPow(pPlus1Over4,p);
if (y.mod(new BigInteger('2')).toString() != ''+(type % 2)) {
y = p.subtract(y)
}
}

// Return point
return new ECPointFp(curve, curve.fromBigInteger(x), curve.fromBigInteger(y));
return new ECPointFp(ecparams,
ecparams.fromBigInteger(x),
ecparams.fromBigInteger(y));
};

ECPointFp.prototype.add2D = function (b) {
Expand Down

0 comments on commit 069f67e

Please sign in to comment.