if (process.versions) { // c++ native version module.exports = require('bindings')('KeyModule'); } else { // pure js version var ECKey = require('./browser/bitcoinjs-lib.js').ECKey; 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(); 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 }; }