mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
683 B
34 lines
683 B
module.exports = loadCAFile
|
|
|
|
var fs = require("fs")
|
|
|
|
function loadCAFile(cafilePath, cb) {
|
|
if (!cafilePath)
|
|
return process.nextTick(cb)
|
|
|
|
fs.readFile(cafilePath, "utf8", afterCARead.bind(this))
|
|
|
|
function afterCARead(er, cadata) {
|
|
|
|
if (er) {
|
|
// previous cafile no longer exists, so just continue on gracefully
|
|
if (er.code === 'ENOENT') return cb()
|
|
return cb(er)
|
|
}
|
|
|
|
var delim = "-----END CERTIFICATE-----"
|
|
var output
|
|
|
|
output = cadata
|
|
.split(delim)
|
|
.filter(function(xs) {
|
|
return !!xs.trim()
|
|
})
|
|
.map(function(xs) {
|
|
return xs.trimLeft() + delim
|
|
})
|
|
|
|
this.set("ca", output)
|
|
cb(null)
|
|
}
|
|
}
|
|
|