summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/lib/config/load-cafile.js
blob: de8f61625a6b179a30deb2d8588bf67bda339b25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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)
  }
}