bitcore/lib/kdf.js

33 lines
760 B
JavaScript
Raw Normal View History

2014-08-13 14:31:28 -07:00
var Bn = require('./bn');
var Privkey = require('./privkey');
var Point = require('./point');
var Pubkey = require('./pubkey');
var Keypair = require('./keypair');
2014-08-13 14:31:28 -07:00
var Hash = require('./hash');
function KDF() {
};
KDF.buf2keypair = function(buf) {
return KDF.sha256hmac2keypair(buf);
2014-08-13 14:31:28 -07:00
};
KDF.sha256hmac2keypair = function(buf) {
2014-08-13 14:31:28 -07:00
var privkey = KDF.sha256hmac2privkey(buf);
var keypair = Keypair().fromPrivkey(privkey);
return keypair;
2014-08-13 14:31:28 -07:00
};
KDF.sha256hmac2privkey = function(buf) {
var bn;
var concat = new Buffer([]);
do {
var hash = Hash.sha256hmac(buf, concat);
var bn = Bn.fromBuffer(hash);
concat = Buffer.concat([concat, new Buffer(0)]);
} while(!bn.lt(Point.getN()));
2014-08-28 17:26:56 -07:00
return new Privkey({bn: bn});
2014-08-13 14:31:28 -07:00
};
module.exports = KDF;