root-certs: move function out of root certs file.
This commit is contained in:
parent
5145272575
commit
3a3c546310
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue