Ryan X. Charles
11 years ago
2 changed files with 81 additions and 74 deletions
@ -0,0 +1,81 @@ |
|||||
|
var chai = chai || require('chai'); |
||||
|
var bitcore = bitcore || require('../bitcore'); |
||||
|
var coinUtil = coinUtil || bitcore.util; |
||||
|
var buffertools = require('buffertools'); |
||||
|
|
||||
|
var should = chai.should(); |
||||
|
var assert = chai.assert; |
||||
|
|
||||
|
var Key = bitcore.Key; |
||||
|
|
||||
|
//addUncompressed is a node-only interface feature
|
||||
|
if (typeof process !== 'undefined' && process.versions) { |
||||
|
describe('#Key.node', function() { |
||||
|
describe('#addUncompressed', function() { |
||||
|
it('should exist', function() { |
||||
|
should.exist(Key.addUncompressed); |
||||
|
}); |
||||
|
|
||||
|
it('should add two uncompressed public keys', function() { |
||||
|
var key1 = Key.generateSync(); |
||||
|
key1.compressed = false; |
||||
|
var key2 = Key.generateSync(); |
||||
|
key2.compressed = false; |
||||
|
var pubkey1 = key1.public; |
||||
|
var pubkey2 = key2.public; |
||||
|
var pubkey = Key.addUncompressed(pubkey1, pubkey2); |
||||
|
pubkey.length.should.equal(65); |
||||
|
}); |
||||
|
|
||||
|
it('a + b should equal b + a', function() { |
||||
|
var key1 = Key.generateSync(); |
||||
|
key1.compressed = false; |
||||
|
var key2 = Key.generateSync(); |
||||
|
key2.compressed = false; |
||||
|
var pubkey1 = key1.public; |
||||
|
var pubkey2 = key2.public; |
||||
|
var r1 = Key.addUncompressed(pubkey1, pubkey2); |
||||
|
var r2 = Key.addUncompressed(pubkey2, pubkey1); |
||||
|
r1.toString('hex').should.equal(r2.toString('hex')); |
||||
|
}); |
||||
|
|
||||
|
it('should be able to add these two public keys without error', function() { |
||||
|
var key1 = new Key(); |
||||
|
key1.private = coinUtil.sha256("first " + 3); |
||||
|
key1.compressed = false; |
||||
|
key1.regenerateSync(); |
||||
|
var key2 = new Key(); |
||||
|
key2.private = coinUtil.sha256("second " + 3); |
||||
|
key2.compressed = false; |
||||
|
key2.regenerateSync(); |
||||
|
var pubkey1 = key1.public; |
||||
|
var pubkey2 = key2.public; |
||||
|
var pubkey = Key.addUncompressed(pubkey1, pubkey2); |
||||
|
pubkey.length.should.equal(65); |
||||
|
var key = new Key(); |
||||
|
key.public = pubkey; |
||||
|
assert(key.public !== null); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
describe('node only Key functionality', function() { |
||||
|
it('should not fail when called as Key() without "new"', function() { |
||||
|
var key = Key(); |
||||
|
should.exist(key); |
||||
|
}); |
||||
|
it('should not fail when called as Key() without "new" with some args', function() { |
||||
|
var key = Key(1, 2, 3, 4, 5); |
||||
|
should.exist(key); |
||||
|
}); |
||||
|
it('should have correct properties when called with Key() without "new"', function() { |
||||
|
var key = Key(); |
||||
|
key.compressed.should.equal(true); |
||||
|
should.not.exist(key.public); |
||||
|
should.not.exist(key.private); |
||||
|
should.exist(key); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
}); |
||||
|
} |
Loading…
Reference in new issue