From f9ecaf8ed4cb1971b5c5474f3c52d2224b0b75d7 Mon Sep 17 00:00:00 2001 From: AlDoo Date: Thu, 1 Feb 2018 18:49:42 +0300 Subject: [PATCH] sending server verification object. issue #2 --- transport/ws/handler_srvc.js | 41 ++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/transport/ws/handler_srvc.js b/transport/ws/handler_srvc.js index 75ea3c0..306d609 100644 --- a/transport/ws/handler_srvc.js +++ b/transport/ws/handler_srvc.js @@ -31,8 +31,14 @@ const createHmac = require('create-hmac'); const secrand = require('secure-random'); const WsDb = require("libs/database/wsdb"); const appinfo = require('libs/appinfo'); +const PeerNet = require("libs/peernet"); const peersrvc = require('libs/peernet/msghandlers/peer'); +const peermsg = require("libs/message"); const errcodes = require('streembit-errcodes'); +const Account = require("libs/account"); +const config = require("libs/config"); +const bs58check = require('bs58check'); +const createHash = require("create-hash"); // // Service WS handler @@ -163,8 +169,39 @@ class SrvcWsHandler extends Wshandler { this.database.register(message.pkhash, message.publickey, token, message.account) .then( () => { - let response = { result: 0, txn: message.txn, payload: { token: token } }; - ws.send(JSON.stringify(response)); + try { + const account = new Account(); + const peernet = new PeerNet(); + account.load(config.password, config.account, function (err) { + if (err) { + throw(new Error(err)); + } + + + const buffer = new Buffer(account.public_key, 'hex'); + const rmd160buffer = createHash('rmd160').update(buffer).digest(); + const signature = bs58check.encode(rmd160buffer); + const jwt_plain = { + token: token, + data: { + pkhash: message.pkhash, + time: Date.now() + }, + sign: signature, + public_key: account.bs58pk + }; + + const id = peernet.create_id(); + const jwt = peermsg.create_jwt_token(account.cryptokey, id, JSON.stringify(jwt_plain), null, null, account.bs58pk, null, null); + + const response = { result: 0, txn: message.txn, payload: jwt }; + + ws.send(JSON.stringify(response)); + }); + } + catch (err) { + throw(new Error(err)); + } } ) .catch(