Fix no-var linting rule violations in src/core/crypto.js that couldn't be changed automatically by ESLint

This is done in a separate commit due to the required number of changes
so that reviewing is easier than in a plain-text diff in the commit
message.
This commit is contained in:
Tim van der Meij 2021-05-01 20:34:11 +02:00
parent 1f8b452354
commit b661cf2b80
No known key found for this signature in database
GPG Key ID: 8C3FD2925A5F2762

View File

@ -32,15 +32,13 @@ class ARCFourCipher {
this.a = 0;
this.b = 0;
const s = new Uint8Array(256);
let i,
j = 0,
tmp,
keyLength = key.length;
for (i = 0; i < 256; ++i) {
const keyLength = key.length;
for (let i = 0; i < 256; ++i) {
s[i] = i;
}
for (i = 0; i < 256; ++i) {
tmp = s[i];
for (let i = 0, j = 0; i < 256; ++i) {
const tmp = s[i];
j = (j + tmp + key[i % keyLength]) & 0xff;
s[i] = s[j];
s[j] = tmp;
@ -49,19 +47,16 @@ class ARCFourCipher {
}
encryptBlock(data) {
let i,
n = data.length,
tmp,
tmp2;
let a = this.a,
b = this.b,
s = this.s;
b = this.b;
const s = this.s;
const n = data.length;
const output = new Uint8Array(n);
for (i = 0; i < n; ++i) {
for (let i = 0; i < n; ++i) {
a = (a + 1) & 0xff;
tmp = s[a];
const tmp = s[a];
b = (b + tmp) & 0xff;
tmp2 = s[b];
const tmp2 = s[b];
s[a] = tmp2;
s[b] = tmp;
output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];
@ -110,12 +105,12 @@ const calculateMD5 = (function calculateMD5Closure() {
// pre-processing
const paddedLength = (length + 72) & ~63; // data + 9 extra bytes
const padded = new Uint8Array(paddedLength);
let i, j, n;
let i, j;
for (i = 0; i < length; ++i) {
padded[i] = data[offset++];
}
padded[i++] = 0x80;
n = paddedLength - 8;
const n = paddedLength - 8;
while (i < n) {
padded[i++] = 0;
}
@ -136,7 +131,7 @@ const calculateMD5 = (function calculateMD5Closure() {
(padded[i + 2] << 16) |
(padded[i + 3] << 24);
}
var a = h0,
let a = h0,
b = h1,
c = h2,
d = h3,
@ -328,12 +323,12 @@ const calculateSHA256 = (function calculateSHA256Closure() {
// pre-processing
const paddedLength = Math.ceil((length + 9) / 64) * 64;
const padded = new Uint8Array(paddedLength);
let i, j, n;
let i, j;
for (i = 0; i < length; ++i) {
padded[i] = data[offset++];
}
padded[i++] = 0x80;
n = paddedLength - 8;
const n = paddedLength - 8;
while (i < n) {
padded[i++] = 0;
}
@ -365,7 +360,7 @@ const calculateSHA256 = (function calculateSHA256Closure() {
w[j - 16]) |
0;
}
var a = h0,
let a = h0,
b = h1,
c = h2,
d = h3,
@ -548,12 +543,12 @@ const calculateSHA512 = (function calculateSHA512Closure() {
// pre-processing
const paddedLength = Math.ceil((length + 17) / 128) * 128;
const padded = new Uint8Array(paddedLength);
let i, j, n;
let i, j;
for (i = 0; i < length; ++i) {
padded[i] = data[offset++];
}
padded[i++] = 0x80;
n = paddedLength - 16;
const n = paddedLength - 16;
while (i < n) {
padded[i++] = 0;
}
@ -588,9 +583,9 @@ const calculateSHA512 = (function calculateSHA512Closure() {
h = new Word64(0, 0);
const t1 = new Word64(0, 0),
t2 = new Word64(0, 0);
let tmp1 = new Word64(0, 0),
tmp2 = new Word64(0, 0),
tmp3;
const tmp1 = new Word64(0, 0),
tmp2 = new Word64(0, 0);
let tmp3;
// for each 1024 bit block
for (i = 0; i < paddedLength; ) {
@ -1522,8 +1517,8 @@ const CipherTransformFactory = (function CipherTransformFactoryClosure() {
encryptMetadata
) {
const hashDataSize = 40 + ownerPassword.length + fileId.length;
let hashData = new Uint8Array(hashDataSize),
i = 0,
const hashData = new Uint8Array(hashDataSize);
let i = 0,
j,
n;
if (password) {
@ -1573,10 +1568,9 @@ const CipherTransformFactory = (function CipherTransformFactoryClosure() {
cipher = new ARCFourCipher(encryptionKey);
checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));
n = encryptionKey.length;
let derivedKey = new Uint8Array(n),
k;
const derivedKey = new Uint8Array(n);
for (j = 1; j <= 19; ++j) {
for (k = 0; k < n; ++k) {
for (let k = 0; k < n; ++k) {
derivedKey[k] = encryptionKey[k] ^ j;
}
cipher = new ARCFourCipher(derivedKey);
@ -1600,15 +1594,13 @@ const CipherTransformFactory = (function CipherTransformFactoryClosure() {
}
function decodeUserPassword(password, ownerPassword, revision, keyLength) {
let hashData = new Uint8Array(32),
i = 0,
j,
n;
n = Math.min(32, password.length);
const hashData = new Uint8Array(32);
let i = 0;
const n = Math.min(32, password.length);
for (; i < n; ++i) {
hashData[i] = password[i];
}
j = 0;
let j = 0;
while (i < 32) {
hashData[i++] = defaultPasswordBytes[j++];
}
@ -1623,10 +1615,9 @@ const CipherTransformFactory = (function CipherTransformFactoryClosure() {
let cipher, userPassword;
if (revision >= 3) {
userPassword = ownerPassword;
let derivedKey = new Uint8Array(keyLengthInBytes),
k;
const derivedKey = new Uint8Array(keyLengthInBytes);
for (j = 19; j >= 0; j--) {
for (k = 0; k < keyLengthInBytes; ++k) {
for (let k = 0; k < keyLengthInBytes; ++k) {
derivedKey[k] = hash[k] ^ j;
}
cipher = new ARCFourCipher(derivedKey);
@ -1642,10 +1633,10 @@ const CipherTransformFactory = (function CipherTransformFactoryClosure() {
const identityName = Name.get("Identity");
function buildObjectKey(num, gen, encryptionKey, isAes = false) {
let key = new Uint8Array(encryptionKey.length + 9),
i,
n;
for (i = 0, n = encryptionKey.length; i < n; ++i) {
const key = new Uint8Array(encryptionKey.length + 9);
const n = encryptionKey.length;
let i;
for (i = 0; i < n; ++i) {
key[i] = encryptionKey[i];
}
key[i++] = num & 0xff;