The scrypt password-based key derivation function with sync and cancellable async.
Overall
score
98%
{
"context": "This criteria evaluates how well the engineer uses scrypt-js for batch password derivation with a focus on proper handling of typed arrays (Uint8Array) for memory-efficient operations, correct conversion between strings and byte arrays, and appropriate use of the scrypt API.",
"type": "weighted_checklist",
"checklist": [
{
"name": "scrypt function usage",
"description": "Uses the scrypt.scrypt() function (or named import scrypt as scryptAsync) to derive keys asynchronously with correct parameter signature",
"max_score": 25
},
{
"name": "Correct parameters",
"description": "Passes all required scrypt parameters correctly: password as ArrayLike<number>, salt as ArrayLike<number>, N=1024, r=8, p=1, dkLen=32",
"max_score": 20
},
{
"name": "Buffer/Uint8Array conversion",
"description": "Converts password and salt strings to Buffer or Uint8Array (or other ArrayLike<number>) format using Buffer.from() or equivalent typed array operations",
"max_score": 20
},
{
"name": "Uint8Array output handling",
"description": "Correctly handles the Uint8Array returned by scrypt.scrypt() and converts it to hexadecimal string format",
"max_score": 20
},
{
"name": "Array iteration",
"description": "Processes multiple passwords by iterating through the password array and calling scrypt for each, properly handling the async operations (e.g., using Promise.all or sequential await)",
"max_score": 15
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-scrypt-jsdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10