From 139d27aa7d620956f8f79b33c0b08d105f1646e0 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 8 Mar 2025 15:56:29 +0100 Subject: [PATCH] Simplify various `calculate...` methods a tiny bit While initializing the `padded` Uint8Arrays we're manually assigning zeros to some entries, which is completely unnecessary since that's the default value for a TypedArray, and instead we can just increment the index. --- src/core/calculate_md5.js | 8 +++----- src/core/calculate_sha256.js | 8 +++----- src/core/calculate_sha_other.js | 16 +++------------- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/core/calculate_md5.js b/src/core/calculate_md5.js index f5ec45f94..4f09b0a1b 100644 --- a/src/core/calculate_md5.js +++ b/src/core/calculate_md5.js @@ -64,17 +64,15 @@ function calculateMD5(data, offset, length) { } padded[i++] = 0x80; const n = paddedLength - 8; - while (i < n) { - padded[i++] = 0; + if (i < n) { + i = n; } padded[i++] = (length << 3) & 0xff; padded[i++] = (length >> 5) & 0xff; padded[i++] = (length >> 13) & 0xff; padded[i++] = (length >> 21) & 0xff; padded[i++] = (length >>> 29) & 0xff; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; + i += 3; const w = new Int32Array(16); const { k, r } = PARAMS; for (i = 0; i < paddedLength; ) { diff --git a/src/core/calculate_sha256.js b/src/core/calculate_sha256.js index 4a6ef652a..29af39d28 100644 --- a/src/core/calculate_sha256.js +++ b/src/core/calculate_sha256.js @@ -84,12 +84,10 @@ function calculateSHA256(data, offset, length) { } padded[i++] = 0x80; const n = paddedLength - 8; - while (i < n) { - padded[i++] = 0; + if (i < n) { + i = n; } - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; + i += 3; padded[i++] = (length >>> 29) & 0xff; padded[i++] = (length >> 21) & 0xff; padded[i++] = (length >> 13) & 0xff; diff --git a/src/core/calculate_sha_other.js b/src/core/calculate_sha_other.js index f5c74e0e4..b9badacaa 100644 --- a/src/core/calculate_sha_other.js +++ b/src/core/calculate_sha_other.js @@ -287,20 +287,10 @@ function calculateSHA512(data, offset, length, mode384 = false) { } padded[i++] = 0x80; const n = paddedLength - 16; - while (i < n) { - padded[i++] = 0; + if (i < n) { + i = n; } - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; + i += 11; padded[i++] = (length >>> 29) & 0xff; padded[i++] = (length >> 21) & 0xff; padded[i++] = (length >> 13) & 0xff;