|
|
@ -1,12 +1,11 @@ |
|
|
|
'use strict'; |
|
|
|
|
|
|
|
var assert = require('assert'); |
|
|
|
var chai = chai || require('chai'); |
|
|
|
var bitcore = bitcore || require('../bitcore'); |
|
|
|
var coinUtil = coinUtil || require('../util/util'); |
|
|
|
var coinUtil = coinUtil || bitcore.util; |
|
|
|
var buffertools = require('buffertools'); |
|
|
|
|
|
|
|
var should = chai.should(); |
|
|
|
var assert = chai.assert; |
|
|
|
|
|
|
|
var Key = bitcore.Key; |
|
|
|
describe('Key', function() { |
|
|
@ -115,52 +114,57 @@ describe('Key', function() { |
|
|
|
ret.should.equal(false); |
|
|
|
}); |
|
|
|
|
|
|
|
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')); |
|
|
|
}); |
|
|
|
//node tests only
|
|
|
|
//addUncompressed is a node-only interface feature
|
|
|
|
if (typeof process !== 'undefined' && process.versions) { |
|
|
|
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); |
|
|
|
}); |
|
|
|
|
|
|
|
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); |
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|