This repository has been archived on 2018-10-12. You can view files and clone it, but cannot push or open issues or pull requests.
node-task/node_modules/csurf/node_modules/csrf/node_modules/scmp/index.js

21 lines
543 B
JavaScript

/**
* Does a constant-time string comparison by not short-circuiting
* on first sign of non-equivalency.
*
* @param {String} a The first string to be compared against the second
* @param {String} b The second string to be compared against the first
* @return {Boolean}
*/
module.exports = function scmp(a, b) {
a = String(a);
b = String(b);
if (a.length !== b.length) {
return false;
}
var result = 0;
for (var i = 0; i < a.length; ++i) {
result |= a.charCodeAt(i) ^ b.charCodeAt(i);
}
return result === 0;
};