@encharm/cws 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bindings/cws_linux_108.node +0 -0
- package/dist/bindings/cws_linux_64.node +0 -0
- package/dist/bindings/cws_linux_72.node +0 -0
- package/dist/bindings/cws_linux_79.node +0 -0
- package/dist/bindings/cws_linux_83.node +0 -0
- package/dist/bindings/cws_linux_93.node +0 -0
- package/dist/bindings/cws_win32_64.node +0 -0
- package/dist/bindings/cws_win32_72.node +0 -0
- package/dist/bindings/cws_win32_79.node +0 -0
- package/dist/bindings/cws_win32_83.node +0 -0
- package/dist/bindings/cws_win32_93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +24 -2
- package/src/HTTPSocket.cpp +1 -1
- package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
- package/src/headers/18/aliased_struct-inl.h +54 -0
- package/src/headers/18/aliased_struct.h +63 -0
- package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/async_wrap.h +26 -2
- package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
- package/src/headers/18/base64.h +69 -0
- package/src/headers/{12 → 18}/base_object-inl.h +46 -25
- package/src/headers/{12 → 18}/base_object.h +82 -17
- package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
- package/src/headers/{12 → 18}/callback_queue.h +13 -5
- package/src/headers/18/cares_wrap.h +523 -0
- package/src/headers/{12 → 18}/connect_wrap.h +0 -0
- package/src/headers/{12 → 18}/connection_wrap.h +0 -0
- package/src/headers/18/crypto/crypto_aes.h +89 -0
- package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
- package/src/headers/18/crypto/crypto_cipher.h +291 -0
- package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
- package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
- package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
- package/src/headers/18/crypto/crypto_context.h +147 -0
- package/src/headers/18/crypto/crypto_dh.h +156 -0
- package/src/headers/18/crypto/crypto_dsa.h +77 -0
- package/src/headers/18/crypto/crypto_ec.h +170 -0
- package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
- package/src/headers/18/crypto/crypto_hash.h +89 -0
- package/src/headers/18/crypto/crypto_hkdf.h +65 -0
- package/src/headers/18/crypto/crypto_hmac.h +94 -0
- package/src/headers/18/crypto/crypto_keygen.h +305 -0
- package/src/headers/18/crypto/crypto_keys.h +420 -0
- package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
- package/src/headers/18/crypto/crypto_random.h +130 -0
- package/src/headers/18/crypto/crypto_rsa.h +141 -0
- package/src/headers/18/crypto/crypto_scrypt.h +87 -0
- package/src/headers/18/crypto/crypto_sig.h +168 -0
- package/src/headers/18/crypto/crypto_spkac.h +21 -0
- package/src/headers/18/crypto/crypto_timing.h +20 -0
- package/src/headers/{13/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
- package/src/headers/18/crypto/crypto_util.h +791 -0
- package/src/headers/18/crypto/crypto_x509.h +143 -0
- package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
- package/src/headers/{13 → 18}/debug_utils.h +7 -4
- package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
- package/src/headers/{12 → 18}/env-inl.h +397 -304
- package/src/headers/{12 → 18}/env.h +397 -172
- package/src/headers/{12 → 18}/handle_wrap.h +7 -3
- package/src/headers/18/histogram-inl.h +107 -0
- package/src/headers/18/histogram.h +239 -0
- package/src/headers/{13 → 18}/inspector_agent.h +4 -7
- package/src/headers/{12 → 18}/inspector_io.h +0 -0
- package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
- package/src/headers/{12 → 18}/inspector_socket.h +0 -0
- package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
- package/src/headers/18/js_native_api.h +571 -0
- package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
- package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
- package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
- package/src/headers/{12 → 18}/js_stream.h +0 -0
- package/src/headers/{12 → 18}/json_utils.h +0 -0
- package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
- package/src/headers/{13 → 18}/memory_tracker.h +0 -7
- package/src/headers/{13 → 18}/module_wrap.h +24 -7
- package/src/headers/{13 → 18}/node.h +329 -68
- package/src/headers/18/node_api.h +288 -0
- package/src/headers/18/node_api_internals.h +38 -0
- package/src/headers/{12 → 18}/node_api_types.h +12 -9
- package/src/headers/{12 → 18}/node_binding.h +0 -0
- package/src/headers/18/node_blob.h +191 -0
- package/src/headers/18/node_bob-inl.h +37 -0
- package/src/headers/18/node_bob.h +111 -0
- package/src/headers/{13 → 18}/node_buffer.h +0 -0
- package/src/headers/{13 → 18}/node_constants.h +5 -1
- package/src/headers/{12 → 18}/node_context_data.h +5 -0
- package/src/headers/{12 → 18}/node_contextify.h +37 -2
- package/src/headers/{10/node_win32_perfctr_provider.h → 18/node_crypto.h} +30 -31
- package/src/headers/{12 → 18}/node_dir.h +0 -0
- package/src/headers/{12 → 18}/node_dtrace.h +0 -0
- package/src/headers/{12 → 18}/node_errors.h +90 -24
- package/src/headers/18/node_external_reference.h +145 -0
- package/src/headers/{13 → 18}/node_file-inl.h +38 -21
- package/src/headers/{12 → 18}/node_file.h +74 -13
- package/src/headers/{13 → 18}/node_http2.h +365 -269
- package/src/headers/{12 → 18}/node_http2_state.h +40 -50
- package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
- package/src/headers/{13 → 18}/node_http_common.h +24 -20
- package/src/headers/{13 → 18}/node_i18n.h +2 -1
- package/src/headers/{12 → 18}/node_internals.h +39 -41
- package/src/headers/{13 → 18}/node_main_instance.h +15 -18
- package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
- package/src/headers/{12 → 18}/node_mem.h +1 -1
- package/src/headers/{13 → 18}/node_messaging.h +170 -23
- package/src/headers/{12 → 18}/node_metadata.h +17 -4
- package/src/headers/{12 → 18}/node_mutex.h +77 -1
- package/src/headers/{12 → 18}/node_native_module.h +11 -1
- package/src/headers/{13 → 18}/node_native_module_env.h +14 -8
- package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
- package/src/headers/{13 → 18}/node_options-inl.h +51 -21
- package/src/headers/{13 → 18}/node_options.h +46 -14
- package/src/headers/18/node_perf.h +168 -0
- package/src/headers/{12 → 18}/node_perf_common.h +16 -22
- package/src/headers/{12 → 18}/node_platform.h +21 -16
- package/src/headers/18/node_process-inl.h +26 -0
- package/src/headers/18/node_process.h +97 -0
- package/src/headers/{13 → 18}/node_report.h +2 -2
- package/src/headers/{13 → 18}/node_revert.h +10 -0
- package/src/headers/{12 → 18}/node_root_certs.h +439 -651
- package/src/headers/18/node_snapshot_builder.h +43 -0
- package/src/headers/18/node_snapshotable.h +130 -0
- package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
- package/src/headers/18/node_sockaddr.h +405 -0
- package/src/headers/{12 → 18}/node_stat_watcher.h +7 -1
- package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
- package/src/headers/{13 → 18}/node_url.h +18 -1
- package/src/headers/18/node_v8.h +41 -0
- package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
- package/src/headers/{13 → 18}/node_version.h +7 -7
- package/src/headers/{12 → 18}/node_wasi.h +0 -0
- package/src/headers/18/node_wasm_web_api.h +55 -0
- package/src/headers/{13 → 18}/node_watchdog.h +0 -0
- package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
- package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
- package/src/headers/{13 → 18}/node_worker.h +24 -17
- package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
- package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/req_wrap.h +1 -1
- package/src/headers/{12 → 18}/spawn_sync.h +0 -0
- package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
- package/src/headers/{13 → 18}/stream_base.h +29 -3
- package/src/headers/{13 → 18}/stream_pipe.h +8 -3
- package/src/headers/{12 → 18}/stream_wrap.h +4 -1
- package/src/headers/{13 → 18}/string_bytes.h +0 -7
- package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
- package/src/headers/{10 → 18}/string_decoder.h +0 -0
- package/src/headers/{13 → 18}/string_search.h +2 -2
- package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
- package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
- package/src/headers/18/timer_wrap-inl.h +32 -0
- package/src/headers/18/timer_wrap.h +85 -0
- package/src/headers/{13 → 18}/tracing/agent.h +1 -1
- package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
- package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
- package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
- package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
- package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
- package/src/headers/{13 → 18}/tty_wrap.h +2 -1
- package/src/headers/{13 → 18}/udp_wrap.h +5 -0
- package/src/headers/{13 → 18}/util-inl.h +69 -15
- package/src/headers/{13 → 18}/util.h +93 -31
- package/src/headers/18/v8-fast-api-calls.h +939 -0
- package/src/headers/{12 → 18}/v8abbr.h +2 -2
- package/src/headers/10/aliased_buffer.h +0 -241
- package/src/headers/10/async_wrap-inl.h +0 -106
- package/src/headers/10/async_wrap.h +0 -218
- package/src/headers/10/base64.h +0 -197
- package/src/headers/10/base_object-inl.h +0 -132
- package/src/headers/10/base_object.h +0 -115
- package/src/headers/10/connect_wrap.h +0 -28
- package/src/headers/10/connection_wrap.h +0 -30
- package/src/headers/10/debug_utils.h +0 -128
- package/src/headers/10/env-inl.h +0 -906
- package/src/headers/10/env.h +0 -1046
- package/src/headers/10/handle_wrap.h +0 -114
- package/src/headers/10/inspector_agent.h +0 -137
- package/src/headers/10/inspector_io.h +0 -97
- package/src/headers/10/inspector_socket.h +0 -59
- package/src/headers/10/inspector_socket_server.h +0 -104
- package/src/headers/10/js_stream.h +0 -57
- package/src/headers/10/memory_tracker-inl.h +0 -318
- package/src/headers/10/memory_tracker.h +0 -246
- package/src/headers/10/module_wrap.h +0 -100
- package/src/headers/10/node.h +0 -863
- package/src/headers/10/node_api.h +0 -752
- package/src/headers/10/node_api_types.h +0 -171
- package/src/headers/10/node_buffer.h +0 -90
- package/src/headers/10/node_code_cache.h +0 -17
- package/src/headers/10/node_constants.h +0 -74
- package/src/headers/10/node_context_data.h +0 -39
- package/src/headers/10/node_contextify.h +0 -141
- package/src/headers/10/node_counters.h +0 -59
- package/src/headers/10/node_crypto.h +0 -699
- package/src/headers/10/node_crypto_bio.h +0 -177
- package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
- package/src/headers/10/node_crypto_clienthello.h +0 -131
- package/src/headers/10/node_crypto_groups.h +0 -416
- package/src/headers/10/node_dtrace.h +0 -84
- package/src/headers/10/node_errors.h +0 -118
- package/src/headers/10/node_file.h +0 -373
- package/src/headers/10/node_http2.h +0 -1304
- package/src/headers/10/node_http2_state.h +0 -158
- package/src/headers/10/node_i18n.h +0 -69
- package/src/headers/10/node_internals.h +0 -952
- package/src/headers/10/node_javascript.h +0 -41
- package/src/headers/10/node_messaging.h +0 -219
- package/src/headers/10/node_mutex.h +0 -191
- package/src/headers/10/node_object_wrap.h +0 -130
- package/src/headers/10/node_options-inl.h +0 -444
- package/src/headers/10/node_options.h +0 -397
- package/src/headers/10/node_perf.h +0 -134
- package/src/headers/10/node_perf_common.h +0 -96
- package/src/headers/10/node_persistent.h +0 -30
- package/src/headers/10/node_platform.h +0 -170
- package/src/headers/10/node_revert.h +0 -75
- package/src/headers/10/node_root_certs.h +0 -3393
- package/src/headers/10/node_stat_watcher.h +0 -65
- package/src/headers/10/node_url.h +0 -193
- package/src/headers/10/node_version.h +0 -120
- package/src/headers/10/node_watchdog.h +0 -114
- package/src/headers/10/node_worker.h +0 -94
- package/src/headers/10/pipe_wrap.h +0 -76
- package/src/headers/10/req_wrap-inl.h +0 -166
- package/src/headers/10/req_wrap.h +0 -61
- package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
- package/src/headers/10/spawn_sync.h +0 -240
- package/src/headers/10/stream_base-inl.h +0 -458
- package/src/headers/10/stream_base.h +0 -378
- package/src/headers/10/stream_pipe.h +0 -72
- package/src/headers/10/stream_wrap.h +0 -130
- package/src/headers/10/string_bytes.h +0 -126
- package/src/headers/10/string_decoder-inl.h +0 -38
- package/src/headers/10/string_search.h +0 -620
- package/src/headers/10/tcp_wrap.h +0 -99
- package/src/headers/10/tls_wrap.h +0 -195
- package/src/headers/10/tracing/agent.h +0 -178
- package/src/headers/10/tracing/node_trace_buffer.h +0 -83
- package/src/headers/10/tracing/node_trace_writer.h +0 -75
- package/src/headers/10/tracing/trace_event.h +0 -706
- package/src/headers/10/tracing/trace_event_common.h +0 -1102
- package/src/headers/10/tracing/traced_value.h +0 -68
- package/src/headers/10/tty_wrap.h +0 -63
- package/src/headers/10/udp_wrap.h +0 -102
- package/src/headers/10/util-inl.h +0 -459
- package/src/headers/10/util.h +0 -508
- package/src/headers/10/v8abbr.h +0 -121
- package/src/headers/12/aliased_buffer.h +0 -263
- package/src/headers/12/debug_utils.h +0 -181
- package/src/headers/12/histogram-inl.h +0 -83
- package/src/headers/12/histogram.h +0 -98
- package/src/headers/12/http_parser_adaptor.h +0 -24
- package/src/headers/12/inspector_agent.h +0 -147
- package/src/headers/12/inspector_profiler.h +0 -137
- package/src/headers/12/js_native_api.h +0 -541
- package/src/headers/12/js_native_api_types.h +0 -139
- package/src/headers/12/memory_tracker-inl.h +0 -339
- package/src/headers/12/memory_tracker.h +0 -283
- package/src/headers/12/module_wrap.h +0 -99
- package/src/headers/12/node.h +0 -887
- package/src/headers/12/node_api.h +0 -239
- package/src/headers/12/node_buffer.h +0 -92
- package/src/headers/12/node_constants.h +0 -80
- package/src/headers/12/node_crypto.h +0 -800
- package/src/headers/12/node_crypto_bio.h +0 -195
- package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/12/node_crypto_clienthello.h +0 -132
- package/src/headers/12/node_file-inl.h +0 -289
- package/src/headers/12/node_http2.h +0 -1311
- package/src/headers/12/node_http_parser_impl.h +0 -994
- package/src/headers/12/node_i18n.h +0 -144
- package/src/headers/12/node_main_instance.h +0 -97
- package/src/headers/12/node_messaging.h +0 -227
- package/src/headers/12/node_native_module_env.h +0 -65
- package/src/headers/12/node_options-inl.h +0 -447
- package/src/headers/12/node_options.h +0 -479
- package/src/headers/12/node_perf.h +0 -181
- package/src/headers/12/node_process.h +0 -41
- package/src/headers/12/node_report.h +0 -47
- package/src/headers/12/node_revert.h +0 -78
- package/src/headers/12/node_sockaddr.h +0 -123
- package/src/headers/12/node_url.h +0 -188
- package/src/headers/12/node_version.h +0 -98
- package/src/headers/12/node_watchdog.h +0 -152
- package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/12/node_win32_etw_provider.h +0 -99
- package/src/headers/12/node_worker.h +0 -142
- package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
- package/src/headers/12/stream_base-inl.h +0 -323
- package/src/headers/12/stream_base.h +0 -431
- package/src/headers/12/stream_pipe.h +0 -72
- package/src/headers/12/string_bytes.h +0 -142
- package/src/headers/12/string_decoder.h +0 -50
- package/src/headers/12/string_search.h +0 -638
- package/src/headers/12/tls_wrap.h +0 -221
- package/src/headers/12/tracing/agent.h +0 -195
- package/src/headers/12/tracing/trace_event.h +0 -710
- package/src/headers/12/tty_wrap.h +0 -64
- package/src/headers/12/udp_wrap.h +0 -222
- package/src/headers/12/util-inl.h +0 -529
- package/src/headers/12/util.h +0 -765
- package/src/headers/13/async_wrap-inl.h +0 -94
- package/src/headers/13/async_wrap.h +0 -224
- package/src/headers/13/base64.h +0 -197
- package/src/headers/13/base_object-inl.h +0 -353
- package/src/headers/13/base_object.h +0 -229
- package/src/headers/13/connect_wrap.h +0 -26
- package/src/headers/13/connection_wrap.h +0 -30
- package/src/headers/13/debug_utils-inl.h +0 -223
- package/src/headers/13/diagnosticfilename-inl.h +0 -33
- package/src/headers/13/env-inl.h +0 -1293
- package/src/headers/13/env.h +0 -1469
- package/src/headers/13/handle_wrap.h +0 -117
- package/src/headers/13/histogram-inl.h +0 -83
- package/src/headers/13/histogram.h +0 -98
- package/src/headers/13/inspector_io.h +0 -78
- package/src/headers/13/inspector_socket.h +0 -60
- package/src/headers/13/inspector_socket_server.h +0 -110
- package/src/headers/13/js_native_api.h +0 -541
- package/src/headers/13/js_native_api_v8.h +0 -303
- package/src/headers/13/js_native_api_v8_internals.h +0 -38
- package/src/headers/13/js_stream.h +0 -52
- package/src/headers/13/json_utils.h +0 -160
- package/src/headers/13/node_api.h +0 -239
- package/src/headers/13/node_api_types.h +0 -44
- package/src/headers/13/node_binding.h +0 -99
- package/src/headers/13/node_context_data.h +0 -39
- package/src/headers/13/node_contextify.h +0 -161
- package/src/headers/13/node_crypto.h +0 -800
- package/src/headers/13/node_crypto_common.h +0 -138
- package/src/headers/13/node_crypto_groups.h +0 -415
- package/src/headers/13/node_dir.h +0 -52
- package/src/headers/13/node_dtrace.h +0 -86
- package/src/headers/13/node_errors.h +0 -210
- package/src/headers/13/node_file.h +0 -364
- package/src/headers/13/node_http2_state.h +0 -144
- package/src/headers/13/node_internals.h +0 -405
- package/src/headers/13/node_mem-inl.h +0 -112
- package/src/headers/13/node_mem.h +0 -41
- package/src/headers/13/node_metadata.h +0 -109
- package/src/headers/13/node_mutex.h +0 -247
- package/src/headers/13/node_native_module.h +0 -99
- package/src/headers/13/node_object_wrap.h +0 -132
- package/src/headers/13/node_perf.h +0 -181
- package/src/headers/13/node_perf_common.h +0 -97
- package/src/headers/13/node_platform.h +0 -190
- package/src/headers/13/node_process.h +0 -41
- package/src/headers/13/node_root_certs.h +0 -3424
- package/src/headers/13/node_sockaddr-inl.h +0 -170
- package/src/headers/13/node_sockaddr.h +0 -123
- package/src/headers/13/node_stat_watcher.h +0 -66
- package/src/headers/13/node_union_bytes.h +0 -103
- package/src/headers/13/node_v8_platform-inl.h +0 -184
- package/src/headers/13/node_wasi.h +0 -108
- package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/13/node_win32_etw_provider.h +0 -99
- package/src/headers/13/pipe_wrap.h +0 -78
- package/src/headers/13/req_wrap-inl.h +0 -170
- package/src/headers/13/req_wrap.h +0 -77
- package/src/headers/13/spawn_sync.h +0 -242
- package/src/headers/13/stream_wrap.h +0 -130
- package/src/headers/13/string_decoder-inl.h +0 -37
- package/src/headers/13/string_decoder.h +0 -50
- package/src/headers/13/tcp_wrap.h +0 -101
- package/src/headers/13/threadpoolwork-inl.h +0 -57
- package/src/headers/13/tracing/node_trace_buffer.h +0 -83
- package/src/headers/13/tracing/node_trace_writer.h +0 -75
- package/src/headers/13/tracing/trace_event_common.h +0 -1109
- package/src/headers/13/tracing/traced_value.h +0 -70
- package/src/headers/13/v8abbr.h +0 -124
|
File without changes
|
|
@@ -41,6 +41,9 @@
|
|
|
41
41
|
#define RSA_PSS_SALTLEN_AUTO -2
|
|
42
42
|
#endif
|
|
43
43
|
|
|
44
|
+
#if defined(NODE_OPENSSL_DEFAULT_CIPHER_LIST)
|
|
45
|
+
#define DEFAULT_CIPHER_LIST_CORE NODE_OPENSSL_DEFAULT_CIPHER_LIST
|
|
46
|
+
#else
|
|
44
47
|
// TLSv1.3 suites start with TLS_, and are the OpenSSL defaults, see:
|
|
45
48
|
// https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_ciphersuites.html
|
|
46
49
|
#define DEFAULT_CIPHER_LIST_CORE \
|
|
@@ -68,7 +71,8 @@
|
|
|
68
71
|
"!PSK:" \
|
|
69
72
|
"!SRP:" \
|
|
70
73
|
"!CAMELLIA"
|
|
71
|
-
#endif
|
|
74
|
+
#endif // NODE_OPENSSL_DEFAULT_CIPHER_LIST
|
|
75
|
+
#endif // HAVE_OPENSSL
|
|
72
76
|
|
|
73
77
|
namespace node {
|
|
74
78
|
|
|
@@ -25,11 +25,16 @@ namespace node {
|
|
|
25
25
|
#define NODE_CONTEXT_TAG 35
|
|
26
26
|
#endif
|
|
27
27
|
|
|
28
|
+
#ifndef NODE_BINDING_LIST
|
|
29
|
+
#define NODE_BINDING_LIST_INDEX 36
|
|
30
|
+
#endif
|
|
31
|
+
|
|
28
32
|
enum ContextEmbedderIndex {
|
|
29
33
|
kEnvironment = NODE_CONTEXT_EMBEDDER_DATA_INDEX,
|
|
30
34
|
kSandboxObject = NODE_CONTEXT_SANDBOX_OBJECT_INDEX,
|
|
31
35
|
kAllowWasmCodeGeneration = NODE_CONTEXT_ALLOW_WASM_CODE_GENERATION_INDEX,
|
|
32
36
|
kContextTag = NODE_CONTEXT_TAG,
|
|
37
|
+
kBindingListIndex = NODE_BINDING_LIST_INDEX
|
|
33
38
|
};
|
|
34
39
|
|
|
35
40
|
} // namespace node
|
|
@@ -8,13 +8,37 @@
|
|
|
8
8
|
#include "node_errors.h"
|
|
9
9
|
|
|
10
10
|
namespace node {
|
|
11
|
+
class ExternalReferenceRegistry;
|
|
12
|
+
|
|
11
13
|
namespace contextify {
|
|
12
14
|
|
|
15
|
+
class MicrotaskQueueWrap : public BaseObject {
|
|
16
|
+
public:
|
|
17
|
+
MicrotaskQueueWrap(Environment* env, v8::Local<v8::Object> obj);
|
|
18
|
+
|
|
19
|
+
const std::shared_ptr<v8::MicrotaskQueue>& microtask_queue() const;
|
|
20
|
+
|
|
21
|
+
static void Init(Environment* env, v8::Local<v8::Object> target);
|
|
22
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
23
|
+
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
24
|
+
|
|
25
|
+
// This could have methods for running the microtask queue, if we ever decide
|
|
26
|
+
// to make that fully customizable from userland.
|
|
27
|
+
|
|
28
|
+
SET_NO_MEMORY_INFO()
|
|
29
|
+
SET_MEMORY_INFO_NAME(MicrotaskQueueWrap)
|
|
30
|
+
SET_SELF_SIZE(MicrotaskQueueWrap)
|
|
31
|
+
|
|
32
|
+
private:
|
|
33
|
+
std::shared_ptr<v8::MicrotaskQueue> microtask_queue_;
|
|
34
|
+
};
|
|
35
|
+
|
|
13
36
|
struct ContextOptions {
|
|
14
37
|
v8::Local<v8::String> name;
|
|
15
38
|
v8::Local<v8::String> origin;
|
|
16
39
|
v8::Local<v8::Boolean> allow_code_gen_strings;
|
|
17
40
|
v8::Local<v8::Boolean> allow_code_gen_wasm;
|
|
41
|
+
BaseObjectPtr<MicrotaskQueueWrap> microtask_queue_wrap;
|
|
18
42
|
};
|
|
19
43
|
|
|
20
44
|
class ContextifyContext {
|
|
@@ -31,6 +55,7 @@ class ContextifyContext {
|
|
|
31
55
|
v8::Local<v8::Object> sandbox_obj,
|
|
32
56
|
const ContextOptions& options);
|
|
33
57
|
static void Init(Environment* env, v8::Local<v8::Object> target);
|
|
58
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
34
59
|
|
|
35
60
|
static ContextifyContext* ContextFromContextifiedSandbox(
|
|
36
61
|
Environment* env,
|
|
@@ -49,8 +74,13 @@ class ContextifyContext {
|
|
|
49
74
|
}
|
|
50
75
|
|
|
51
76
|
inline v8::Local<v8::Object> sandbox() const {
|
|
52
|
-
return
|
|
53
|
-
|
|
77
|
+
return context()->GetEmbedderData(ContextEmbedderIndex::kSandboxObject)
|
|
78
|
+
.As<v8::Object>();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
inline std::shared_ptr<v8::MicrotaskQueue> microtask_queue() const {
|
|
82
|
+
if (!microtask_queue_wrap_) return {};
|
|
83
|
+
return microtask_queue_wrap_->microtask_queue();
|
|
54
84
|
}
|
|
55
85
|
|
|
56
86
|
|
|
@@ -102,6 +132,7 @@ class ContextifyContext {
|
|
|
102
132
|
const v8::PropertyCallbackInfo<v8::Boolean>& args);
|
|
103
133
|
Environment* const env_;
|
|
104
134
|
v8::Global<v8::Context> context_;
|
|
135
|
+
BaseObjectPtr<MicrotaskQueueWrap> microtask_queue_wrap_;
|
|
105
136
|
};
|
|
106
137
|
|
|
107
138
|
class ContextifyScript : public BaseObject {
|
|
@@ -114,6 +145,7 @@ class ContextifyScript : public BaseObject {
|
|
|
114
145
|
~ContextifyScript() override;
|
|
115
146
|
|
|
116
147
|
static void Init(Environment* env, v8::Local<v8::Object> target);
|
|
148
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
117
149
|
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
118
150
|
static bool InstanceOf(Environment* env, const v8::Local<v8::Value>& args);
|
|
119
151
|
static void CreateCachedData(
|
|
@@ -125,6 +157,7 @@ class ContextifyScript : public BaseObject {
|
|
|
125
157
|
const bool display_errors,
|
|
126
158
|
const bool break_on_sigint,
|
|
127
159
|
const bool break_on_first_line,
|
|
160
|
+
std::shared_ptr<v8::MicrotaskQueue> microtask_queue,
|
|
128
161
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
129
162
|
|
|
130
163
|
inline uint32_t id() { return id_; }
|
|
@@ -146,6 +179,8 @@ class CompiledFnEntry final : public BaseObject {
|
|
|
146
179
|
v8::Local<v8::ScriptOrModule> script);
|
|
147
180
|
~CompiledFnEntry();
|
|
148
181
|
|
|
182
|
+
bool IsNotIndicativeOfMemoryLeakAtExit() const override { return true; }
|
|
183
|
+
|
|
149
184
|
private:
|
|
150
185
|
uint32_t id_;
|
|
151
186
|
v8::Global<v8::ScriptOrModule> script_;
|
|
@@ -19,40 +19,39 @@
|
|
|
19
19
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
20
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
21
|
|
|
22
|
-
#ifndef
|
|
23
|
-
#define
|
|
22
|
+
#ifndef SRC_NODE_CRYPTO_H_
|
|
23
|
+
#define SRC_NODE_CRYPTO_H_
|
|
24
24
|
|
|
25
25
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
} // namespace node
|
|
27
|
+
// All of the crypto definitions previously contained in this header
|
|
28
|
+
// have been split across multiple headers in src/crypto. This header
|
|
29
|
+
// remains for convenience for any code that still imports it. New
|
|
30
|
+
// code should include the relevant src/crypto headers directly.
|
|
31
|
+
#include "crypto/crypto_aes.h"
|
|
32
|
+
#include "crypto/crypto_bio.h"
|
|
33
|
+
#include "crypto/crypto_cipher.h"
|
|
34
|
+
#include "crypto/crypto_context.h"
|
|
35
|
+
#include "crypto/crypto_dh.h"
|
|
36
|
+
#include "crypto/crypto_dsa.h"
|
|
37
|
+
#include "crypto/crypto_ec.h"
|
|
38
|
+
#include "crypto/crypto_groups.h"
|
|
39
|
+
#include "crypto/crypto_hash.h"
|
|
40
|
+
#include "crypto/crypto_hkdf.h"
|
|
41
|
+
#include "crypto/crypto_hmac.h"
|
|
42
|
+
#include "crypto/crypto_keygen.h"
|
|
43
|
+
#include "crypto/crypto_keys.h"
|
|
44
|
+
#include "crypto/crypto_pbkdf2.h"
|
|
45
|
+
#include "crypto/crypto_random.h"
|
|
46
|
+
#include "crypto/crypto_rsa.h"
|
|
47
|
+
#include "crypto/crypto_scrypt.h"
|
|
48
|
+
#include "crypto/crypto_sig.h"
|
|
49
|
+
#include "crypto/crypto_spkac.h"
|
|
50
|
+
#include "crypto/crypto_tls.h"
|
|
51
|
+
#include "crypto/crypto_timing.h"
|
|
52
|
+
#include "crypto/crypto_util.h"
|
|
53
|
+
#include "crypto/crypto_x509.h"
|
|
55
54
|
|
|
56
55
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
57
56
|
|
|
58
|
-
#endif //
|
|
57
|
+
#endif // SRC_NODE_CRYPTO_H_
|
|
File without changes
|
|
File without changes
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
5
|
|
|
6
|
+
#include "debug_utils-inl.h"
|
|
6
7
|
#include "env.h"
|
|
7
8
|
#include "v8.h"
|
|
8
9
|
|
|
@@ -31,18 +32,46 @@ void OnFatalError(const char* location, const char* message);
|
|
|
31
32
|
V(ERR_BUFFER_CONTEXT_NOT_AVAILABLE, Error) \
|
|
32
33
|
V(ERR_BUFFER_OUT_OF_BOUNDS, RangeError) \
|
|
33
34
|
V(ERR_BUFFER_TOO_LARGE, Error) \
|
|
35
|
+
V(ERR_CLOSED_MESSAGE_PORT, Error) \
|
|
34
36
|
V(ERR_CONSTRUCT_CALL_REQUIRED, TypeError) \
|
|
35
37
|
V(ERR_CONSTRUCT_CALL_INVALID, TypeError) \
|
|
38
|
+
V(ERR_CRYPTO_INITIALIZATION_FAILED, Error) \
|
|
39
|
+
V(ERR_CRYPTO_INVALID_AUTH_TAG, TypeError) \
|
|
40
|
+
V(ERR_CRYPTO_INVALID_COUNTER, TypeError) \
|
|
41
|
+
V(ERR_CRYPTO_INVALID_CURVE, TypeError) \
|
|
42
|
+
V(ERR_CRYPTO_INVALID_DIGEST, TypeError) \
|
|
43
|
+
V(ERR_CRYPTO_INVALID_IV, TypeError) \
|
|
44
|
+
V(ERR_CRYPTO_INVALID_JWK, TypeError) \
|
|
45
|
+
V(ERR_CRYPTO_INVALID_KEYLEN, RangeError) \
|
|
46
|
+
V(ERR_CRYPTO_INVALID_KEYPAIR, RangeError) \
|
|
47
|
+
V(ERR_CRYPTO_INVALID_KEYTYPE, RangeError) \
|
|
48
|
+
V(ERR_CRYPTO_INVALID_MESSAGELEN, RangeError) \
|
|
49
|
+
V(ERR_CRYPTO_INVALID_SCRYPT_PARAMS, RangeError) \
|
|
50
|
+
V(ERR_CRYPTO_INVALID_STATE, Error) \
|
|
51
|
+
V(ERR_CRYPTO_INVALID_TAG_LENGTH, RangeError) \
|
|
52
|
+
V(ERR_CRYPTO_JWK_UNSUPPORTED_CURVE, Error) \
|
|
53
|
+
V(ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE, Error) \
|
|
54
|
+
V(ERR_CRYPTO_OPERATION_FAILED, Error) \
|
|
55
|
+
V(ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH, RangeError) \
|
|
36
56
|
V(ERR_CRYPTO_UNKNOWN_CIPHER, Error) \
|
|
37
57
|
V(ERR_CRYPTO_UNKNOWN_DH_GROUP, Error) \
|
|
58
|
+
V(ERR_CRYPTO_UNSUPPORTED_OPERATION, Error) \
|
|
59
|
+
V(ERR_CRYPTO_JOB_INIT_FAILED, Error) \
|
|
60
|
+
V(ERR_DLOPEN_DISABLED, Error) \
|
|
61
|
+
V(ERR_DLOPEN_FAILED, Error) \
|
|
38
62
|
V(ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE, Error) \
|
|
63
|
+
V(ERR_INVALID_ADDRESS, Error) \
|
|
39
64
|
V(ERR_INVALID_ARG_VALUE, TypeError) \
|
|
40
65
|
V(ERR_OSSL_EVP_INVALID_DIGEST, Error) \
|
|
41
66
|
V(ERR_INVALID_ARG_TYPE, TypeError) \
|
|
67
|
+
V(ERR_INVALID_OBJECT_DEFINE_PROPERTY, TypeError) \
|
|
68
|
+
V(ERR_INVALID_MODULE, Error) \
|
|
69
|
+
V(ERR_INVALID_THIS, TypeError) \
|
|
42
70
|
V(ERR_INVALID_TRANSFER_OBJECT, TypeError) \
|
|
43
71
|
V(ERR_MEMORY_ALLOCATION_FAILED, Error) \
|
|
72
|
+
V(ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE, Error) \
|
|
44
73
|
V(ERR_MISSING_ARGS, TypeError) \
|
|
45
|
-
V(
|
|
74
|
+
V(ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST, TypeError) \
|
|
46
75
|
V(ERR_MISSING_PASSPHRASE, TypeError) \
|
|
47
76
|
V(ERR_MISSING_PLATFORM_FOR_WORKER, Error) \
|
|
48
77
|
V(ERR_NON_CONTEXT_AWARE_DISABLED, Error) \
|
|
@@ -51,32 +80,42 @@ void OnFatalError(const char* location, const char* message);
|
|
|
51
80
|
V(ERR_SCRIPT_EXECUTION_TIMEOUT, Error) \
|
|
52
81
|
V(ERR_STRING_TOO_LONG, Error) \
|
|
53
82
|
V(ERR_TLS_INVALID_PROTOCOL_METHOD, TypeError) \
|
|
54
|
-
V(ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER, TypeError) \
|
|
55
83
|
V(ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED, Error) \
|
|
56
84
|
V(ERR_VM_MODULE_CACHED_DATA_REJECTED, Error) \
|
|
85
|
+
V(ERR_VM_MODULE_LINK_FAILURE, Error) \
|
|
57
86
|
V(ERR_WASI_NOT_STARTED, Error) \
|
|
58
87
|
V(ERR_WORKER_INIT_FAILED, Error) \
|
|
59
88
|
V(ERR_PROTO_ACCESS, Error)
|
|
60
89
|
|
|
61
|
-
#define V(code, type)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
v8::Local<v8::
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
e
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
90
|
+
#define V(code, type) \
|
|
91
|
+
template <typename... Args> \
|
|
92
|
+
inline v8::Local<v8::Value> code( \
|
|
93
|
+
v8::Isolate* isolate, const char* format, Args&&... args) { \
|
|
94
|
+
std::string message = SPrintF(format, std::forward<Args>(args)...); \
|
|
95
|
+
v8::Local<v8::String> js_code = OneByteString(isolate, #code); \
|
|
96
|
+
v8::Local<v8::String> js_msg = \
|
|
97
|
+
OneByteString(isolate, message.c_str(), message.length()); \
|
|
98
|
+
v8::Local<v8::Object> e = v8::Exception::type(js_msg) \
|
|
99
|
+
->ToObject(isolate->GetCurrentContext()) \
|
|
100
|
+
.ToLocalChecked(); \
|
|
101
|
+
e->Set(isolate->GetCurrentContext(), \
|
|
102
|
+
OneByteString(isolate, "code"), \
|
|
103
|
+
js_code) \
|
|
104
|
+
.Check(); \
|
|
105
|
+
return e; \
|
|
106
|
+
} \
|
|
107
|
+
template <typename... Args> \
|
|
108
|
+
inline void THROW_##code( \
|
|
109
|
+
v8::Isolate* isolate, const char* format, Args&&... args) { \
|
|
110
|
+
isolate->ThrowException( \
|
|
111
|
+
code(isolate, format, std::forward<Args>(args)...)); \
|
|
112
|
+
} \
|
|
113
|
+
template <typename... Args> \
|
|
114
|
+
inline void THROW_##code( \
|
|
115
|
+
Environment* env, const char* format, Args&&... args) { \
|
|
116
|
+
THROW_##code(env->isolate(), format, std::forward<Args>(args)...); \
|
|
78
117
|
}
|
|
79
|
-
|
|
118
|
+
ERRORS_WITH_CODE(V)
|
|
80
119
|
#undef V
|
|
81
120
|
|
|
82
121
|
// Errors with predefined static messages
|
|
@@ -84,17 +123,46 @@ void OnFatalError(const char* location, const char* message);
|
|
|
84
123
|
#define PREDEFINED_ERROR_MESSAGES(V) \
|
|
85
124
|
V(ERR_BUFFER_CONTEXT_NOT_AVAILABLE, \
|
|
86
125
|
"Buffer is not available for the current Context") \
|
|
126
|
+
V(ERR_CLOSED_MESSAGE_PORT, "Cannot send data on closed MessagePort") \
|
|
87
127
|
V(ERR_CONSTRUCT_CALL_INVALID, "Constructor cannot be called") \
|
|
88
128
|
V(ERR_CONSTRUCT_CALL_REQUIRED, "Cannot call constructor without `new`") \
|
|
129
|
+
V(ERR_CRYPTO_INITIALIZATION_FAILED, "Initialization failed") \
|
|
130
|
+
V(ERR_CRYPTO_INVALID_AUTH_TAG, "Invalid authentication tag") \
|
|
131
|
+
V(ERR_CRYPTO_INVALID_COUNTER, "Invalid counter") \
|
|
132
|
+
V(ERR_CRYPTO_INVALID_CURVE, "Invalid EC curve name") \
|
|
133
|
+
V(ERR_CRYPTO_INVALID_DIGEST, "Invalid digest") \
|
|
134
|
+
V(ERR_CRYPTO_INVALID_IV, "Invalid initialization vector") \
|
|
135
|
+
V(ERR_CRYPTO_INVALID_JWK, "Invalid JWK format") \
|
|
136
|
+
V(ERR_CRYPTO_INVALID_KEYLEN, "Invalid key length") \
|
|
137
|
+
V(ERR_CRYPTO_INVALID_KEYPAIR, "Invalid key pair") \
|
|
138
|
+
V(ERR_CRYPTO_INVALID_KEYTYPE, "Invalid key type") \
|
|
139
|
+
V(ERR_CRYPTO_INVALID_MESSAGELEN, "Invalid message length") \
|
|
140
|
+
V(ERR_CRYPTO_INVALID_SCRYPT_PARAMS, "Invalid scrypt params") \
|
|
141
|
+
V(ERR_CRYPTO_INVALID_STATE, "Invalid state") \
|
|
142
|
+
V(ERR_CRYPTO_INVALID_TAG_LENGTH, "Invalid taglength") \
|
|
143
|
+
V(ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE, "Unsupported JWK Key Type.") \
|
|
144
|
+
V(ERR_CRYPTO_OPERATION_FAILED, "Operation failed") \
|
|
145
|
+
V(ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH, \
|
|
146
|
+
"Input buffers must have the same byte length") \
|
|
89
147
|
V(ERR_CRYPTO_UNKNOWN_CIPHER, "Unknown cipher") \
|
|
90
148
|
V(ERR_CRYPTO_UNKNOWN_DH_GROUP, "Unknown DH group") \
|
|
149
|
+
V(ERR_CRYPTO_UNSUPPORTED_OPERATION, "Unsupported crypto operation") \
|
|
150
|
+
V(ERR_CRYPTO_JOB_INIT_FAILED, "Failed to initialize crypto job config") \
|
|
151
|
+
V(ERR_DLOPEN_FAILED, "DLOpen failed") \
|
|
91
152
|
V(ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE, \
|
|
92
153
|
"Context not associated with Node.js environment") \
|
|
154
|
+
V(ERR_INVALID_ADDRESS, "Invalid socket address") \
|
|
155
|
+
V(ERR_INVALID_MODULE, "No such module") \
|
|
156
|
+
V(ERR_INVALID_THIS, "Value of \"this\" is the wrong type") \
|
|
93
157
|
V(ERR_INVALID_TRANSFER_OBJECT, "Found invalid object in transferList") \
|
|
94
158
|
V(ERR_MEMORY_ALLOCATION_FAILED, "Failed to allocate memory") \
|
|
95
159
|
V(ERR_OSSL_EVP_INVALID_DIGEST, "Invalid digest used") \
|
|
96
|
-
V(
|
|
97
|
-
"
|
|
160
|
+
V(ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE, \
|
|
161
|
+
"A message object could not be deserialized successfully in the target " \
|
|
162
|
+
"vm.Context") \
|
|
163
|
+
V(ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST, \
|
|
164
|
+
"Object that needs transfer was found in message but not listed " \
|
|
165
|
+
"in transferList") \
|
|
98
166
|
V(ERR_MISSING_PLATFORM_FOR_WORKER, \
|
|
99
167
|
"The V8 platform used by this instance of Node does not support " \
|
|
100
168
|
"creating Workers") \
|
|
@@ -102,8 +170,6 @@ void OnFatalError(const char* location, const char* message);
|
|
|
102
170
|
"Loading non context-aware native modules has been disabled") \
|
|
103
171
|
V(ERR_SCRIPT_EXECUTION_INTERRUPTED, \
|
|
104
172
|
"Script execution was interrupted by `SIGINT`") \
|
|
105
|
-
V(ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER, \
|
|
106
|
-
"Cannot serialize externalized SharedArrayBuffer") \
|
|
107
173
|
V(ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED, "Failed to set PSK identity hint") \
|
|
108
174
|
V(ERR_WASI_NOT_STARTED, "wasi.start() has not been called") \
|
|
109
175
|
V(ERR_WORKER_INIT_FAILED, "Worker initialization failure") \
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
#ifndef SRC_NODE_EXTERNAL_REFERENCE_H_
|
|
2
|
+
#define SRC_NODE_EXTERNAL_REFERENCE_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <cinttypes>
|
|
7
|
+
#include <vector>
|
|
8
|
+
#include "v8-fast-api-calls.h"
|
|
9
|
+
#include "v8.h"
|
|
10
|
+
|
|
11
|
+
namespace node {
|
|
12
|
+
|
|
13
|
+
using CFunctionCallback = void (*)(v8::Local<v8::Value> receiver);
|
|
14
|
+
|
|
15
|
+
// This class manages the external references from the V8 heap
|
|
16
|
+
// to the C++ addresses in Node.js.
|
|
17
|
+
class ExternalReferenceRegistry {
|
|
18
|
+
public:
|
|
19
|
+
ExternalReferenceRegistry();
|
|
20
|
+
|
|
21
|
+
#define ALLOWED_EXTERNAL_REFERENCE_TYPES(V) \
|
|
22
|
+
V(CFunctionCallback) \
|
|
23
|
+
V(const v8::CFunctionInfo*) \
|
|
24
|
+
V(v8::FunctionCallback) \
|
|
25
|
+
V(v8::AccessorGetterCallback) \
|
|
26
|
+
V(v8::AccessorSetterCallback) \
|
|
27
|
+
V(v8::AccessorNameGetterCallback) \
|
|
28
|
+
V(v8::AccessorNameSetterCallback) \
|
|
29
|
+
V(v8::GenericNamedPropertyDefinerCallback) \
|
|
30
|
+
V(v8::GenericNamedPropertyDeleterCallback) \
|
|
31
|
+
V(v8::GenericNamedPropertyEnumeratorCallback) \
|
|
32
|
+
V(v8::GenericNamedPropertyQueryCallback) \
|
|
33
|
+
V(v8::GenericNamedPropertySetterCallback)
|
|
34
|
+
|
|
35
|
+
#define V(ExternalReferenceType) \
|
|
36
|
+
void Register(ExternalReferenceType addr) { RegisterT(addr); }
|
|
37
|
+
ALLOWED_EXTERNAL_REFERENCE_TYPES(V)
|
|
38
|
+
#undef V
|
|
39
|
+
|
|
40
|
+
// This can be called only once.
|
|
41
|
+
const std::vector<intptr_t>& external_references();
|
|
42
|
+
|
|
43
|
+
bool is_empty() { return external_references_.empty(); }
|
|
44
|
+
|
|
45
|
+
private:
|
|
46
|
+
template <typename T>
|
|
47
|
+
void RegisterT(T* address) {
|
|
48
|
+
external_references_.push_back(reinterpret_cast<intptr_t>(address));
|
|
49
|
+
}
|
|
50
|
+
bool is_finalized_ = false;
|
|
51
|
+
std::vector<intptr_t> external_references_;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_BASE(V) \
|
|
55
|
+
V(async_wrap) \
|
|
56
|
+
V(binding) \
|
|
57
|
+
V(blob) \
|
|
58
|
+
V(buffer) \
|
|
59
|
+
V(contextify) \
|
|
60
|
+
V(credentials) \
|
|
61
|
+
V(env_var) \
|
|
62
|
+
V(errors) \
|
|
63
|
+
V(fs) \
|
|
64
|
+
V(fs_dir) \
|
|
65
|
+
V(fs_event_wrap) \
|
|
66
|
+
V(handle_wrap) \
|
|
67
|
+
V(heap_utils) \
|
|
68
|
+
V(messaging) \
|
|
69
|
+
V(mksnapshot) \
|
|
70
|
+
V(native_module) \
|
|
71
|
+
V(options) \
|
|
72
|
+
V(os) \
|
|
73
|
+
V(performance) \
|
|
74
|
+
V(process_methods) \
|
|
75
|
+
V(process_object) \
|
|
76
|
+
V(report) \
|
|
77
|
+
V(task_queue) \
|
|
78
|
+
V(tcp_wrap) \
|
|
79
|
+
V(tty_wrap) \
|
|
80
|
+
V(url) \
|
|
81
|
+
V(util) \
|
|
82
|
+
V(pipe_wrap) \
|
|
83
|
+
V(serdes) \
|
|
84
|
+
V(string_decoder) \
|
|
85
|
+
V(stream_wrap) \
|
|
86
|
+
V(signal_wrap) \
|
|
87
|
+
V(trace_events) \
|
|
88
|
+
V(timers) \
|
|
89
|
+
V(types) \
|
|
90
|
+
V(uv) \
|
|
91
|
+
V(v8) \
|
|
92
|
+
V(zlib) \
|
|
93
|
+
V(wasm_web_api) \
|
|
94
|
+
V(worker)
|
|
95
|
+
|
|
96
|
+
#if NODE_HAVE_I18N_SUPPORT
|
|
97
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_I18N(V) V(icu)
|
|
98
|
+
#else
|
|
99
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_I18N(V)
|
|
100
|
+
#endif // NODE_HAVE_I18N_SUPPORT
|
|
101
|
+
|
|
102
|
+
#if HAVE_INSPECTOR
|
|
103
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_INSPECTOR(V) \
|
|
104
|
+
V(inspector) \
|
|
105
|
+
V(profiler)
|
|
106
|
+
#else
|
|
107
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_INSPECTOR(V)
|
|
108
|
+
#endif // HAVE_INSPECTOR
|
|
109
|
+
|
|
110
|
+
#if HAVE_DTRACE || HAVE_ETW
|
|
111
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_DTRACE(V) V(dtrace)
|
|
112
|
+
#else
|
|
113
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_DTRACE(V)
|
|
114
|
+
#endif
|
|
115
|
+
|
|
116
|
+
#if HAVE_OPENSSL
|
|
117
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_CRYPTO(V) V(crypto) V(tls_wrap)
|
|
118
|
+
#else
|
|
119
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST_CRYPTO(V)
|
|
120
|
+
#endif // HAVE_OPENSSL
|
|
121
|
+
|
|
122
|
+
#define EXTERNAL_REFERENCE_BINDING_LIST(V) \
|
|
123
|
+
EXTERNAL_REFERENCE_BINDING_LIST_BASE(V) \
|
|
124
|
+
EXTERNAL_REFERENCE_BINDING_LIST_INSPECTOR(V) \
|
|
125
|
+
EXTERNAL_REFERENCE_BINDING_LIST_I18N(V) \
|
|
126
|
+
EXTERNAL_REFERENCE_BINDING_LIST_DTRACE(V) \
|
|
127
|
+
EXTERNAL_REFERENCE_BINDING_LIST_CRYPTO(V)
|
|
128
|
+
|
|
129
|
+
} // namespace node
|
|
130
|
+
|
|
131
|
+
// Declare all the external reference registration functions here,
|
|
132
|
+
// and define them later with #NODE_MODULE_EXTERNAL_REFERENCE(modname, func);
|
|
133
|
+
#define V(modname) \
|
|
134
|
+
void _register_external_reference_##modname( \
|
|
135
|
+
node::ExternalReferenceRegistry* registry);
|
|
136
|
+
EXTERNAL_REFERENCE_BINDING_LIST(V)
|
|
137
|
+
#undef V
|
|
138
|
+
|
|
139
|
+
#define NODE_MODULE_EXTERNAL_REFERENCE(modname, func) \
|
|
140
|
+
void _register_external_reference_##modname( \
|
|
141
|
+
node::ExternalReferenceRegistry* registry) { \
|
|
142
|
+
func(registry); \
|
|
143
|
+
}
|
|
144
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
145
|
+
#endif // SRC_NODE_EXTERNAL_REFERENCE_H_
|