Update app.js

Use let instead of var.
pull/1612/head
Andrew Gregory 2022-03-23 16:36:42 +08:00 committed by GitHub
parent 05b75d2241
commit b3cc125a3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 21 deletions

View File

@ -22,8 +22,8 @@ if (settings.tokens) tokens = settings.tokens; /* v0.03+ settings */
function b32decode(seedstr) {
// RFC4648
var buf = 0, bitcount = 0, retstr = "";
for (var c of seedstr.toUpperCase()) {
let buf = 0, bitcount = 0, retstr = "";
for (let c of seedstr.toUpperCase()) {
if (c == '0') c = 'O';
if (c == '1') c = 'I';
if (c == '8') c = 'B';
@ -39,63 +39,62 @@ function b32decode(seedstr) {
}
}
}
var retbuf = new Uint8Array(retstr.length);
for (var i in retstr) {
let retbuf = new Uint8Array(retstr.length);
for (let i in retstr) {
retbuf[i] = retstr.charCodeAt(i);
}
return retbuf;
}
function hmac(key, message, algo) {
var a = algos[algo.toUpperCase()];
let a = algos[algo.toUpperCase()];
// RFC2104
if (key.length > a.blksz) {
key = a.sha(key);
}
var istr = new Uint8Array(a.blksz + message.length);
var ostr = new Uint8Array(a.blksz + a.retsz);
for (var i = 0; i < a.blksz; ++i) {
var c = (i < key.length) ? key[i] : 0;
let istr = new Uint8Array(a.blksz + message.length);
let ostr = new Uint8Array(a.blksz + a.retsz);
for (let i = 0; i < a.blksz; ++i) {
let c = (i < key.length) ? key[i] : 0;
istr[i] = c ^ 0x36;
ostr[i] = c ^ 0x5C;
}
istr.set(message, a.blksz);
ostr.set(a.sha(istr), a.blksz);
var ret = a.sha(ostr);
let ret = a.sha(ostr);
// RFC4226 dynamic truncation
var v = new DataView(ret, ret[ret.length - 1] & 0x0F, 4);
let v = new DataView(ret, ret[ret.length - 1] & 0x0F, 4);
return v.getUint32(0) & 0x7FFFFFFF;
}
function formatOtp(otp, digits) {
// add 0 padding
var ret = "" + otp % Math.pow(10, digits);
let ret = "" + otp % Math.pow(10, digits);
while (ret.length < digits) {
ret = "0" + ret;
}
// add a space after every 3rd or 4th digit
var re = (digits % 3 == 0 || (digits % 3 >= digits % 4 && digits % 4 != 0)) ? "" : ".";
let re = (digits % 3 == 0 || (digits % 3 >= digits % 4 && digits % 4 != 0)) ? "" : ".";
return ret.replace(new RegExp("(..." + re + ")", "g"), "$1 ").trim();
}
function hotp(token) {
var d = Date.now();
var tick, next;
let d = Date.now();
let tick, next;
if (token.period > 0) {
// RFC6238 - timed
var seconds = Math.floor(d / 1000);
tick = Math.floor(seconds / token.period);
tick = Math.floor(Math.floor(d / 1000) / token.period);
next = (tick + 1) * token.period * 1000;
} else {
// RFC4226 - counter
tick = -token.period;
next = d + 30000;
}
var msg = new Uint8Array(8);
var v = new DataView(msg.buffer);
let msg = new Uint8Array(8);
let v = new DataView(msg.buffer);
v.setUint32(0, tick >> 16 >> 16);
v.setUint32(4, tick & 0xFFFFFFFF);
var ret;
let ret;
try {
ret = hmac(b32decode(token.secret), msg, token.algorithm);
ret = formatOtp(ret, token.digits);
@ -117,7 +116,7 @@ var state = {
};
function sizeFont(id, txt, w) {
var sz = fontszCache[id];
let sz = fontszCache[id];
if (sz) {
g.setFont("Vector", sz);
} else {