Fix MD2 rounds validation
Reject negative and fractional MD2 round counts before passing the option into the hash implementation. This prevents negative rounds from producing an all-zero digest while preserving zero and positive integer round counts. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
d735496641
commit
229fc61179
@ -6,6 +6,7 @@
|
||||
|
||||
import Operation from "../Operation.mjs";
|
||||
import {runHash} from "../lib/Hash.mjs";
|
||||
import OperationError from "../errors/OperationError.mjs";
|
||||
|
||||
/**
|
||||
* MD2 operation
|
||||
@ -40,7 +41,12 @@ class MD2 extends Operation {
|
||||
* @returns {string}
|
||||
*/
|
||||
run(input, args) {
|
||||
return runHash("md2", input, {rounds: args[0]});
|
||||
const rounds = args[0] ?? 18;
|
||||
|
||||
if (!Number.isInteger(rounds) || rounds < 0)
|
||||
throw new OperationError("Rounds must be a non-negative integer");
|
||||
|
||||
return runHash("md2", input, {rounds});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -19,6 +19,28 @@ TestRegister.addTests([
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "MD2 rejects negative rounds",
|
||||
input: "Hello, World!",
|
||||
expectedOutput: "Rounds must be a non-negative integer",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "MD2",
|
||||
"args": [-1]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "MD2 rejects fractional rounds",
|
||||
input: "Hello, World!",
|
||||
expectedOutput: "Rounds must be a non-negative integer",
|
||||
recipeConfig: [
|
||||
{
|
||||
"op": "MD2",
|
||||
"args": [1.2]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "MD4",
|
||||
input: "Hello, World!",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user