diff options
author | Tobias Nießen <tniessen@tnie.de> | 2020-05-11 20:55:37 +0300 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2020-06-22 21:50:38 +0300 |
commit | 7b019fd3c9a1348857927587a84458f7e3449b69 (patch) | |
tree | e7a5bd0fd4c79d96f798e45cbdba9673f0d791d5 /doc/api/crypto.md | |
parent | 7f185ec3c417f66ce485084d06084f1438faa5af (diff) |
crypto: allow KeyObjects in postMessage
This change allows sharing KeyObjects between threads via postMessage.
The receiver acquires a new KeyObject and a new KeyObjectHandle, but
refers to the same KeyObjectData:
+-------------------+
| NativeKeyObject 1 | ------------------------------------------+
+-------------------+ |
^ |
extends |
| |
+-------------------+ +-------------------+ |
| KeyObject 1 (JS) | -> | KeyObjectHandle 1 | --------------+ |
+-------------------+ +-------------------+ | |
| |
| |
| |
| |
| |
+-------------------+ | |
| NativeKeyObject 2 | ------------------------------------+ | |
+-------------------+ | | |
^ | | |
extends | | |
| | | |
+-------------------+ +-------------------+ | | |
| KeyObject 2 (JS) | -> | KeyObjectHandle 2 | --------+ | | |
+-------------------+ +-------------------+ | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+-------------------+ | | | |
| NativeKeyObject 3 | ------------------------------+ | | | |
+-------------------+ | | | | |
^ | | | | |
extends | | | | |
| v v v v v
+-------------------+ +-------------------+ +---------------+
| KeyObject 3 (JS) | -> | KeyObjectHandle 3 | -> | KeyObjectData |
+-------------------+ +-------------------+ +---------------+
Co-authored-by: Anna Henningsen <anna@addaleax.net>
PR-URL: https://github.com/nodejs/node/pull/33360
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'doc/api/crypto.md')
-rw-r--r-- | doc/api/crypto.md | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/doc/api/crypto.md b/doc/api/crypto.md index 2e1f2981ee7..6439608cfd8 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -1214,6 +1214,10 @@ This can be called many times with new data as it is streamed. <!-- YAML added: v11.6.0 changes: + - version: REPLACEME + pr-url: https://github.com/nodejs/node/pull/33360 + description: Instances of this class can now be passed to worker threads + using `postMessage`. - version: v11.13.0 pr-url: https://github.com/nodejs/node/pull/26438 description: This class is now exported. @@ -1229,6 +1233,10 @@ keyword. Most applications should consider using the new `KeyObject` API instead of passing keys as strings or `Buffer`s due to improved security features. +`KeyObject` instances can be passed to other threads via [`postMessage()`][]. +The receiver obtains a cloned `KeyObject`, and the `KeyObject` does not need to +be listed in the `transferList` argument. + ### `keyObject.asymmetricKeyType` <!-- YAML added: v11.6.0 @@ -3518,6 +3526,7 @@ the `crypto`, `tls`, and `https` modules and are generally specific to OpenSSL. [`hmac.digest()`]: #crypto_hmac_digest_encoding [`hmac.update()`]: #crypto_hmac_update_data_inputencoding [`keyObject.export()`]: #crypto_keyobject_export_options +[`postMessage()`]: worker_threads.html#worker_threads_port_postmessage_value_transferlist [`sign.sign()`]: #crypto_sign_sign_privatekey_outputencoding [`sign.update()`]: #crypto_sign_update_data_inputencoding [`stream.Writable` options]: stream.html#stream_new_stream_writable_options |