diff options
author | Ev Bogue <ev@evbogue.com> | 2019-09-03 11:30:06 -0500 |
---|---|---|
committer | Ev Bogue <ev@evbogue.com> | 2019-09-03 11:30:06 -0500 |
commit | 1d11adf294433b1cf9a3376806d52fe6e1aea0bd (patch) | |
tree | 761e8255f45591dafd7137c03f9e439a6bf0db57 /server.js | |
parent | 3f1a179d003556d96b3bd9538ad65f5266bc7569 (diff) |
first stab at secure bogbook (sbb)
Diffstat (limited to 'server.js')
-rw-r--r-- | server.js | 86 |
1 files changed, 14 insertions, 72 deletions
@@ -12,81 +12,23 @@ open('http://localhost:8089') // ws server (8080) -var WebSocket = require('ws') +var bog = require('./bog') +var WS = require('ws') var fs = require('fs') var nacl = require('tweetnacl') nacl.util = require('tweetnacl-util') -var wserver = new WebSocket.Server({ port: 8080 }) - -wserver.on('connection', function (ws) { - ws.on('message', function (message) { - var req = JSON.parse(message) - if (req.seq) { - if (fs.existsSync(__dirname + '/bogs/' + req.src)) { - fs.readFile(__dirname + '/bogs/' + req.src, 'UTF-8', function (err, data) { - if (data) { - var log = JSON.parse(data) - var pubkey = nacl.util.decodeBase64(req.src.substring(1)) - var sig = nacl.util.decodeBase64(log[0].signature) - var opened = JSON.parse(nacl.util.encodeUTF8(nacl.sign.open(sig, pubkey))) - - var res = { - feed: req.src, - seq: opened.seq - } - ws.send(JSON.stringify(res)) - if(res.seq > req.seq) { - console.log('Sending diff of' + req.src /*+ ' to ' + req.requester*/) - var diff = res.seq - req.seq - var sendlog = log.slice(0, diff) - var send = { - src: req.src, - log: sendlog - } - ws.send(JSON.stringify(send)) - } - } - }) - } else { - var res = { - feed: req.src, - seq: null - } - ws.send(JSON.stringify(res)) - } - } else if (req.seq === null) { - if (fs.existsSync(__dirname + '/bogs/' + req.src)) { - fs.readFile(__dirname + '/bogs/' + req.src, 'UTF-8', function (err, data) { - var log = JSON.parse(data) - var res = { - src: req.src, - log - } - console.log('Sending full log of ' + req.src /*+ ' to ' + req.requester*/ ) - ws.send(JSON.stringify(res)) - }) - } - } - if (req.log) { - if (fs.existsSync(__dirname + '/bogs/' + req.src)) { - fs.readFile(__dirname + '/bogs/' + req.src, 'UTF-8', function (err, data) { - var serverlog = JSON.parse(data) - - var newlog = req.log.concat(serverlog) - - fs.writeFile(__dirname + '/bogs/' + req.src, JSON.stringify(newlog), 'UTF-8', function (err, success) { - console.log('Appending diff of ' + req.src /*+ ' from ' + req.requester + ' and saved to server'*/) - }) - - }) - } else { - fs.writeFile(__dirname + '/bogs/' + req.src, JSON.stringify(req.log), 'UTF-8', function (err, success) { - if (err) throw err - else - console.log('Saved new log of ' + req.src /*+ ' that was sent from ' + req.requester */) - }) - } - } +var wserve = new WS.Server({ port: 8080 }) + +bog.keys().then(key => { + wserve.on('connection', function (ws) { + ws.on('message', function (message) { + var req = JSON.parse(message) + console.log(message) + bog.unbox(req.box, req.requester, key).then(unboxed => { + console.log(nacl.util.encodeUTF8(unboxed)) + }) + }) }) }) + |