diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-03-20 12:05:33 +0100 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-03-27 17:05:13 +0100 |
commit | 6c913fb0287fa7f823fcd0fbe7035bac3c4f75ec (patch) | |
tree | a75fc78511299cc824dcde6c71db46980c566146 /lib/internal/crypto | |
parent | 50a3fe20ead5fe9a77f2acd828f52754aa621406 (diff) | |
download | android-node-v8-6c913fb0287fa7f823fcd0fbe7035bac3c4f75ec.tar.gz android-node-v8-6c913fb0287fa7f823fcd0fbe7035bac3c4f75ec.tar.bz2 android-node-v8-6c913fb0287fa7f823fcd0fbe7035bac3c4f75ec.zip |
lib: remove return values from validation functions
This makes sure the validation functions do not cause any side
effects. Validation functions should ideally only validate the input
without any other effect. Since the input value must be known from
the callee, there is no reason to return the input value.
PR-URL: https://github.com/nodejs/node/pull/26809
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib/internal/crypto')
-rw-r--r-- | lib/internal/crypto/scrypt.js | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/lib/internal/crypto/scrypt.js b/lib/internal/crypto/scrypt.js index d364c13859..e3cc130c74 100644 --- a/lib/internal/crypto/scrypt.js +++ b/lib/internal/crypto/scrypt.js @@ -76,31 +76,42 @@ function check(password, salt, keylen, options) { password = validateArrayBufferView(password, 'password'); salt = validateArrayBufferView(salt, 'salt'); - keylen = validateUint32(keylen, 'keylen'); + validateUint32(keylen, 'keylen'); let { N, r, p, maxmem } = defaults; if (options && options !== defaults) { let has_N, has_r, has_p; - if (has_N = (options.N !== undefined)) - N = validateUint32(options.N, 'N'); + if (has_N = (options.N !== undefined)) { + validateUint32(options.N, 'N'); + N = options.N; + } if (options.cost !== undefined) { if (has_N) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); - N = validateUint32(options.cost, 'cost'); + validateUint32(options.cost, 'cost'); + N = options.cost; + } + if (has_r = (options.r !== undefined)) { + validateUint32(options.r, 'r'); + r = options.r; } - if (has_r = (options.r !== undefined)) - r = validateUint32(options.r, 'r'); if (options.blockSize !== undefined) { if (has_r) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); - r = validateUint32(options.blockSize, 'blockSize'); + validateUint32(options.blockSize, 'blockSize'); + r = options.blockSize; + } + if (has_p = (options.p !== undefined)) { + validateUint32(options.p, 'p'); + p = options.p; } - if (has_p = (options.p !== undefined)) - p = validateUint32(options.p, 'p'); if (options.parallelization !== undefined) { if (has_p) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); - p = validateUint32(options.parallelization, 'parallelization'); + validateUint32(options.parallelization, 'parallelization'); + p = options.parallelization; + } + if (options.maxmem !== undefined) { + validateUint32(options.maxmem, 'maxmem'); + maxmem = options.maxmem; } - if (options.maxmem !== undefined) - maxmem = validateUint32(options.maxmem, 'maxmem'); if (N === 0) N = defaults.N; if (r === 0) r = defaults.r; if (p === 0) p = defaults.p; |