Fix issues 2139, 2217 handling Auto delimiter in fromDecimal function used in HMAC recipe

This commit is contained in:
Allan Leary 2026-07-07 14:29:03 +01:00
parent 002ed911b1
commit 387c367049
2 changed files with 43 additions and 5 deletions

View File

@ -24,12 +24,17 @@ import Utils from "../Utils.mjs";
* fromDecimal("10:20:30", "Colon"); * fromDecimal("10:20:30", "Colon");
*/ */
export function fromDecimal(data, delim="Auto") { export function fromDecimal(data, delim="Auto") {
delim = Utils.charRep(delim); let byteStr;
const output = []; if (delim === "Auto") {
let byteStr = data.split(delim); byteStr = data.split(/[^\d-]+/).filter(v => v !== "");
if (byteStr[byteStr.length-1] === "") } else {
byteStr = byteStr.slice(0, byteStr.length-1); const delimStr = Utils.charRep(delim);
byteStr = data.split(delimStr);
if (byteStr[byteStr.length-1] === "")
byteStr = byteStr.slice(0, byteStr.length-1);
}
const output = [];
for (let i = 0; i < byteStr.length; i++) { for (let i = 0; i < byteStr.length; i++) {
output[i] = parseInt(byteStr[i], 10); output[i] = parseInt(byteStr[i], 10);
} }

View File

@ -722,6 +722,39 @@ TestRegister.addTests([
} }
] ]
}, },
{
name: "HMAC: Decimal key space-delimited matches Latin1 key (fromDecimal Auto delimiter regression)",
input: "Hello, World!",
expectedOutput: "9b641a008211bb0464a10899d5b37a24ab08ffcf839f5e74d17d99f856530957",
recipeConfig: [
{
"op": "HMAC",
"args": [{"option": "Decimal", "string": "65 65"}, "SHA256"]
}
]
},
{
name: "HMAC: Latin1 key matches space-delimited Decimal key (fromDecimal Auto delimiter regression)",
input: "Hello, World!",
expectedOutput: "9b641a008211bb0464a10899d5b37a24ab08ffcf839f5e74d17d99f856530957",
recipeConfig: [
{
"op": "HMAC",
"args": [{"option": "Latin1", "string": "AA"}, "SHA256"]
}
]
},
{
name: "HMAC: Decimal key comma-delimited matches Latin1 key (fromDecimal Auto delimiter regression)",
input: "Hello, World!",
expectedOutput: "9b641a008211bb0464a10899d5b37a24ab08ffcf839f5e74d17d99f856530957",
recipeConfig: [
{
"op": "HMAC",
"args": [{"option": "Decimal", "string": "65,65"}, "SHA256"]
}
]
},
{ {
name: "MD5: Complex bytes", name: "MD5: Complex bytes",
input: "10dc10e32010de10d010dc10d810d910d010e12e", input: "10dc10e32010de10d010dc10d810d910d010e12e",