diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2018-05-18 11:05:20 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2018-06-13 15:58:45 +0200 |
commit | 371103dae8b97264471e17de1989199ffcd2718e (patch) | |
tree | 4fb8517aa00fdbd0a6315719d04f2cd7211b753a /lib/internal/errors.js | |
parent | 58176e352c7b4fe6042fc31283a79d8de4cdb569 (diff) | |
download | android-node-v8-371103dae8b97264471e17de1989199ffcd2718e.tar.gz android-node-v8-371103dae8b97264471e17de1989199ffcd2718e.tar.bz2 android-node-v8-371103dae8b97264471e17de1989199ffcd2718e.zip |
crypto: add scrypt() and scryptSync() methods
Scrypt is a password-based key derivation function that is designed to
be expensive both computationally and memory-wise in order to make
brute-force attacks unrewarding.
OpenSSL has had support for the scrypt algorithm since v1.1.0. Add a
Node.js API modeled after `crypto.pbkdf2()` and `crypto.pbkdf2Sync()`.
Changes:
* Introduce helpers for copying buffers, collecting openssl errors, etc.
* Add new infrastructure for offloading crypto to a worker thread.
* Add a `AsyncWrap` JS class to simplify pbkdf2(), randomBytes() and
scrypt().
Fixes: https://github.com/nodejs/node/issues/8417
PR-URL: https://github.com/nodejs/node/pull/20816
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Diffstat (limited to 'lib/internal/errors.js')
-rw-r--r-- | lib/internal/errors.js | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 54201d0d1e..af844692d7 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -500,7 +500,8 @@ E('ERR_CRYPTO_HASH_FINALIZED', 'Digest already called', Error); E('ERR_CRYPTO_HASH_UPDATE_FAILED', 'Hash update failed', Error); E('ERR_CRYPTO_INVALID_DIGEST', 'Invalid digest: %s', TypeError); E('ERR_CRYPTO_INVALID_STATE', 'Invalid state for operation %s', Error); - +E('ERR_CRYPTO_SCRYPT_INVALID_PARAMETER', 'Invalid scrypt parameter', Error); +E('ERR_CRYPTO_SCRYPT_NOT_SUPPORTED', 'Scrypt algorithm not supported', Error); // Switch to TypeError. The current implementation does not seem right. E('ERR_CRYPTO_SIGN_KEY_REQUIRED', 'No key provided to sign', Error); E('ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH', |