-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstallkeys.js
52 lines (35 loc) · 1.29 KB
/
installkeys.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// install public keys in the key table
const openpgp = require('openpgp');
const db = require('./src/utils/db');
const fs = require('fs');
const PubKeyController = require('./src/controllers/PubKeyController');
const publicKeyFolder = __dirname + '/publickeys/';
const privateKeyFolder = __dirname + '/privatekeys/';
const generationCount = 50;
// get the next key number to generate
async function getNextKeyNr(){
let result = await PubKeyController.findLatest();
if (!result)
return 1;
return (result.nr+1);
}
// generate local keypair and store public key in db
async function generate(startNr, count){
for (var i = startNr; i < (startNr+count); i++){
let keypair = await openpgp.generateKey({
rsaBits: 4096,
curve: 'curve25519',
userIds: [{ name: '', email: '' }] });
fs.writeFileSync(publicKeyFolder + i + '.asc', keypair.publicKeyArmored);
fs.writeFileSync(privateKeyFolder + i + '.asc', keypair.publicKeyArmored);
let result = await PubKeyController.create(i, keypair.publicKeyArmored);
console.log('created keypair ' + i);
}
}
// run the process
module.exports.run = async function(){
await db.connect();
let startNr = await getNextKeyNr();
await generate(startNr, generationCount);
return true;
}