Key tests working in the browser~!!!
This commit is contained in:
parent
915c048c3b
commit
3e5e0057b1
23
Key.js
23
Key.js
|
@ -7,23 +7,30 @@ if (process.versions) {
|
|||
} else {
|
||||
// pure js version
|
||||
var ECKey = require('./browser/bitcoinjs-lib.js').ECKey;
|
||||
var kSpec = function() {
|
||||
|
||||
var buffertools = require('buffertools');
|
||||
var kSpec = function(compressed, public, private) {
|
||||
this.compressed = compressed;
|
||||
this.public = public;
|
||||
this.private = private;
|
||||
};
|
||||
|
||||
kSpec.generateSync = function() {
|
||||
var eck = new ECKey();
|
||||
eck.setCompressed(true);
|
||||
var pub = eck.getPub();
|
||||
console.dir(eck);
|
||||
console.log(pub);
|
||||
|
||||
return {
|
||||
compressed: true,
|
||||
public: new Buffer(33),
|
||||
private: new Buffer(32)
|
||||
var ret = new this(true, new Buffer(pub), new Buffer(eck.priv.toByteArrayUnsigned()));
|
||||
ret.eck = eck;
|
||||
return ret;
|
||||
};
|
||||
|
||||
kSpec.prototype.regenerateSync = function() {
|
||||
this.eck = new ECKey(buffertools.toHex(this.private));
|
||||
this.eck.setCompressed(true);
|
||||
this.public = new Buffer(this.eck.getPub());
|
||||
return this;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
Key: kSpec
|
||||
};
|
||||
|
|
|
@ -2708,7 +2708,7 @@ Bitcoin.ECKey = (function () {
|
|||
this.priv = BigInteger.fromByteArrayUnsigned(ECKey.decodeString(input));
|
||||
} else {
|
||||
// Prepend zero byte to prevent interpretation as negative integer
|
||||
this.priv = BigInteger.fromByteArrayUnsigned(Crypto.util.base64ToBytes(input));
|
||||
this.priv = BigInteger.fromByteArrayUnsigned(Crypto.util.hexToBytes(input));
|
||||
}
|
||||
}
|
||||
this.compressed = !!ECKey.compressByDefault;
|
||||
|
|
|
@ -20,7 +20,7 @@ Bitcoin.ECKey = (function () {
|
|||
this.priv = BigInteger.fromByteArrayUnsigned(ECKey.decodeString(input));
|
||||
} else {
|
||||
// Prepend zero byte to prevent interpretation as negative integer
|
||||
this.priv = BigInteger.fromByteArrayUnsigned(Crypto.util.base64ToBytes(input));
|
||||
this.priv = BigInteger.fromByteArrayUnsigned(Crypto.util.hexToBytes(input));
|
||||
}
|
||||
}
|
||||
this.compressed = !!ECKey.compressByDefault;
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
</head>
|
||||
<body>
|
||||
<div id="mocha"></div>
|
||||
<script src="../browser/vendor.js"></script>
|
||||
<script src="../node_modules/mocha/mocha.js"></script>
|
||||
<script src="../node_modules/chai/chai.js"></script>
|
||||
<script>mocha.setup('bdd')</script>
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
var chai = require('chai');
|
||||
var bitcore = require('../bitcore');
|
||||
|
||||
var buffertools = require('buffertools');
|
||||
|
||||
var should = chai.should();
|
||||
|
||||
var KeyModule = bitcore.KeyModule;
|
||||
|
@ -22,14 +24,37 @@ describe('Key', function() {
|
|||
it('should be able to generateSync instance', function() {
|
||||
var k = Key.generateSync();
|
||||
should.exist(k);
|
||||
k.private.length.should.equal(32);
|
||||
k.public.length.should.equal(33);
|
||||
(k instanceof Key).should.be.ok;
|
||||
});
|
||||
it('should retain some basic properties', function() {
|
||||
var k = Key.generateSync();
|
||||
should.exist(k.private);
|
||||
should.exist(k.public);
|
||||
should.exist(k.compressed);
|
||||
});
|
||||
it('should have a valid public key', function() {
|
||||
var k = Key.generateSync();
|
||||
k.compressed.should.be.ok;
|
||||
k.public.length.should.equal(33);
|
||||
k.public[0].should.be.above(1);
|
||||
k.public[0].should.be.below(4);
|
||||
});
|
||||
it('should have a valid private key', function() {
|
||||
var k = Key.generateSync();
|
||||
k.private.length.should.equal(32);
|
||||
});
|
||||
|
||||
it('should be able to regenerate from a private key', function() {
|
||||
var k = Key.generateSync();
|
||||
var pkshex = 'b7dafe35d7d1aab78b53982c8ba554584518f86d50af565c98e053613c8f15e0';
|
||||
var pubhex = '02211c9570d24ba84a3ee31c8a08e93a6756b3f3beac76a4ab8d9748ca78203389';
|
||||
k.private = buffertools.fromHex(new Buffer(pkshex));
|
||||
k.regenerateSync();
|
||||
k.compressed.should.be.ok;
|
||||
buffertools.toHex(k.private).should.equal(pkshex);
|
||||
buffertools.toHex(k.public).should.equal(pubhex);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue