From 27adc68c032ae093a53c1751095cf465102f7a19 Mon Sep 17 00:00:00 2001 From: Marcus Date: Wed, 26 Feb 2020 21:28:56 -0500 Subject: [PATCH] identities ported out --- .gitignore | 3 ++- .vundle_plugins/Vundle.vim | 1 + .vundle_plugins/dracula | 1 + .vundle_plugins/lightline.vim | 1 + .vundle_plugins/nerdtree | 1 + index.js | 25 ------------------ src/identities.js | 49 +++++++++++++++++++++++++++++++++++ 7 files changed, 55 insertions(+), 26 deletions(-) create mode 160000 .vundle_plugins/Vundle.vim create mode 160000 .vundle_plugins/dracula create mode 160000 .vundle_plugins/lightline.vim create mode 160000 .vundle_plugins/nerdtree create mode 100644 src/identities.js diff --git a/.gitignore b/.gitignore index 04d9173..74f1eec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ identities.nedb node_modules *.pem -package-lock.json \ No newline at end of file +package-lock.json +.DS_Store \ No newline at end of file diff --git a/.vundle_plugins/Vundle.vim b/.vundle_plugins/Vundle.vim new file mode 160000 index 0000000..b255382 --- /dev/null +++ b/.vundle_plugins/Vundle.vim @@ -0,0 +1 @@ +Subproject commit b255382d6242d7ea3877bf059d2934125e0c4d95 diff --git a/.vundle_plugins/dracula b/.vundle_plugins/dracula new file mode 160000 index 0000000..5a63362 --- /dev/null +++ b/.vundle_plugins/dracula @@ -0,0 +1 @@ +Subproject commit 5a633625615c79f87786d74ea925790ccdd82aba diff --git a/.vundle_plugins/lightline.vim b/.vundle_plugins/lightline.vim new file mode 160000 index 0000000..e8577f3 --- /dev/null +++ b/.vundle_plugins/lightline.vim @@ -0,0 +1 @@ +Subproject commit e8577f3654cac97ee18faae28c80a2200aaaad5a diff --git a/.vundle_plugins/nerdtree b/.vundle_plugins/nerdtree new file mode 160000 index 0000000..e67324f --- /dev/null +++ b/.vundle_plugins/nerdtree @@ -0,0 +1 @@ +Subproject commit e67324fdea7a192c7ce1b4c6b3c3b9f82f11eee7 diff --git a/index.js b/index.js index 5920570..63c2afb 100644 --- a/index.js +++ b/index.js @@ -1,33 +1,8 @@ const express = require('express'); const app = express(); const api = require('./api'); -const NodeRSA = require('node-rsa'); -const rsa = new NodeRSA(); -const fs = require('fs'); -const nedb = require('nedb'); -const identities = new nedb({ - filename: 'identities.nedb', - autoload: true -}); app.use('/api ', api); app.listen(6565); -function createIdentity(name) { - const pair = rsa.generateKeyPair() - identities.insert({ - name, - type: 'public', - key: pair.exportKey('pkcs1-public-pem') - }); - identities.insert({ - name, - type: 'private', - key: pair.exportKey('pkcs1-private-pem') - }); -} - -module.exports = { - createIdentity -} diff --git a/src/identities.js b/src/identities.js new file mode 100644 index 0000000..841ee8f --- /dev/null +++ b/src/identities.js @@ -0,0 +1,49 @@ +const NodeRSA = require('node-rsa'); +const nedb = require('nedb'); +const rsa = new NodeRSA(); +const identities = new nedb({ + filename: 'identities.nedb', + autoload: true +}); + +async function createIdentity(name) { + const pair = rsa.generateKeyPair() + + await new Promise(res => { + identities.insert({ + name, + type: 'public', + key: pair.exportKey('pkcs1-public-pem') + }, res); + }) + await new Promise(res => { + identities.insert({ + name, + type: 'private', + key: pair.exportKey('pkcs1-private-pem') + }, res); + }); +} + +async function getIdentity() { + +} + +async function getAllIdentities() { + return await new Promise(res => { + identities.find({}, (err, docs) => { + const names = docs.reduce((acc, obj) => { + if(obj._id in acc) return acc; + else acc[obj._id] = obj.name; + }, {}); + res(names); + }) + }); +} + +module.exports = { + create: createIdentity, + get: Object.assign(getIdentity, { + all: getAllIdentities + }) +} \ No newline at end of file