Closed
Description
Version
v20.13.1
Platform
Linux lindell 6.9.3-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 31 May 2024 15:14:45 +0000 x86_64 GNU/Linux
Subsystem
node:crypto
What steps will reproduce the bug?
Reading the official scrypt docs, I see that the cost
parameter should be a power of 2.
Following the OWASP docs, I wanted to use 2 power 17 to feed the cost
parameter.
const { scryptSync, randomBytes } = require('node:crypto')
const secret = 'shhh'
const salt = randomBytes(16)
// throws RangeError: Invalid scrypt params, same with scrypt()
scryptSync(secret, salt, 64, {
blockSize: 8,
cost: 131072, // 2^17
parallelization: 1,
})
How often does it reproduce? Is there a required condition?
Always reproduce.
What is the expected behavior? Why is that the expected behavior?
Hash is correctly derived.
What do you see instead?
A RangeError
with the "Invalid scrypt params" message.
Additional information
No response