* Constant time password DK compare
* Minor View update * Test module. Start work on module switching functionality. NYW!
This commit is contained in:
@@ -82,4 +82,6 @@ TextView.prototype.setText = function(text) {
|
||||
if(!this.multiLine && !this.dimens.width) {
|
||||
this.dimens.width = this.text.length;
|
||||
}
|
||||
|
||||
this.redraw();
|
||||
};
|
||||
|
||||
18
core/user.js
18
core/user.js
@@ -305,7 +305,23 @@ function authenticate(userName, password, client, cb) {
|
||||
if(err) {
|
||||
cb(false);
|
||||
} else {
|
||||
cb(passDk === propsDk);
|
||||
//
|
||||
// Use constant time comparison here for security feel-goods
|
||||
//
|
||||
var passDkBuf = new Buffer(passDk, 'hex');
|
||||
var propsDkBuf = new Buffer(propsDk, 'hex');
|
||||
|
||||
if(passDkBuf.length !== propsDkBuf.length) {
|
||||
cb(false);
|
||||
return;
|
||||
}
|
||||
|
||||
var c = 0;
|
||||
for(var i = 0; i < passDkBuf.length; i++) {
|
||||
c |= passDkBuf[i] ^ propsDkBuf[i];
|
||||
}
|
||||
|
||||
cb(0 === c);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user