diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 599ecbf..0000000 --- a/dist/index.js +++ /dev/null @@ -1,158 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var fs = __importStar(require("fs")); -var generate_1 = require("./src/generate"); -var vault_1 = require("./src/vault"); -var configPath = "", action = -1, pubKey = "", privKey = "", safeFile = "", mails = "", html = "", dryrun = false, force = false; -for (var i = 1; i < process.argv.length; i++) { - if (process.argv[i] === "--config") { - if (i + 1 < process.argv.length && !process.argv[i + 1].startsWith("--")) { - configPath = process.argv[i + 1]; - } - else { - throw new Error("Invalid params"); - } - } - if (process.argv[i] === "--pubkey") { - if (i + 1 < process.argv.length && !process.argv[i + 1].startsWith("--")) { - pubKey = process.argv[i + 1]; - } - else { - throw new Error("Invalid params"); - } - } - if (process.argv[i] === "--privkey") { - if (i + 1 < process.argv.length && !process.argv[i + 1].startsWith("--")) { - privKey = process.argv[i + 1]; - } - else { - throw new Error("Invalid params"); - } - } - if (process.argv[i] === "--safe") { - if (i + 1 < process.argv.length && !process.argv[i + 1].startsWith("--")) { - safeFile = process.argv[i + 1]; - } - else { - throw new Error("Invalid params"); - } - } - if (process.argv[i] === "--mails") { - if (i + 1 < process.argv.length && !process.argv[i + 1].startsWith("--")) { - mails = process.argv[i + 1]; - } - else { - throw new Error("Invalid params"); - } - } - if (process.argv[i] === "--html") { - if (i + 1 < process.argv.length && !process.argv[i + 1].startsWith("--")) { - html = process.argv[i + 1]; - } - else { - throw new Error("Invalid params"); - } - } - if (process.argv[i] === "--send") { - action = 1; - } - if (process.argv[i] === "--decrypt") { - action = 2; - } - if (process.argv[i] === "--genkey") { - action = 3; - } - if (process.argv[i] === "--dryrun") { - dryrun = true; - } - if (process.argv[i] === "--force") { - force = true; - } -} -if (action == -1) { - throw new Error("No Action specified"); -} -if (!configPath && action == 1) { - throw new Error("Config-Path not specified"); -} -if (!pubKey && action != 2) { - throw new Error("Public-Key not specified"); -} -if (!safeFile && action != 3) { - throw new Error("Safe-file not specified"); -} -if (!privKey && action >= 2) { - throw new Error("Private-Key not specified"); -} -if (!mails && action == 1) { - throw new Error("Mail-Input not specified"); -} -if (!html && action == 1) { - throw new Error("Mail-Template not specified"); -} -if (action == 1) { - var dataSafe_1 = new vault_1.SecureVault(pubKey, privKey); - var confRaw = fs.readFileSync(configPath, 'utf8'); - var config = {}; - var addition_1 = false; - config = JSON.parse(confRaw); - if (fs.existsSync(safeFile)) { - dataSafe_1.loadData(safeFile); - config.usedTokens = dataSafe_1.getStorage(dataSafe_1.findStorage("usedTokens")[0].u); - config.usedMails = dataSafe_1.getStorage(dataSafe_1.findStorage("usedMails")[0].u); - addition_1 = true; - } - else { - config.usedTokens = []; - config.usedMails = []; - } - try { - config.inFileMail = mails; - config.htmlPath = html; - config.dryrun = dryrun; - config.force = force; - } - catch (error) { - console.error("Cannote read config file!"); - process.exit(100); - } - generate_1.generateToken(config, dataSafe_1).then(function (el) { - if (addition_1) { - dataSafe_1.setStorage(dataSafe_1.findStorage("usedTokens")[0].u, el.codes); - dataSafe_1.setStorage(dataSafe_1.findStorage("usedMails")[0].u, el.mails); - dataSafe_1.saveData(safeFile); - } - else { - dataSafe_1.pushStorage('usedTokens', el.codes); - dataSafe_1.pushStorage('usedMails', el.mails); - dataSafe_1.saveData(safeFile); - } - }).catch(function (err) { return console.error("error", err); }); -} -else if (action == 2) { - var dataSafe = new vault_1.SecureVault(pubKey, privKey); - dataSafe.loadData(safeFile); - dataSafe.decryptData(); -} -else if (action == 3) { - vault_1.SecureVault.genKey(pubKey, privKey); -} diff --git a/dist/src/generate.js b/dist/src/generate.js deleted file mode 100644 index c3da574..0000000 --- a/dist/src/generate.js +++ /dev/null @@ -1,230 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __spreadArrays = (this && this.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.generateToken = void 0; -var fs = __importStar(require("fs")); -var path = __importStar(require("path")); -var nodemailer = __importStar(require("nodemailer")); -var cliProgress = __importStar(require("cli-progress")); -var shuffle_1 = require("./util/shuffle"); -var token_1 = require("./util/token"); -var Handlebars = __importStar(require("handlebars")); -var mailParser_1 = require("./mailParser"); -function generateToken(config, dataSafe) { - return new Promise(function (resolve, error) { - mailParser_1.parseMails(config).then(function (res) { - generateCodes(resolve, error, res, config, dataSafe); - }); - }); -} -exports.generateToken = generateToken; -function generateCodes(resolve, error, mailArray, config, dataSafe) { - return __awaiter(this, void 0, void 0, function () { - var pbar, position, codeArray, checkString, listString, i, code; - return __generator(this, function (_a) { - console.log("\nGenerating codes"); - pbar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic); - pbar.start(mailArray.length, 0, { - speed: "N/A" - }); - position = 0; - codeArray = []; - checkString = ''; - listString = ''; - for (i = 0; i < mailArray.length; i++) { - code = ''; - do { - code = token_1.mkstring(4); - } while ((config.force ? codeArray : __spreadArrays(codeArray, config.usedTokens)).includes(code)); - codeArray.push(code); - checkString = checkString + "|" + code; - listString = listString + "\n" + code; - position++; - pbar.update(position); - } - checkString = checkString.substr(1); - listString = listString.substr(1); - pbar.stop(); - try { - if (!fs.existsSync(path.dirname(config.outFileMatch))) { - fs.mkdirSync(path.dirname(config.outFileMatch)); - } - fs.writeFileSync(config.outFileMatch, checkString); - } - catch (err) { - error(err); - } - sendMails(resolve, error, mailArray, codeArray, config, dataSafe); - return [2]; - }); - }); -} -function sendMails(resolve, error, mailArray, codeArray, config, dataSafe) { - return __awaiter(this, void 0, void 0, function () { - var mailserver, template, htmlSrc, pbar, position, i; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - mailserver = nodemailer.createTransport(config.mail); - try { - htmlSrc = fs.readFileSync(config.htmlPath, "utf8"); - template = Handlebars.compile(htmlSrc); - } - catch (error) { - console.error("Cannote read template file!"); - error(error); - } - console.log("\nSending mails"); - pbar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic); - pbar.start(mailArray.length, 0, { - speed: "N/A" - }); - position = 0; - shuffle_1.shuffleArray(mailArray); - shuffle_1.shuffleArray(codeArray); - if (config.force) { - dataSafe.clearVault(); - } - i = 0; - _a.label = 1; - case 1: - if (!(i < mailArray.length)) return [3, 4]; - if (!config.dryrun) { - dataSafe.pushData({ - name: mailArray[i].name, - mail: mailArray[i].mail, - code: codeArray[i] - }); - } - return [4, send(mailArray[i].name, mailArray[i].mail, codeArray[i], template, mailserver, config)]; - case 2: - _a.sent(); - position++; - pbar.update(position); - _a.label = 3; - case 3: - i++; - return [3, 1]; - case 4: - pbar.stop(); - shuffle_1.shuffleArray(mailArray); - shuffle_1.shuffleArray(codeArray); - shuffle_1.shuffleArray(mailArray); - shuffle_1.shuffleArray(codeArray); - resolve({ - codes: config.force ? codeArray : (config.dryrun ? config.usedTokens : __spreadArrays(codeArray, config.usedTokens)), - mails: config.force ? mailArray : (config.dryrun ? config.usedMails : __spreadArrays(mailArray, config.usedMails)) - }); - return [2]; - } - }); - }); -} -function send(name, mail, code, template, mailserver, config) { - return __awaiter(this, void 0, void 0, function () { - var html, mailOptions, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!config.dryrun) return [3, 2]; - return [4, delay(100)]; - case 1: - _a.sent(); - console.log("\n\u001B[36m -> dryrun: would send to " + mail + "\u001B[0m"); - return [3, 6]; - case 2: - html = template({ - "name": name, - "mail": mail, - "code": code - }); - mailOptions = { - from: config.mailFrom + " <" + config.mail.auth.user + ">", - to: mail, - subject: "Dein Zugangscode zur BJR Wahl", - html: html - }; - _a.label = 3; - case 3: - _a.trys.push([3, 5, , 6]); - return [4, mailserver.sendMail(mailOptions)]; - case 4: - _a.sent(); - return [3, 6]; - case 5: - error_1 = _a.sent(); - console.log("Error sendign mail to " + mail + " : " + error_1); - return [3, 6]; - case 6: return [2]; - } - }); - }); -} -function delay(t, val) { - return new Promise(function (resolve) { - setTimeout(function () { - resolve(val); - }, t); - }); -} diff --git a/dist/src/mailParser.js b/dist/src/mailParser.js deleted file mode 100644 index 0e788b8..0000000 --- a/dist/src/mailParser.js +++ /dev/null @@ -1,70 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.parseMails = void 0; -var fs = __importStar(require("fs")); -function parseMails(config) { - return new Promise(function (resolve, reject) { - var mailArray = []; - var currSection = "global"; - var lineCounter = 0; - var curCounter = 0; - console.log("Reading mails for section " + currSection); - var readline = require('readline'), instream = fs.createReadStream(config.inFileMail), outstream = new (require('stream'))(), rl = readline.createInterface(instream, outstream); - rl.on('line', function (line) { - lineCounter++; - if (line.startsWith('[')) { - if (line.endsWith(']')) { - console.log("Read " + curCounter + " adresses for section " + currSection); - curCounter = 0; - currSection = line.substring(1, line.length - 1); - console.log("Reading mails for section " + currSection); - } - else { - console.error("Error parsing section on line " + lineCounter + ": Syntax Error. Missing closing bracket ]"); - } - } - else if (!line.startsWith('#')) { - var ix_1 = line.indexOf(";"); - if (ix_1 !== -1) { - if (config.force || config.usedMails.filter(function (el) { return el.mail == line.substr(0, ix_1); }).length == 0) { - mailArray.push({ - mail: line.substr(0, ix_1), - name: line.substr(ix_1 + 1) - }); - curCounter++; - } - else { - console.error("Skipping " + line.substr(0, ix_1) + ": Already sent"); - } - } - else { - console.error("Error parsing mail on line " + lineCounter + ": Syntax Error. Missing ;"); - } - } - }); - rl.on('close', function (line) { - console.log("Read " + curCounter + " adresses for section " + currSection + "\n" + mailArray.length + " mails read!"); - resolve(mailArray); - }); - }); -} -exports.parseMails = parseMails; diff --git a/dist/src/util/shuffle.js b/dist/src/util/shuffle.js deleted file mode 100644 index 270fd75..0000000 --- a/dist/src/util/shuffle.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.shuffleArray = void 0; -function shuffleArray(array) { - for (var i = array.length - 1; i > 0; i--) { - var j = Math.floor(Math.random() * (i + 1)); - var temp = array[i]; - array[i] = array[j]; - array[j] = temp; - } -} -exports.shuffleArray = shuffleArray; diff --git a/dist/src/util/token.js b/dist/src/util/token.js deleted file mode 100644 index ce08c03..0000000 --- a/dist/src/util/token.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mkstring = void 0; -function mkstring(length) { - var result = ''; - var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - var charactersLength = characters.length; - for (var i = 0; i < length; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - } - return result; -} -exports.mkstring = mkstring; diff --git a/dist/src/vault.js b/dist/src/vault.js deleted file mode 100644 index 0374278..0000000 --- a/dist/src/vault.js +++ /dev/null @@ -1,222 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SecureVault = void 0; -var crypto = __importStar(require("crypto")); -var uuid = __importStar(require("uuid")); -var path_1 = __importDefault(require("path")); -var fs = __importStar(require("fs")); -var crypto_1 = require("crypto"); -var vaultVersion = 'v1.2'; -var SecureVault = (function () { - function SecureVault(publicKey, privateKey) { - this.storage = []; - this.safe = { - items: [], - publicKey: publicKey ? fs.readFileSync(path_1.default.resolve(publicKey)) : undefined, - privateKey: privateKey ? fs.readFileSync(path_1.default.resolve(privateKey)) : undefined - }; - this.privPath = publicKey ? path_1.default.resolve(publicKey) : undefined, - this.pubPath = privateKey ? path_1.default.resolve(privateKey) : undefined; - } - SecureVault.prototype.pushData = function (data) { - return __awaiter(this, void 0, void 0, function () { - var txtData, key, iv, cipher, encrypted, buffer, asym_encrypted, u; - return __generator(this, function (_a) { - txtData = JSON.stringify(data); - key = crypto.randomBytes(32); - iv = crypto.randomBytes(16); - cipher = crypto.createCipheriv('aes-256-cbc', Buffer.from(key), iv); - encrypted = cipher.update(txtData); - encrypted = Buffer.concat([encrypted, cipher.final()]); - buffer = new Buffer(key); - if (!this.safe.publicKey) { - throw new Error("Public Key not found"); - } - asym_encrypted = crypto.publicEncrypt(this.safe.publicKey, buffer); - u = uuid.v4(); - this.safe.items.push({ - u: u, - d: encrypted.toString('hex'), - k: asym_encrypted.toString("base64"), - iv: iv.toString('hex') - }); - return [2, u]; - }); - }); - }; - SecureVault.prototype.saveData = function (path) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - fs.writeFileSync(path, JSON.stringify({ - version: vaultVersion, - vault: this.safe.items, - storage: this.storage - })); - return [2]; - }); - }); - }; - SecureVault.prototype.loadData = function (path) { - return __awaiter(this, void 0, void 0, function () { - var loaded; - return __generator(this, function (_a) { - loaded = JSON.parse(fs.readFileSync(path, 'utf8')); - switch (loaded.version) { - case 'v1.1': - this.safe.items = loaded.vault; - break; - case 'v1.2': - this.safe.items = loaded.vault; - this.storage = loaded.storage; - break; - default: - console.error("Unknown or unsupported vault file version: " + loaded.version); - } - return [2]; - }); - }); - }; - SecureVault.prototype.decryptData = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this; - return __generator(this, function (_a) { - this.safe.items.forEach(function (el) { - var buffer = new Buffer(el.k, "base64"); - if (!_this.safe.privateKey) { - throw new Error("Private Key not found"); - } - var key = crypto.privateDecrypt(_this.safe.privateKey, buffer); - var iv = Buffer.from(el.iv, 'hex'); - var encryptedText = Buffer.from(el.d, 'hex'); - var decipher = crypto.createDecipheriv('aes-256-cbc', key, iv); - var decrypted = decipher.update(encryptedText); - decrypted = Buffer.concat([decrypted, decipher.final()]); - var obj = JSON.parse(decrypted.toString()); - console.log(obj); - }); - return [2]; - }); - }); - }; - SecureVault.genKey = function (publicKeyDir, privateKeyDir) { - crypto_1.generateKeyPair('rsa', { - modulusLength: 4096, - publicKeyEncoding: { - type: 'pkcs1', - format: 'pem' - }, - privateKeyEncoding: { - type: 'pkcs1', - format: 'pem', - } - }, function (err, publicKey, privateKey) { - fs.writeFileSync(privateKeyDir, privateKey); - fs.writeFileSync(publicKeyDir, publicKey); - }); - }; - SecureVault.prototype.pushStorage = function (tag, data) { - if (vaultVersion !== 'v1.2') { - throw new Error("Storage not supported in " + vaultVersion); - } - else { - var objJsonStr = JSON.stringify(data); - var objJsonB64 = Buffer.from(objJsonStr).toString("base64"); - this.storage.push({ - u: uuid.v4(), - d: objJsonB64, - t: tag - }); - } - }; - SecureVault.prototype.setStorage = function (suuid, data) { - if (vaultVersion !== 'v1.2') { - throw new Error("Storage not supported in " + vaultVersion); - } - else { - var objJsonStr = JSON.stringify(data); - var objJsonB64 = Buffer.from(objJsonStr, "utf8").toString("base64"); - this.storage.filter(function (el) { return el.u == suuid; })[0].d = objJsonB64; - } - }; - SecureVault.prototype.getStorage = function (suuid) { - if (vaultVersion !== 'v1.2') { - throw new Error("Storage not supported in " + vaultVersion); - } - else { - var data = this.storage.filter(function (el) { return el.u == suuid; })[0]; - var objJsonB64 = new Buffer(data.d, 'base64'); - return JSON.parse(objJsonB64.toString('utf8')); - } - }; - SecureVault.prototype.findStorage = function (tag) { - if (vaultVersion !== 'v1.2') { - throw new Error("Storage not supported in " + vaultVersion); - } - else { - return this.storage.filter(function (el) { return el.t == tag; }); - } - }; - SecureVault.prototype.clearVault = function () { - this.safe.items = []; - }; - return SecureVault; -}()); -exports.SecureVault = SecureVault; diff --git a/template.html b/template.html deleted file mode 100644 index 1a46036..0000000 --- a/template.html +++ /dev/null @@ -1,23 +0,0 @@ -Hallo {{name}},

- -du wurdest ausgewählt Einfluss auf die Wahl des Bezirks-Jugend-Rats 2020 zu nehmen!
- -Du hast das Privileg am Jugendtag unter folgender URL abzustimmen:
-https://docs.google.com/forms/d/e/1FAIpQLSdHNZSoYTHnS_Tg-BODcwdkXFDaaP1niuj8a_PlADiilMVEIw/viewform?usp=pp_url&entry.220991222={{code}}
-
-Sollte dieser Link nicht funktionieren, verwende bitte den Code {{code}} auf der Seite https://forms.gle/6WHfptZ7QcbqxBE38.

- -Die Wahlen werden im Rahmen des Jugendtags-Sitzung durchgeführt. Der Link wird erst zu diesem Zeitpunk gültig.
-Die Sitzung wird am 10. Oktober 2020 Online über Zoom stattfinden. Link und Uhrzeit hierzu folgen in einer seperaten Mail.

-WICHTIG: Bitte stimme erst ab, wenn die Anmeldung offiziell eröffnet ist. Alle vorherigen Einsendungen werden nicht berücksichtigt.
-WICHTIG: Dies ist deine persönlichen Zugangsdaten. Bitte gib diese nicht weiter.

-Bei weiteren Fragen zu den Wahlen wende dich bitte an: nyi@nazarener.de -

-Viel Spaß!
-Dein BJR
-
-


- -Wenn Sie nicht der richtige Adressat sind, oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte den Absender und löschen Sie diese Mail.
-Dies ist eine automatisch generierte Mail – bitte antworten sie nicht auf diese e-mail sondern wenden sie sich bei Rückfragen direkt an nyi@nazarener.de -
\ No newline at end of file