2013-08-16 19:22:50 -07:00
|
|
|
require('classtool');
|
|
|
|
|
|
|
|
function ClassSpec(b) {
|
2014-01-16 01:21:35 -08:00
|
|
|
var coinUtil = require('./util/util');
|
|
|
|
var timeUtil = require('./util/time');
|
|
|
|
var KeyModule = require('./Key');
|
|
|
|
var SIN = require('./SIN').class();
|
|
|
|
|
|
|
|
function SINKey(cfg) {
|
|
|
|
if (typeof cfg != 'object')
|
|
|
|
cfg = {};
|
|
|
|
|
|
|
|
this.created = cfg.created;
|
|
|
|
this.privKey = cfg.privKey;
|
|
|
|
};
|
|
|
|
|
|
|
|
SINKey.prototype.generate = function() {
|
|
|
|
this.privKey = KeyModule.Key.generateSync();
|
|
|
|
this.created = timeUtil.curtime();
|
|
|
|
};
|
|
|
|
|
|
|
|
SINKey.prototype.pubkeyHash = function() {
|
|
|
|
return coinUtil.sha256ripe160(this.privKey.public);
|
|
|
|
};
|
|
|
|
|
|
|
|
SINKey.prototype.storeObj = function() {
|
|
|
|
var pubKey = this.privKey.public.toString('hex');
|
|
|
|
var pubKeyHash = this.pubkeyHash();
|
|
|
|
var sin = new SIN(SIN.SIN_EPHEM, pubKeyHash);
|
|
|
|
var obj = {
|
|
|
|
created: this.created,
|
|
|
|
priv: this.privKey.private.toString('hex'),
|
|
|
|
pub: pubKey,
|
|
|
|
sin: sin.toString(),
|
|
|
|
};
|
|
|
|
|
|
|
|
return obj;
|
|
|
|
};
|
|
|
|
|
|
|
|
return SINKey;
|
2013-08-16 19:22:50 -07:00
|
|
|
};
|
|
|
|
module.defineClass(ClassSpec);
|
|
|
|
|