bitcore/test/test.Key.js

62 lines
1.7 KiB
JavaScript
Raw Normal View History

2014-02-19 11:07:50 -08:00
'use strict';
var chai = require('chai');
var bitcore = require('../bitcore');
2014-02-21 10:19:38 -08:00
var buffertools = require('buffertools');
2014-02-19 11:07:50 -08:00
var should = chai.should();
2014-02-19 11:54:41 -08:00
var KeyModule = bitcore.KeyModule;
var Key;
describe('Key', function() {
2014-02-19 11:07:50 -08:00
it('should initialze the main object', function() {
2014-02-19 11:54:41 -08:00
should.exist(KeyModule);
});
it('should be able to create class', function() {
Key = KeyModule.Key;
2014-02-19 11:07:50 -08:00
should.exist(Key);
});
it('should be able to create instance', function() {
var k = new Key();
should.exist(k);
});
2014-02-20 13:59:41 -08:00
it('should be able to generateSync instance', function() {
var k = Key.generateSync();
should.exist(k);
2014-02-21 10:19:38 -08:00
(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);
2014-02-20 13:59:41 -08:00
should.exist(k.compressed);
});
2014-02-21 10:19:38 -08:00
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();
2014-02-21 11:48:27 -08:00
k.private.length.should.be.below(33);
k.private.length.should.be.above(30);
2014-02-21 10:19:38 -08:00
});
2014-02-19 11:07:50 -08:00
2014-02-21 10:19:38 -08:00
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);
});
2014-02-19 11:07:50 -08:00
2014-02-21 10:19:38 -08:00
});