diff --git a/browser/root-certs b/browser/root-certs index 943bbe49c..6c5b9da1e 100755 --- a/browser/root-certs +++ b/browser/root-certs @@ -45,60 +45,8 @@ function getRootCerts(callback) { + ' return trusted;\n' + '}, {});\n' + '\n' - + 'function getTrusted(pem) {\n' - + ' pem = parsePEM(pem)[0].pem;\n' - + ' if (!Object.prototype.hasOwnProperty.call(trusted, pem)) return;\n' - + ' return trusted[pem];\n' - + '}\n' - + '\n' - + 'function getCert(name) {\n' - + ' name = name.replace(/^\s+|\s+$/g, "");\n' - + ' if (!Object.prototype.hasOwnProperty.call(certs, name)) return;\n' - + ' return certs[name];\n' - + '}\n' - + '\n' - + 'function parsePEM(pem) {\n' - + ' pem = pem + "";\n' - + ' var concatted = pem.trim().split(/-----BEGIN [^\\-\\r\\n]+-----/);\n' - + ' if (concatted.length > 2) {\n' - + ' return concatted.reduce(function(out, pem) {\n' - + ' if (!pem) return out;\n' - + ' pem = parsePEM(pem)[0].pem;\n' - + ' if (pem) out.push(pem);\n' - + ' return out;\n' - + ' }, []);\n' - + ' }\n' - + ' pem = pem.replace(/-----BEGIN [^\\-\\r\\n]+-----/, "");\n' - + ' pem = pem.replace(/-----END [^\\-\\r\\n]+-----/, "");\n' - + ' var parts = pem.trim().split(/(?:\\r?\\n){2,}/);\n' - + ' var headers = {};\n' - + ' if (parts.length > 1) {\n' - + ' headers = parts[0].trim().split(/[\\r\\n]/).reduce(function(out, line) {\n' - + ' var parts = line.split(/:[ \\t]+/);\n' - + ' var key = parts[0].trim().toLowerCase();\n' - + ' var value = (parts.slice(1).join("") || "").trim();\n' - + ' out[key] = value;\n' - + ' return out;\n' - + ' }, {});\n' - + ' pem = parts.slice(1).join("");\n' - + ' }\n' - + ' pem = pem.replace(/\\s+/g, "");\n' - +' var der = pem\n' - + ' ? new Buffer(pem, "base64")\n' - + ' : null;\n' - + ' return [{\n' - + ' headers: headers,\n' - + ' pem: pem,\n' - + ' der: der,\n' - + ' body: der || new Buffer([0])\n' - + ' }];\n' - + '}\n' - + '\n' + 'exports.certs = certs;\n' - + 'exports.trusted = trusted;\n' - + 'exports.getCert = getCert;\n' - + 'exports.getTrusted = getTrusted;\n'; - + 'exports.parsePEM = parsePEM;\n'; + + 'exports.trusted = trusted;\n'; return callback(null, body); }); } diff --git a/lib/common/PayPro.js b/lib/common/PayPro.js index ab187d598..6c096f1fd 100644 --- a/lib/common/PayPro.js +++ b/lib/common/PayPro.js @@ -409,6 +409,56 @@ PayPro.prototype._DERtoPEM = function(der, type) { + '\r\n-----END ' + type + '-----\r\n'; }; -PayPro.parsePEM = RootCerts.parsePEM; +PayPro.getTrusted = +RootCerts.getTrusted = function(pem) { + pem = RootCerts.parsePEM(pem)[0].pem; + if (!Object.prototype.hasOwnProperty.call(RootCerts.trusted, pem)) return; + return RootCerts.trusted[pem]; +}; + +PayPro.getCert = +RootCerts.getCert = function(name) { + name = name.replace(/^s+|s+$/g, ""); + if (!Object.prototype.hasOwnProperty.call(RootCerts.certs, name)) return; + return RootCerts.certs[name]; +}; + +PayPro.parsePEM = +RootCerts.parsePEM = function(pem) { + pem = pem + ""; + var concatted = pem.trim().split(/-----BEGIN [^\-\r\n]+-----/); + if (concatted.length > 2) { + return concatted.reduce(function(out, pem) { + if (!pem) return out; + pem = RootCerts.parsePEM(pem)[0].pem; + if (pem) out.push(pem); + return out; + }, []); + } + pem = pem.replace(/-----BEGIN [^\-\r\n]+-----/, ""); + pem = pem.replace(/-----END [^\-\r\n]+-----/, ""); + var parts = pem.trim().split(/(?:\r?\n){2,}/); + var headers = {}; + if (parts.length > 1) { + headers = parts[0].trim().split(/[\r\n]/).reduce(function(out, line) { + var parts = line.split(/:[ \t]+/); + var key = parts[0].trim().toLowerCase(); + var value = (parts.slice(1).join("") || "").trim(); + out[key] = value; + return out; + }, {}); + pem = parts.slice(1).join(""); + } + pem = pem.replace(/\s+/g, ""); + var der = pem + ? new Buffer(pem, "base64") + : null; + return [{ + headers: headers, + pem: pem, + der: der, + body: der || new Buffer([0]) + }]; +}; module.exports = PayPro; diff --git a/lib/common/RootCerts.js b/lib/common/RootCerts.js index ee2862025..e4818632e 100644 --- a/lib/common/RootCerts.js +++ b/lib/common/RootCerts.js @@ -3714,56 +3714,5 @@ var trusted = Object.keys(certs).reduce(function(trusted, key) { return trusted; }, {}); -function getTrusted(pem) { - pem = parsePEM(pem)[0].pem; - if (!Object.prototype.hasOwnProperty.call(trusted, pem)) return; - return trusted[pem]; -} - -function getCert(name) { - name = name.replace(/^s+|s+$/g, ""); - if (!Object.prototype.hasOwnProperty.call(certs, name)) return; - return certs[name]; -} - -function parsePEM(pem) { - pem = pem + ""; - var concatted = pem.trim().split(/-----BEGIN [^\-\r\n]+-----/); - if (concatted.length > 2) { - return concatted.reduce(function(out, pem) { - if (!pem) return out; - pem = parsePEM(pem)[0].pem; - if (pem) out.push(pem); - return out; - }, []); - } - pem = pem.replace(/-----BEGIN [^\-\r\n]+-----/, ""); - pem = pem.replace(/-----END [^\-\r\n]+-----/, ""); - var parts = pem.trim().split(/(?:\r?\n){2,}/); - var headers = {}; - if (parts.length > 1) { - headers = parts[0].trim().split(/[\r\n]/).reduce(function(out, line) { - var parts = line.split(/:[ \t]+/); - var key = parts[0].trim().toLowerCase(); - var value = (parts.slice(1).join("") || "").trim(); - out[key] = value; - return out; - }, {}); - pem = parts.slice(1).join(""); - } - pem = pem.replace(/\s+/g, ""); - var der = pem - ? new Buffer(pem, "base64") - : null; - return [{ - headers: headers, - pem: pem, - der: der, - body: der || new Buffer([0]) - }]; -} - exports.certs = certs; exports.trusted = trusted; -exports.getCert = getCert; -exports.getTrusted = getTrusted;