bitcore/Key.js

40 lines
900 B
JavaScript
Raw Normal View History

2014-02-20 13:59:41 -08:00
if (process.versions) {
// c++ native version
module.exports = require('bindings')('KeyModule');
} else {
// pure js version
var ECKey = require('./browser/bitcoinjs-lib.js').ECKey;
2014-02-21 10:19:38 -08:00
var buffertools = require('buffertools');
var kSpec = function(compressed, public, private) {
this.compressed = compressed;
this.public = public;
this.private = private;
2014-02-20 13:59:41 -08:00
};
kSpec.generateSync = function() {
var eck = new ECKey();
eck.setCompressed(true);
var pub = eck.getPub();
2014-02-21 10:19:38 -08:00
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;
2014-02-20 13:59:41 -08:00
};
2014-02-21 10:19:38 -08:00
2014-02-20 13:59:41 -08:00
module.exports = {
Key: kSpec
};
}