var nb = require("buffa"); var openpgp = require("openpgp"); function cleanpgpstring(astr) { var str = astr.trim(); str = str.replace(/\r/g, "\n"); str = str.replace(/\n\n/g, "\n"); var a = str.split("\n"); a = a.filter(function(aa) { return !(aa.indexOf("Version") > -1 || aa.indexOf("Comment") > -1) }) str = a.join("\n"); return str; } function makeloginstr(str) { return nb(cleanpgpstring(str)).toBase(54); } function create_identity(opt) { var options = Object.assign({ "passphrase": "", "numBits": 1024, "userIds": { "name": "user", "email": "" } }, opt) var oper = openpgp.generateKey(options) .then( function(keya) { keya.publickey = makeloginstr(keya.publicKeyArmored) keya.sid = nb(keya.publickey).SHA1().toBase(36); var kkk = { "secured": false, "sid": keya.sid, "publickey": keya.publickey, privatekey: makeloginstr(keya.privateKeyArmored), "options": options } if (keya.key.primaryKey.encrypted) { kkk.secured = true; } kkk.key = keya.key; return kkk; }) return oper; } module.exports = { create_identity: create_identity, makeloginstr: makeloginstr, cleanpgpstring: cleanpgpstring }