12345678910111213141516171819202122232425262728293031 |
- // Original file created by Prof.Dr. Matthias Hopf
-
- /*
- * Crypto routines for Authorization
- */
-
- const crypto = require ("crypto");
-
- const defaultHash = "sha256";
- const defaultSaltLen = 16; // More (e.g. 256) for extra paranoia
-
- const mod = {
- encodePwd: function (entry, pwd) {
- return crypto.createHash (entry.hash) .update (entry.salt + ":" + pwd, 'utf8') .digest ('base64');
- },
- checkLocalAuth: function (entry, pwd) {
- if (!entry || !entry._id || !entry.hash || !entry.salt || !entry.hash || !entry.pwd ||
- !pwd || pwd === '')
- return false;
- return mod.encodePwd (entry, pwd) === entry.pwd;
- },
- fillLocalAuth: function (entry, pwd) {
- if (!entry.hash)
- entry.hash = defaultHash;
- entry.salt = crypto.randomBytes (defaultSaltLen) .toString('base64');
- entry.pwd = mod.encodePwd (entry, pwd);
- },
- }
-
-
- module.exports = mod;
|