From 69c6c3e790c539cb443400df77360b2576c603aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Tue, 12 Nov 2019 23:43:16 +0100 Subject: [PATCH 1/6] Add missing filenames for Node 12 imports --- src/core/operations/Lorenz.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/operations/Lorenz.mjs b/src/core/operations/Lorenz.mjs index b001823a..1b2bf682 100644 --- a/src/core/operations/Lorenz.mjs +++ b/src/core/operations/Lorenz.mjs @@ -6,8 +6,8 @@ * @license Apache-2.0 */ -import Operation from "../Operation"; -import OperationError from "../errors/OperationError"; +import Operation from "../Operation.mjs"; +import OperationError from "../errors/OperationError.mjs"; /** * Lorenz operation From cce84c3782ef4976a14895e882236fa012c1d87f Mon Sep 17 00:00:00 2001 From: n1474335 Date: Wed, 13 Nov 2019 17:59:16 +0000 Subject: [PATCH 2/6] Fixed bug in Base62 operations when using different alphabets --- src/core/operations/FromBase62.mjs | 17 ++++++++++++----- src/core/operations/ToBase62.mjs | 9 ++++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/core/operations/FromBase62.mjs b/src/core/operations/FromBase62.mjs index c2f54ec0..9e91f647 100644 --- a/src/core/operations/FromBase62.mjs +++ b/src/core/operations/FromBase62.mjs @@ -42,15 +42,22 @@ class FromBase62 extends Operation { */ run(input, args) { if (input.length < 1) return []; - const ALPHABET = Utils.expandAlphRange(args[0]).join(""); - const BN = BigNumber.clone({ ALPHABET }); + const alphabet = Utils.expandAlphRange(args[0]).join(""); + const BN62 = BigNumber.clone({ ALPHABET: alphabet }); - const re = new RegExp("[^" + ALPHABET.replace(/[[\]\\\-^$]/g, "\\$&") + "]", "g"); + const re = new RegExp("[^" + alphabet.replace(/[[\]\\\-^$]/g, "\\$&") + "]", "g"); input = input.replace(re, ""); - const number = new BN(input, 62); + // Read number in using Base62 alphabet + const number = new BN62(input, 62); + // Copy to new BigNumber object that uses the default alphabet + const normalized = new BigNumber(number); - return Utils.convertToByteArray(number.toString(16), "Hex"); + // Convert to hex and add leading 0 if required + let hex = normalized.toString(16); + if (hex.length % 2 !== 0) hex = "0" + hex; + + return Utils.convertToByteArray(hex, "Hex"); } } diff --git a/src/core/operations/ToBase62.mjs b/src/core/operations/ToBase62.mjs index c5d2f35e..a00d9275 100644 --- a/src/core/operations/ToBase62.mjs +++ b/src/core/operations/ToBase62.mjs @@ -44,12 +44,15 @@ class ToBase62 extends Operation { input = new Uint8Array(input); if (input.length < 1) return ""; - const ALPHABET = Utils.expandAlphRange(args[0]).join(""); - const BN = BigNumber.clone({ ALPHABET }); + const alphabet = Utils.expandAlphRange(args[0]).join(""); + const BN62 = BigNumber.clone({ ALPHABET: alphabet }); input = toHexFast(input).toUpperCase(); - const number = new BN(input, 16); + // Read number in as hex using normal alphabet + const normalized = new BigNumber(input, 16); + // Copy to BigNumber clone that uses the specified Base62 alphabet + const number = new BN62(normalized); return number.toString(62); } From 68e8a221ffda42ac6fd67a0385e86dc58d1b6f46 Mon Sep 17 00:00:00 2001 From: n1474335 Date: Wed, 13 Nov 2019 17:59:22 +0000 Subject: [PATCH 3/6] 9.11.3 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index ee98ae07..9b01b4c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cyberchef", - "version": "9.11.2", + "version": "9.11.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index eee26363..39c8d0c0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cyberchef", - "version": "9.11.2", + "version": "9.11.3", "description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.", "author": "n1474335 ", "homepage": "https://gchq.github.io/CyberChef", From 03f474096895c604cef7b584ff82735de64c9479 Mon Sep 17 00:00:00 2001 From: n1474335 Date: Wed, 13 Nov 2019 18:04:36 +0000 Subject: [PATCH 4/6] Tidied up consumeWhile and consumeUntil --- src/core/lib/Stream.mjs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/core/lib/Stream.mjs b/src/core/lib/Stream.mjs index da299b65..800d6b1a 100644 --- a/src/core/lib/Stream.mjs +++ b/src/core/lib/Stream.mjs @@ -156,7 +156,6 @@ export default class Stream { // val is an array - /** * Builds the skip forward table from the value to be searched. * @@ -173,9 +172,7 @@ export default class Stream { } const length = val.length; - const initial = val[length-1]; - this.position = length; // Get the skip table. @@ -183,7 +180,6 @@ export default class Stream { let found = true; while (this.position < this.length) { - // Until we hit the final element of val in the stream. while ((this.position < this.length) && (this.bytes[this.position++] !== initial)); @@ -191,7 +187,7 @@ export default class Stream { // Loop through the elements comparing them to val. for (let x = length-1; x >= 0; x--) { - if (this.bytes[this.position-length + x] !== val[x]) { + if (this.bytes[this.position - length + x] !== val[x]) { found = false; // If element is not equal to val's element then jump forward by the correct amount. @@ -208,7 +204,7 @@ export default class Stream { /** - * Consume bytes if it matches the supplied value. + * Consume bytes if they match the supplied value. * * @param {Number} val */ @@ -219,6 +215,7 @@ export default class Stream { } this.position++; } + this.bitPos = 0; } /** From a62a6c2aa4b72dd37cbd16136ced9e603f40707c Mon Sep 17 00:00:00 2001 From: n1474335 Date: Wed, 13 Nov 2019 18:05:31 +0000 Subject: [PATCH 5/6] 9.11.4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9b01b4c3..9005032d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cyberchef", - "version": "9.11.3", + "version": "9.11.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 39c8d0c0..8ec0426e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cyberchef", - "version": "9.11.3", + "version": "9.11.4", "description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.", "author": "n1474335 ", "homepage": "https://gchq.github.io/CyberChef", From 2205637ad684e1c0a49ee1fee87123d15ce84d2d Mon Sep 17 00:00:00 2001 From: n1474335 Date: Wed, 13 Nov 2019 18:06:39 +0000 Subject: [PATCH 6/6] 9.11.5 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9005032d..b3ac2a46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cyberchef", - "version": "9.11.4", + "version": "9.11.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8ec0426e..c8229636 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cyberchef", - "version": "9.11.4", + "version": "9.11.5", "description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.", "author": "n1474335 ", "homepage": "https://gchq.github.io/CyberChef",