decrypt.js 650 Bytes
var ursa = require('ursa');
var fs = require('fs');

var decrypt = {};

decrypt.decrypter = false;

decrypt.whenOk = function (cb) {
  if (this.encrypter) {
    cb();
  } else {
    this.prepare(cb);
  }
};

decrypt.prepare = function (cb) {
  fs.readFile('config/ci_com.pem', function(err, data) {
    if (err) {
      throw err;
    }
    this.decrypter = ursa.createPrivateKey(data);
    cb();
  });
};

decrypt.preload = function(cb) {
  this.whenOk(cb);
};

decrypt.decrypt = function (string, cb) {
  this.whenOk(function() {
    cb(this.decrypter.decrypt(string, 'base64', 'utf8', ursa.RSA_PKCS1_PADDING));
  });
};

module.exports = decrypt;