From 257d4681dbbe17a29310be8b605735355ff847a2 Mon Sep 17 00:00:00 2001 From: Richard Remer Date: Tue, 29 Sep 2015 12:46:20 -0700 Subject: [PATCH] use tlsfs module to load certs --- package.json | 6 ++++-- smtp2http.js | 22 ++++------------------ 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 95fab39..5ffb4b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "smtp2http", - "version": "1.1.0", + "version": "1.1.1", "description": "SMTP to HTTP gateway", "bin": { "smtp2http": "./smtp2http.js" @@ -10,7 +10,9 @@ "squabble": "^1", "request": "^2", "mailparser": "^0.5", - "colors": "^1" + "colors": "^1", + "objektify": "^1", + "tlsfs": "git+https://e549446c3065af492571a7566890c26144efcab3:x-oauth-basic@github.com/Zingle/tlsfs.git#master" }, "repository": { "type": "git", diff --git a/smtp2http.js b/smtp2http.js index d09c4c2..e28fc28 100644 --- a/smtp2http.js +++ b/smtp2http.js @@ -2,7 +2,8 @@ var squabble = require("squabble").createParser(), smtp = require("smtp-protocol"), http = require("request"), - readFile = require("fs").readFileSync, + tlsfs = require("tlsfs"), + copy = require("objektify").copy, MailParser = require("mailparser").MailParser, args, tlsTokens, serverOpts = {}; @@ -36,23 +37,8 @@ if (args.named["--quiet"]) { } if (args.named["--tls"]) { - tlsTokens = args.named["--tls"].split(":"); - switch (tlsTokens.length) { - case 1: - serverOpts.pfx = readFile(tlsTokens.shift()); - break; - case 2: - serverOpts.cert = readFile(tlsTokens.shift()); - serverOpts.key = readFile(tlsTokens.shift()); - break; - case 3: - serverOpts.cert = readFile(tlsTokens.shift()); - serverOpts.key = readFile(tlsTokens.shift()); - serverOpts.ca = readFile(tlsTokens.shift()); - break; - default: - throw new Error("unrecognized --tls argument"); - } + tlsPaths = args.named["--tls"].split(":"); + copy(serverOpts, tlsfs.readCertsSync(tlsPaths)); } // create and start SMTP server