aboutsummaryrefslogtreecommitdiff
path: root/server.js
diff options
context:
space:
mode:
authorEv Bogue <ev@evbogue.com>2019-09-03 11:30:06 -0500
committerEv Bogue <ev@evbogue.com>2019-09-03 11:30:06 -0500
commit1d11adf294433b1cf9a3376806d52fe6e1aea0bd (patch)
tree761e8255f45591dafd7137c03f9e439a6bf0db57 /server.js
parent3f1a179d003556d96b3bd9538ad65f5266bc7569 (diff)
first stab at secure bogbook (sbb)
Diffstat (limited to 'server.js')
-rw-r--r--server.js86
1 files changed, 14 insertions, 72 deletions
diff --git a/server.js b/server.js
index f2a7e0d..5cb2fd6 100644
--- a/server.js
+++ b/server.js
@@ -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))
+ })
+ })
})
})
+