0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-29 23:16:30 +01:00
nodejs/tools
Tobias Nießen 823d86c47c crypto: add key object API
This commit makes multiple important changes:

1. A new key object API is introduced. The KeyObject class itself is
   not exposed to users, instead, several new APIs can be used to
   construct key objects: createSecretKey, createPrivateKey and
   createPublicKey. The new API also allows to convert between
   different key formats, and even though the API itself is not
   compatible to the WebCrypto standard in any way, it makes
   interoperability much simpler.

2. Key objects can be used instead of the raw key material in all
   relevant crypto APIs.

3. The handling of asymmetric keys has been unified and greatly
   improved. Node.js now fully supports both PEM-encoded and
   DER-encoded public and private keys.

4. Conversions between buffers and strings have been moved to native
   code for sensitive data such as symmetric keys due to security
   considerations such as zeroing temporary buffers.

5. For compatibility with older versions of the crypto API, this
   change allows to specify Buffers and strings as the "passphrase"
   option when reading or writing an encoded key. Note that this
   can result in unexpected behavior if the password contains a
   null byte.

PR-URL: https://github.com/nodejs/node/pull/24234
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-12-24 14:50:16 +01:00
..
bootstrap
clang-format tools: add missing package-lock to clang-format 2018-08-25 17:09:59 +02:00
configure.d tools, icu: actually failover if there are multiple URLs 2018-10-24 08:27:19 -07:00
doc crypto: add key object API 2018-12-24 14:50:16 +01:00
eslint-rules tools: capitalize sentences 2018-12-10 17:07:18 +01:00
gyp build, tools, win: add .S files support to GYP 2018-11-29 11:09:03 +01:00
icu tools: prepare tools/icu/icutrim.py for Python 3 2018-12-10 08:37:54 -08:00
inspector_protocol inspector: add inspector_protocol as a direct dependency 2018-08-10 18:03:43 -07:00
jinja2 inspector: add inspector_protocol as a direct dependency 2018-08-10 18:03:43 -07:00
macos-installer
markupsafe inspector: add inspector_protocol as a direct dependency 2018-08-10 18:03:43 -07:00
msvs build,win: pack the install-tools scripts for dist 2018-12-05 18:58:30 -08:00
node_modules tools: update ESLint to 5.10.0 2018-12-10 08:47:26 -05:00
node-lint-md-cli-rollup tools: replace rollup with ncc 2018-12-05 14:02:17 -08:00
pip build: add lint-py which uses flake8 2018-10-24 17:19:28 -04:00
pkgsrc src,tools: use https://nodejs.org URL when possible. 2018-07-14 11:57:59 +02:00
rpm src,tools: use https://nodejs.org URL when possible. 2018-07-14 11:57:59 +02:00
.eslintrc.yaml
build-addons.js
certdata.txt tools: update certdata.txt 2018-12-21 15:54:41 +01:00
check_macros.py
check-imports.py
compress_json.py tools: prepare ./tools/compress_json.py for Python 3 2018-12-10 19:46:50 -08:00
cpplint.py benchmark,doc,lib,src,test,tools: fix typos 2018-10-09 16:53:12 +03:00
create_android_makefiles
create_expfile.sh
dcheck_macros.py test: do not lint macros files (again) 2018-12-11 12:16:40 +01:00
generate_code_cache.js src: always compile and store code cache for native modules 2018-12-18 18:02:11 +08:00
genv8constants.py tools: prepare tools/genv8constants.py for Python 3 2018-12-06 10:36:54 -08:00
getmoduleversion.py
getnodeversion.py tools: make getnodeversion.py python3-compatible 2018-07-19 19:19:30 +02:00
gyp_node.py tools: use print() function on both Python 2 and 3 2018-11-25 18:58:58 -05:00
install.py tools: prepare tools/install.py for Python 3 2018-12-06 10:30:04 +01:00
js2c.py src: remove code cache integrity check 2018-12-18 18:02:08 +08:00
license2rtf.js
license-builder.sh deps: introduce llhttp 2018-11-10 17:54:21 -05:00
lint-js.js benchmark,doc,lib,src,test,tools: fix typos 2018-10-09 16:53:12 +03:00
lint-md.js tools: replace rollup with ncc 2018-12-05 14:02:17 -08:00
lint-pr-commit-message.sh tools: don't use GH API for commit message checks 2018-11-30 23:09:41 -08:00
lsan_suppressions.txt
macos-firewall.sh
make-v8.sh build,tools: update make-v8.sh for ppc64le 2018-11-16 14:26:46 -05:00
mk-ca-bundle.pl
mkssldef.py
nodcheck_macros.py test: do not lint macros files (again) 2018-12-11 12:16:40 +01:00
osx-codesign.sh
osx-pkg-postinstall.sh
osx-productsign.sh
release.sh tools: only sign release if promotion successful 2018-11-30 21:23:01 -08:00
run-valgrind.py tools: use print() function on both Python 2 and 3 2018-11-25 18:58:58 -05:00
run-worker.js
sign.bat
specialize_node_d.py tools: prepare tools/specialize_node_d.py for Python 3 2018-12-06 22:45:08 -08:00
test-npm-package.js
test-v8.bat
test.py tools: prepare tools/testp.py for Python 3 2018-12-10 15:32:16 -08:00
update-authors.js tools: implement update-authors in JS 2018-09-14 18:58:25 +02:00
update-babel-eslint.sh tools: update dmn to 2.0.0 2018-09-06 13:06:54 -07:00
update-eslint.sh tools: update dmn to 2.0.0 2018-09-06 13:06:54 -07:00
utils.py