The scrypt password-based key derivation function with sync and cancellable async.
Overall
score
98%
{
"context": "This criteria evaluates how well the engineer leverages scrypt-js's asynchronous, state-machine-driven key derivation to implement non-blocking password hashing with progress tracking. The focus is on correct usage of the scrypt() function with its progress callback mechanism.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Uses scrypt() function",
"description": "Implementation imports and uses the scrypt() asynchronous function from scrypt-js (not syncScrypt) to perform key derivation",
"max_score": 25
},
{
"name": "Passes progress callback",
"description": "Implementation provides a progress callback function as the 7th parameter to scrypt() that receives progress values from 0 to 1",
"max_score": 25
},
{
"name": "Handles password encoding",
"description": "Implementation properly converts the string password parameter into a Uint8Array or Buffer with appropriate encoding before passing to scrypt()",
"max_score": 15
},
{
"name": "Correct parameter passing",
"description": "Implementation passes all six required scrypt parameters (password, salt, N, r, p, dkLen) in the correct order to the scrypt() function",
"max_score": 15
},
{
"name": "Returns Promise",
"description": "Implementation returns the Promise from scrypt() (or uses async/await), enabling asynchronous non-blocking execution",
"max_score": 10
},
{
"name": "Forwards progress values",
"description": "Implementation correctly forwards the progress values received from scrypt()'s internal state machine to the caller's progressCallback function",
"max_score": 10
}
]
}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