(function(){ | |
// Shortcut | |
var util = Crypto.util; | |
// Convert n to unsigned 32-bit integer | |
util.u32 = function (n) { | |
return n >>> 0; | |
}; | |
// Unsigned 32-bit addition | |
util.add = function () { | |
var result = this.u32(arguments[0]); | |
for (var i = 1; i < arguments.length; i++) | |
result = this.u32(result + this.u32(arguments[i])); | |
return result; | |
}; | |
// Unsigned 32-bit multiplication | |
util.mult = function (m, n) { | |
return this.add((n & 0xFFFF0000) * m, | |
(n & 0x0000FFFF) * m); | |
}; | |
// Unsigned 32-bit greater than (>) comparison | |
util.gt = function (m, n) { | |
return this.u32(m) > this.u32(n); | |
}; | |
// Unsigned 32-bit less than (<) comparison | |
util.lt = function (m, n) { | |
return this.u32(m) < this.u32(n); | |
}; | |
})(); |