1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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
- }
|