mirror of
https://github.com/gchq/CyberChef
synced 2025-01-06 01:28:48 +00:00
Merge pull request #1763 from zb3/fix-base58
This commit is contained in:
commit
c46660a0d9
3 changed files with 28 additions and 10 deletions
|
@ -60,7 +60,7 @@ class FromBase58 extends Operation {
|
||||||
run(input, args) {
|
run(input, args) {
|
||||||
let alphabet = args[0] || ALPHABET_OPTIONS[0].value;
|
let alphabet = args[0] || ALPHABET_OPTIONS[0].value;
|
||||||
const removeNonAlphaChars = args[1] === undefined ? true : args[1],
|
const removeNonAlphaChars = args[1] === undefined ? true : args[1],
|
||||||
result = [0];
|
result = [];
|
||||||
|
|
||||||
alphabet = Utils.expandAlphRange(alphabet).join("");
|
alphabet = Utils.expandAlphRange(alphabet).join("");
|
||||||
|
|
||||||
|
@ -87,11 +87,9 @@ class FromBase58 extends Operation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let carry = result[0] * 58 + index;
|
let carry = index;
|
||||||
result[0] = carry & 0xFF;
|
|
||||||
carry = carry >> 8;
|
|
||||||
|
|
||||||
for (let i = 1; i < result.length; i++) {
|
for (let i = 0; i < result.length; i++) {
|
||||||
carry += result[i] * 58;
|
carry += result[i] * 58;
|
||||||
result[i] = carry & 0xFF;
|
result[i] = carry & 0xFF;
|
||||||
carry = carry >> 8;
|
carry = carry >> 8;
|
||||||
|
|
|
@ -43,7 +43,7 @@ class ToBase58 extends Operation {
|
||||||
run(input, args) {
|
run(input, args) {
|
||||||
input = new Uint8Array(input);
|
input = new Uint8Array(input);
|
||||||
let alphabet = args[0] || ALPHABET_OPTIONS[0].value,
|
let alphabet = args[0] || ALPHABET_OPTIONS[0].value,
|
||||||
result = [0];
|
result = [];
|
||||||
|
|
||||||
alphabet = Utils.expandAlphRange(alphabet).join("");
|
alphabet = Utils.expandAlphRange(alphabet).join("");
|
||||||
|
|
||||||
|
@ -60,11 +60,9 @@ class ToBase58 extends Operation {
|
||||||
}
|
}
|
||||||
|
|
||||||
input.forEach(function(b) {
|
input.forEach(function(b) {
|
||||||
let carry = (result[0] << 8) + b;
|
let carry = b;
|
||||||
result[0] = carry % 58;
|
|
||||||
carry = (carry / 58) | 0;
|
|
||||||
|
|
||||||
for (let i = 1; i < result.length; i++) {
|
for (let i = 0; i < result.length; i++) {
|
||||||
carry += result[i] << 8;
|
carry += result[i] << 8;
|
||||||
result[i] = carry % 58;
|
result[i] = carry % 58;
|
||||||
carry = (carry / 58) | 0;
|
carry = (carry / 58) | 0;
|
||||||
|
|
|
@ -53,6 +53,28 @@ TestRegister.addTests([
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "To Base58 all null",
|
||||||
|
input: "\0\0\0\0\0\0",
|
||||||
|
expectedOutput: "111111",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
op: "To Base58",
|
||||||
|
args: ["123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "From Base58 all null",
|
||||||
|
input: "111111",
|
||||||
|
expectedOutput: "\0\0\0\0\0\0",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
op: "From Base58",
|
||||||
|
args: ["123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "To Base58 with null prefix and suffix",
|
name: "To Base58 with null prefix and suffix",
|
||||||
input: "\0\0\0Hello\0\0\0",
|
input: "\0\0\0Hello\0\0\0",
|
||||||
|
|
Loading…
Reference in a new issue