summaryrefslogtreecommitdiff
path: root/server/hornchat.keyserver.read.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/hornchat.keyserver.read.js')
-rw-r--r--server/hornchat.keyserver.read.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/server/hornchat.keyserver.read.js b/server/hornchat.keyserver.read.js
new file mode 100644
index 0000000..206511a
--- /dev/null
+++ b/server/hornchat.keyserver.read.js
@@ -0,0 +1,25 @@
+module.exports = (socket, data) => {
+ if (!data.username) {
+ socket.send(JSON.stringify({error:"MISSING_OPERAND", fatal: false}));
+ console.log("[" + socket.id + "] Missing 'username' value");
+ return;
+ }
+
+ if (!keys[data.username]) {
+ socket.send(JSON.stringify({error:"INVALID_USER", fatal: false}));
+ console.log("[" + socket.id + "] Invalid 'username' value");
+ return;
+ }
+
+ let validKeys = {};
+ let validDevices = userCredentials.filter((i) => {
+ return i.id === data.username;
+ })[0].devices.map((i) => { return i.id; });
+
+ for (let keyId of Object.keys(keys[data.username])) {
+ if (validDevices.includes(keyId)) validKeys[keyId] = keys[data.username][keyId];
+ }
+
+ socket.send(JSON.stringify({error:null, success:true, fatal: false, keys: validKeys}));
+ console.log("[" + socket.id + "] Gathered public keys for " + data.username);
+} \ No newline at end of file