const Promise = require('bluebird'); const crypto = Promise.promisifyAll(require('crypto')); const argon = Promise.promisifyAll(require('argon2-ffi').argon2i); const Q = require('q'); const securePassword = (rawPassword) => { let toR = Q.defer(); crypto.randomBytes(16, (err, salt) => { if (err) { toR.reject(err); return; } argon.hash(rawPassword, salt, (err, hash) => { if (err) { toR.reject(err); return; } toR.resolve(hash); }); }); return toR.promise; }; module.exports.securePassword = securePassword;