diff --git a/src/core/lib/Base64.mjs b/src/core/lib/Base64.mjs index dd4ab878..9e721bf6 100755 --- a/src/core/lib/Base64.mjs +++ b/src/core/lib/Base64.mjs @@ -81,6 +81,7 @@ export function fromBase64(data, alphabet="A-Za-z0-9+/=", returnType="string", r return returnType === "string" ? "" : []; } + alphabet = alphabet || "A-Za-z0-9+/="; alphabet = Utils.expandAlphRange(alphabet).join(""); const output = []; diff --git a/src/core/operations/ShowBase64Offsets.mjs b/src/core/operations/ShowBase64Offsets.mjs index 62b8b481..d028400d 100644 --- a/src/core/operations/ShowBase64Offsets.mjs +++ b/src/core/operations/ShowBase64Offsets.mjs @@ -36,6 +36,11 @@ class ShowBase64Offsets extends Operation { name: "Show variable chars and padding", type: "boolean", value: true + }, + { + name: "Input format", + type: "option", + value: ["Raw", "Base64"] } ]; } @@ -46,7 +51,11 @@ class ShowBase64Offsets extends Operation { * @returns {html} */ run(input, args) { - const [alphabet, showVariable] = args; + const [alphabet, showVariable, format] = args; + + if (format === "Base64") { + input = fromBase64(Utils.byteArrayToUtf8(input), null, "byteArray"); + } let offset0 = toBase64(input, alphabet), offset1 = toBase64([0].concat(input), alphabet),