Armory: use native multiplication in node and javascript implementation in browser

This commit is contained in:
olalonde 2014-05-07 13:08:35 +08:00
parent b5c1a7d387
commit 59ee476b96
2 changed files with 7 additions and 8 deletions

View File

@ -1,9 +1,8 @@
var Point = require('./browser/Point'),
var Point = require('./Point'),
Key = require('./Key'),
buffertools = require('buffertools'),
sha256 = require('../util').sha256,
twoSha256 = require('../util').twoSha256,
BigInteger = require('../browser/vendor-bundle.js').BigInteger;
twoSha256 = require('../util').twoSha256;
// TODO: use native modules instead of browser libraries
@ -26,10 +25,8 @@ Armory.prototype.generatePubKey = function () {
for (var i = 0; i < 32; i++)
chainXor[i] ^= chainCode[i];
var A = new BigInteger(chainXor.toString('hex'), 16);
var pt = Point.fromUncompressedPubKey(pubKey);
pt = Point.multiply(pt, A);
pt = Point.multiply(pt, chainXor);
var new_pubkey = pt.toUncompressedPubKey();

View File

@ -48,7 +48,9 @@ Point.add = function(p1, p2) {
return point;
};
Point.multiply = function(p1, A) {
Point.multiply = function(p1, x) {
var x = new BigInteger(x.toString('hex'), 16);
var ecparams = getSECCurveByName('secp256k1');
var p1xhex = p1.x.toBuffer({size: 32}).toString('hex');
@ -59,7 +61,7 @@ Point.multiply = function(p1, A) {
var p1py = new ECFieldElementFp(ecparams.getCurve().getQ(), p1y);
var p1p = new ECPointFp(ecparams.getCurve(), p1px, p1py);
var p = p1p.multiply(A);
var p = p1p.multiply(x);
var point = new Point();
var pointxbuf = new Buffer(p.getX().toBigInteger().toByteArrayUnsigned());