@encharm/cws 4.4.1 → 4.5.1
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_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_arm64_node115.node +0 -0
- package/dist/bindings/cws_linux_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node115.node +0 -0
- package/dist/bindings/cws_linux_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node108.node +0 -0
- package/dist/bindings/cws_win32_x64_node115.node +0 -0
- package/dist/bindings/cws_win32_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node83.node +0 -0
- package/dist/bindings/cws_win32_x64_node93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +8 -23
- package/src/Socket.h +0 -1
- package/src/headers/22/acorn_version.h +6 -0
- package/src/headers/22/aliased_buffer-inl.h +243 -0
- package/src/headers/22/aliased_buffer.h +206 -0
- package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
- package/src/headers/{18 → 22}/async_wrap.h +65 -59
- package/src/headers/{16 → 22}/base_object-inl.h +57 -117
- package/src/headers/{18 → 22}/base_object.h +58 -30
- package/src/headers/22/base_object_types.h +74 -0
- package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/22/blob_serializer_deserializer.h +132 -0
- package/src/headers/{16 → 22}/callback_queue.h +1 -0
- package/src/headers/{16 → 22}/cares_wrap.h +27 -20
- package/src/headers/22/cjs_module_lexer_version.h +6 -0
- package/src/headers/22/cleanup_queue-inl.h +62 -0
- package/src/headers/22/cleanup_queue.h +85 -0
- package/src/headers/22/compile_cache.h +104 -0
- package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
- package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
- package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
- package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
- package/src/headers/22/crypto/ncrypto.h +752 -0
- package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
- package/src/headers/{18 → 22}/debug_utils.h +25 -19
- package/src/headers/22/encoding_binding.h +59 -0
- package/src/headers/{14 → 22}/env-inl.h +276 -409
- package/src/headers/22/env.h +1266 -0
- package/src/headers/22/env_properties.h +497 -0
- package/src/headers/{18 → 22}/handle_wrap.h +2 -0
- package/src/headers/{18 → 22}/histogram.h +88 -48
- package/src/headers/{16 → 22}/inspector_agent.h +17 -1
- package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
- package/src/headers/{18 → 22}/js_native_api.h +78 -30
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/{18 → 22}/js_native_api_v8.h +206 -161
- package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
- package/src/headers/22/json_parser.h +40 -0
- package/src/headers/{16 → 22}/json_utils.h +19 -8
- package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
- package/src/headers/{14 → 22}/memory_tracker.h +13 -8
- package/src/headers/{16 → 22}/module_wrap.h +49 -19
- package/src/headers/22/ncrypto/ncrypto.h +752 -0
- package/src/headers/{18 → 22}/node.h +465 -68
- package/src/headers/{18 → 22}/node_api.h +66 -81
- package/src/headers/{18 → 22}/node_api_internals.h +8 -4
- package/src/headers/{18 → 22}/node_api_types.h +5 -0
- package/src/headers/22/node_binding.h +154 -0
- package/src/headers/{18 → 22}/node_blob.h +46 -78
- package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
- package/src/headers/{18 → 22}/node_bob.h +2 -6
- package/src/headers/{18 → 22}/node_buffer.h +1 -1
- package/src/headers/22/node_builtins.h +220 -0
- package/src/headers/{18 → 22}/node_constants.h +3 -5
- package/src/headers/22/node_context_data.h +168 -0
- package/src/headers/22/node_contextify.h +199 -0
- package/src/headers/{16 → 22}/node_crypto.h +1 -2
- package/src/headers/22/node_dotenv.h +45 -0
- package/src/headers/{18 → 22}/node_errors.h +86 -27
- package/src/headers/22/node_exit_code.h +54 -0
- package/src/headers/22/node_external_reference.h +249 -0
- package/src/headers/{18 → 22}/node_file-inl.h +127 -30
- package/src/headers/{16 → 22}/node_file.h +122 -11
- package/src/headers/{18 → 22}/node_http2.h +28 -11
- package/src/headers/{16 → 22}/node_http2_state.h +34 -25
- package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
- package/src/headers/{18 → 22}/node_http_common.h +56 -55
- package/src/headers/{16 → 22}/node_i18n.h +5 -18
- package/src/headers/{18 → 22}/node_internals.h +121 -59
- package/src/headers/{18 → 22}/node_main_instance.h +4 -31
- package/src/headers/{18 → 22}/node_messaging.h +27 -10
- package/src/headers/{18 → 22}/node_metadata.h +23 -1
- package/src/headers/{18 → 22}/node_options-inl.h +24 -11
- package/src/headers/{18 → 22}/node_options.h +124 -39
- package/src/headers/{18 → 22}/node_perf.h +0 -2
- package/src/headers/{18 → 22}/node_perf_common.h +20 -9
- package/src/headers/{18 → 22}/node_platform.h +11 -5
- package/src/headers/{18 → 22}/node_process.h +26 -14
- package/src/headers/22/node_realm-inl.h +145 -0
- package/src/headers/22/node_realm.h +184 -0
- package/src/headers/{16 → 22}/node_report.h +13 -17
- package/src/headers/{16 → 22}/node_revert.h +3 -3
- package/src/headers/{16 → 22}/node_root_certs.h +902 -461
- package/src/headers/22/node_sea.h +64 -0
- package/src/headers/22/node_shadow_realm.h +46 -0
- package/src/headers/22/node_snapshot_builder.h +57 -0
- package/src/headers/22/node_snapshotable.h +174 -0
- package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
- package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
- package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/22/node_threadsafe_cow.h +105 -0
- package/src/headers/22/node_union_bytes.h +81 -0
- package/src/headers/22/node_url.h +96 -0
- package/src/headers/22/node_v8.h +77 -0
- package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
- package/src/headers/{18 → 22}/node_version.h +20 -8
- package/src/headers/22/node_wasi.h +185 -0
- package/src/headers/{14 → 22}/node_watchdog.h +2 -0
- package/src/headers/{18 → 22}/node_worker.h +7 -2
- package/src/headers/22/permission/child_process_permission.h +31 -0
- package/src/headers/22/permission/fs_permission.h +167 -0
- package/src/headers/22/permission/inspector_permission.h +31 -0
- package/src/headers/22/permission/permission.h +99 -0
- package/src/headers/22/permission/permission_base.h +60 -0
- package/src/headers/22/permission/wasi_permission.h +31 -0
- package/src/headers/22/permission/worker_permission.h +31 -0
- package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
- package/src/headers/{14 → 22}/spawn_sync.h +3 -3
- package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
- package/src/headers/{18 → 22}/stream_base.h +35 -16
- package/src/headers/{18 → 22}/stream_pipe.h +3 -4
- package/src/headers/{16 → 22}/stream_wrap.h +2 -1
- package/src/headers/{18 → 22}/string_bytes.h +5 -14
- package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
- package/src/headers/{16 → 22}/string_decoder.h +0 -1
- package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
- package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
- package/src/headers/22/timers.h +76 -0
- package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
- package/src/headers/{16 → 22}/udp_wrap.h +8 -5
- package/src/headers/22/undici_version.h +6 -0
- package/src/headers/{18 → 22}/util-inl.h +97 -127
- package/src/headers/{18 → 22}/util.h +293 -106
- package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
- package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
- package/dist/bindings/cws_darwin_x64_node83.node +0 -0
- package/dist/bindings/cws_darwin_x64_node93.node +0 -0
- package/dist/bindings/cws_linux_arm64_node83.node +0 -0
- package/dist/bindings/cws_linux_arm64_node93.node +0 -0
- package/dist/bindings/cws_linux_x64_node83.node +0 -0
- package/dist/bindings/cws_linux_x64_node93.node +0 -0
- package/src/headers/14/aliased_buffer.h +0 -263
- package/src/headers/14/allocated_buffer-inl.h +0 -110
- package/src/headers/14/allocated_buffer.h +0 -73
- package/src/headers/14/async_wrap-inl.h +0 -94
- package/src/headers/14/async_wrap.h +0 -230
- package/src/headers/14/base64.h +0 -183
- package/src/headers/14/base_object-inl.h +0 -371
- package/src/headers/14/base_object.h +0 -281
- package/src/headers/14/callback_queue-inl.h +0 -97
- package/src/headers/14/callback_queue.h +0 -78
- package/src/headers/14/debug_utils-inl.h +0 -223
- package/src/headers/14/debug_utils.h +0 -181
- package/src/headers/14/env.h +0 -1388
- package/src/headers/14/handle_wrap.h +0 -117
- package/src/headers/14/histogram-inl.h +0 -83
- package/src/headers/14/histogram.h +0 -98
- package/src/headers/14/inspector_agent.h +0 -149
- package/src/headers/14/inspector_profiler.h +0 -137
- package/src/headers/14/js_native_api.h +0 -544
- package/src/headers/14/js_native_api_types.h +0 -143
- package/src/headers/14/js_native_api_v8.h +0 -301
- package/src/headers/14/js_native_api_v8_internals.h +0 -38
- package/src/headers/14/json_utils.h +0 -161
- package/src/headers/14/memory_tracker-inl.h +0 -355
- package/src/headers/14/module_wrap.h +0 -99
- package/src/headers/14/node.h +0 -1032
- package/src/headers/14/node_api.h +0 -255
- package/src/headers/14/node_api_types.h +0 -44
- package/src/headers/14/node_binding.h +0 -99
- package/src/headers/14/node_buffer.h +0 -92
- package/src/headers/14/node_constants.h +0 -84
- package/src/headers/14/node_context_data.h +0 -44
- package/src/headers/14/node_contextify.h +0 -161
- package/src/headers/14/node_crypto.h +0 -865
- package/src/headers/14/node_crypto_bio.h +0 -195
- package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/14/node_crypto_clienthello.h +0 -132
- package/src/headers/14/node_crypto_common.h +0 -138
- package/src/headers/14/node_crypto_groups.h +0 -415
- package/src/headers/14/node_dtrace.h +0 -86
- package/src/headers/14/node_errors.h +0 -214
- package/src/headers/14/node_file-inl.h +0 -306
- package/src/headers/14/node_file.h +0 -417
- package/src/headers/14/node_http2.h +0 -1191
- package/src/headers/14/node_http2_state.h +0 -149
- package/src/headers/14/node_http_common-inl.h +0 -194
- package/src/headers/14/node_http_common.h +0 -529
- package/src/headers/14/node_i18n.h +0 -144
- package/src/headers/14/node_internals.h +0 -405
- package/src/headers/14/node_main_instance.h +0 -96
- package/src/headers/14/node_mem.h +0 -45
- package/src/headers/14/node_messaging.h +0 -303
- package/src/headers/14/node_metadata.h +0 -109
- package/src/headers/14/node_mutex.h +0 -247
- package/src/headers/14/node_native_module.h +0 -101
- package/src/headers/14/node_native_module_env.h +0 -66
- package/src/headers/14/node_options-inl.h +0 -451
- package/src/headers/14/node_options.h +0 -481
- package/src/headers/14/node_perf.h +0 -181
- package/src/headers/14/node_perf_common.h +0 -97
- package/src/headers/14/node_platform.h +0 -189
- package/src/headers/14/node_process.h +0 -40
- package/src/headers/14/node_report.h +0 -47
- package/src/headers/14/node_revert.h +0 -72
- package/src/headers/14/node_root_certs.h +0 -3458
- package/src/headers/14/node_sockaddr-inl.h +0 -170
- package/src/headers/14/node_sockaddr.h +0 -123
- package/src/headers/14/node_stat_watcher.h +0 -70
- package/src/headers/14/node_union_bytes.h +0 -103
- package/src/headers/14/node_url.h +0 -188
- package/src/headers/14/node_version.h +0 -98
- package/src/headers/14/node_wasi.h +0 -108
- package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/14/node_win32_etw_provider.h +0 -99
- package/src/headers/14/node_worker.h +0 -141
- package/src/headers/14/pipe_wrap.h +0 -78
- package/src/headers/14/req_wrap-inl.h +0 -170
- package/src/headers/14/req_wrap.h +0 -77
- package/src/headers/14/stream_base-inl.h +0 -275
- package/src/headers/14/stream_base.h +0 -434
- package/src/headers/14/stream_pipe.h +0 -73
- package/src/headers/14/stream_wrap.h +0 -130
- package/src/headers/14/string_bytes.h +0 -129
- package/src/headers/14/string_decoder.h +0 -50
- package/src/headers/14/string_search.h +0 -638
- package/src/headers/14/tcp_wrap.h +0 -101
- package/src/headers/14/threadpoolwork-inl.h +0 -57
- package/src/headers/14/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- package/src/headers/14/tracing/node_trace_buffer.h +0 -83
- package/src/headers/14/tracing/node_trace_writer.h +0 -75
- package/src/headers/14/tracing/trace_event.h +0 -720
- package/src/headers/14/tracing/traced_value.h +0 -70
- package/src/headers/14/tty_wrap.h +0 -64
- package/src/headers/14/udp_wrap.h +0 -227
- package/src/headers/14/util-inl.h +0 -566
- package/src/headers/14/util.h +0 -804
- package/src/headers/14/v8abbr.h +0 -124
- package/src/headers/16/aliased_buffer.h +0 -315
- package/src/headers/16/aliased_struct-inl.h +0 -54
- package/src/headers/16/aliased_struct.h +0 -63
- package/src/headers/16/allocated_buffer-inl.h +0 -110
- package/src/headers/16/allocated_buffer.h +0 -73
- package/src/headers/16/async_wrap-inl.h +0 -94
- package/src/headers/16/async_wrap.h +0 -246
- package/src/headers/16/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/base_object.h +0 -294
- package/src/headers/16/connect_wrap.h +0 -26
- package/src/headers/16/connection_wrap.h +0 -30
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_bio.h +0 -194
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/16/crypto/crypto_clienthello.h +0 -131
- package/src/headers/16/crypto/crypto_common.h +0 -187
- package/src/headers/16/crypto/crypto_context.h +0 -147
- package/src/headers/16/crypto/crypto_dh.h +0 -157
- package/src/headers/16/crypto/crypto_dsa.h +0 -76
- package/src/headers/16/crypto/crypto_ec.h +0 -169
- package/src/headers/16/crypto/crypto_groups.h +0 -415
- package/src/headers/16/crypto/crypto_hash.h +0 -89
- package/src/headers/16/crypto/crypto_hkdf.h +0 -66
- package/src/headers/16/crypto/crypto_hmac.h +0 -94
- package/src/headers/16/crypto/crypto_keygen.h +0 -301
- package/src/headers/16/crypto/crypto_keys.h +0 -412
- package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/16/crypto/crypto_random.h +0 -130
- package/src/headers/16/crypto/crypto_rsa.h +0 -141
- package/src/headers/16/crypto/crypto_scrypt.h +0 -87
- package/src/headers/16/crypto/crypto_sig.h +0 -167
- package/src/headers/16/crypto/crypto_spkac.h +0 -20
- package/src/headers/16/crypto/crypto_timing.h +0 -20
- package/src/headers/16/crypto/crypto_tls.h +0 -292
- package/src/headers/16/crypto/crypto_util.h +0 -736
- package/src/headers/16/crypto/crypto_x509.h +0 -141
- package/src/headers/16/debug_utils.h +0 -184
- package/src/headers/16/diagnosticfilename-inl.h +0 -33
- package/src/headers/16/env-inl.h +0 -1277
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/handle_wrap.h +0 -121
- package/src/headers/16/histogram-inl.h +0 -88
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/inspector_io.h +0 -78
- package/src/headers/16/inspector_socket.h +0 -60
- package/src/headers/16/inspector_socket_server.h +0 -110
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_types.h +0 -160
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/js_native_api_v8_internals.h +0 -39
- package/src/headers/16/js_stream.h +0 -52
- package/src/headers/16/memory_tracker-inl.h +0 -356
- package/src/headers/16/memory_tracker.h +0 -284
- package/src/headers/16/node.d +0 -315
- package/src/headers/16/node.h +0 -1132
- package/src/headers/16/node.stp +0 -146
- package/src/headers/16/node_api.h +0 -275
- package/src/headers/16/node_api_internals.h +0 -30
- package/src/headers/16/node_api_types.h +0 -50
- package/src/headers/16/node_binding.h +0 -99
- package/src/headers/16/node_blob.h +0 -191
- package/src/headers/16/node_bob-inl.h +0 -37
- package/src/headers/16/node_bob.h +0 -111
- package/src/headers/16/node_buffer.h +0 -92
- package/src/headers/16/node_constants.h +0 -84
- package/src/headers/16/node_context_data.h +0 -44
- package/src/headers/16/node_contextify.h +0 -196
- package/src/headers/16/node_dir.h +0 -52
- package/src/headers/16/node_dtrace.h +0 -86
- package/src/headers/16/node_errors.h +0 -277
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_file-inl.h +0 -306
- package/src/headers/16/node_http2.h +0 -1140
- package/src/headers/16/node_http_common-inl.h +0 -200
- package/src/headers/16/node_http_common.h +0 -531
- package/src/headers/16/node_internals.h +0 -421
- package/src/headers/16/node_main_instance.h +0 -103
- package/src/headers/16/node_mem-inl.h +0 -112
- package/src/headers/16/node_messaging.h +0 -373
- package/src/headers/16/node_metadata.h +0 -122
- package/src/headers/16/node_native_module.h +0 -101
- package/src/headers/16/node_native_module_env.h +0 -68
- package/src/headers/16/node_object_wrap.h +0 -132
- package/src/headers/16/node_options-inl.h +0 -477
- package/src/headers/16/node_options.h +0 -494
- package/src/headers/16/node_perf.h +0 -185
- package/src/headers/16/node_perf_common.h +0 -89
- package/src/headers/16/node_platform.h +0 -192
- package/src/headers/16/node_process.h +0 -43
- package/src/headers/16/node_provider.d +0 -80
- package/src/headers/16/node_snapshotable.h +0 -137
- package/src/headers/16/node_sockaddr-inl.h +0 -266
- package/src/headers/16/node_sockaddr.h +0 -405
- package/src/headers/16/node_union_bytes.h +0 -103
- package/src/headers/16/node_url.h +0 -205
- package/src/headers/16/node_v8.h +0 -41
- package/src/headers/16/node_v8_platform-inl.h +0 -194
- package/src/headers/16/node_version.h +0 -98
- package/src/headers/16/node_wasi.h +0 -108
- package/src/headers/16/node_watchdog.h +0 -152
- package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/16/node_win32_etw_provider.h +0 -99
- package/src/headers/16/node_worker.h +0 -145
- package/src/headers/16/req_wrap.h +0 -77
- package/src/headers/16/spawn_sync.h +0 -242
- package/src/headers/16/stream_base-inl.h +0 -303
- package/src/headers/16/stream_base.h +0 -454
- package/src/headers/16/stream_pipe.h +0 -73
- package/src/headers/16/string_bytes.h +0 -122
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/tcp_wrap.h +0 -103
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- package/src/headers/16/timer_wrap.h +0 -84
- package/src/headers/16/tracing/agent.h +0 -195
- package/src/headers/16/tracing/node_trace_buffer.h +0 -83
- package/src/headers/16/tracing/node_trace_writer.h +0 -75
- package/src/headers/16/tracing/trace_event.h +0 -720
- package/src/headers/16/tracing/trace_event_common.h +0 -1109
- package/src/headers/16/tracing/traced_value.h +0 -70
- package/src/headers/16/tty_wrap.h +0 -66
- package/src/headers/16/util-inl.h +0 -575
- package/src/headers/16/util.h +0 -824
- package/src/headers/16/v8abbr.h +0 -123
- package/src/headers/16/v8ustack.d +0 -695
- package/src/headers/18/aliased_buffer.h +0 -315
- package/src/headers/18/aliased_struct-inl.h +0 -54
- package/src/headers/18/aliased_struct.h +0 -63
- package/src/headers/18/base64-inl.h +0 -189
- package/src/headers/18/base64.h +0 -69
- package/src/headers/18/base_object-inl.h +0 -374
- package/src/headers/18/callback_queue-inl.h +0 -97
- package/src/headers/18/callback_queue.h +0 -78
- package/src/headers/18/cares_wrap.h +0 -523
- package/src/headers/18/connect_wrap.h +0 -26
- package/src/headers/18/connection_wrap.h +0 -30
- package/src/headers/18/crypto/crypto_aes.h +0 -89
- package/src/headers/18/crypto/crypto_bio.h +0 -194
- package/src/headers/18/crypto/crypto_cipher.h +0 -291
- package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/18/crypto/crypto_common.h +0 -151
- package/src/headers/18/crypto/crypto_dh.h +0 -156
- package/src/headers/18/crypto/crypto_dsa.h +0 -77
- package/src/headers/18/crypto/crypto_ec.h +0 -170
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- package/src/headers/18/crypto/crypto_hash.h +0 -89
- package/src/headers/18/crypto/crypto_hkdf.h +0 -65
- package/src/headers/18/crypto/crypto_hmac.h +0 -94
- package/src/headers/18/crypto/crypto_keygen.h +0 -305
- package/src/headers/18/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/18/crypto/crypto_random.h +0 -130
- package/src/headers/18/crypto/crypto_rsa.h +0 -141
- package/src/headers/18/crypto/crypto_scrypt.h +0 -87
- package/src/headers/18/crypto/crypto_sig.h +0 -168
- package/src/headers/18/crypto/crypto_spkac.h +0 -21
- package/src/headers/18/crypto/crypto_timing.h +0 -20
- package/src/headers/18/crypto/crypto_x509.h +0 -143
- package/src/headers/18/debug_utils-inl.h +0 -223
- package/src/headers/18/diagnosticfilename-inl.h +0 -33
- package/src/headers/18/env-inl.h +0 -1308
- package/src/headers/18/env.h +0 -1667
- package/src/headers/18/inspector_agent.h +0 -144
- package/src/headers/18/inspector_io.h +0 -78
- package/src/headers/18/inspector_profiler.h +0 -149
- package/src/headers/18/inspector_socket.h +0 -60
- package/src/headers/18/inspector_socket_server.h +0 -110
- package/src/headers/18/js_stream.h +0 -52
- package/src/headers/18/json_utils.h +0 -161
- package/src/headers/18/memory_tracker.h +0 -284
- package/src/headers/18/module_wrap.h +0 -116
- package/src/headers/18/node_binding.h +0 -99
- package/src/headers/18/node_context_data.h +0 -44
- package/src/headers/18/node_contextify.h +0 -196
- package/src/headers/18/node_crypto.h +0 -57
- package/src/headers/18/node_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_external_reference.h +0 -145
- package/src/headers/18/node_file.h +0 -426
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_i18n.h +0 -145
- package/src/headers/18/node_mem-inl.h +0 -112
- package/src/headers/18/node_mem.h +0 -45
- package/src/headers/18/node_mutex.h +0 -323
- package/src/headers/18/node_native_module.h +0 -109
- package/src/headers/18/node_native_module_env.h +0 -71
- package/src/headers/18/node_object_wrap.h +0 -132
- package/src/headers/18/node_process-inl.h +0 -26
- package/src/headers/18/node_report.h +0 -47
- package/src/headers/18/node_revert.h +0 -82
- package/src/headers/18/node_root_certs.h +0 -3246
- package/src/headers/18/node_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- package/src/headers/18/node_stat_watcher.h +0 -72
- package/src/headers/18/node_union_bytes.h +0 -103
- package/src/headers/18/node_url.h +0 -205
- package/src/headers/18/node_v8.h +0 -41
- package/src/headers/18/node_v8_platform-inl.h +0 -194
- package/src/headers/18/node_wasi.h +0 -108
- package/src/headers/18/node_watchdog.h +0 -152
- package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/18/node_win32_etw_provider.h +0 -99
- package/src/headers/18/pipe_wrap.h +0 -80
- package/src/headers/18/req_wrap-inl.h +0 -170
- package/src/headers/18/spawn_sync.h +0 -242
- package/src/headers/18/stream_wrap.h +0 -133
- package/src/headers/18/string_decoder-inl.h +0 -37
- package/src/headers/18/string_decoder.h +0 -50
- package/src/headers/18/string_search.h +0 -638
- package/src/headers/18/tracing/node_trace_buffer.h +0 -83
- package/src/headers/18/tracing/node_trace_writer.h +0 -75
- package/src/headers/18/tracing/trace_event_common.h +0 -1109
- package/src/headers/18/tracing/traced_value.h +0 -70
- package/src/headers/18/udp_wrap.h +0 -227
- package/src/headers/18/v8abbr.h +0 -123
- /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
- /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
- /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
- /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
- /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
- /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
- /package/src/headers/{14 → 22}/inspector_io.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
- /package/src/headers/{14 → 22}/js_stream.h +0 -0
- /package/src/headers/{14 → 22}/node_dir.h +0 -0
- /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
- /package/src/headers/{16 → 22}/node_mem.h +0 -0
- /package/src/headers/{16 → 22}/node_mutex.h +0 -0
- /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
- /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
- /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
- /package/src/headers/{18 → 22}/req_wrap.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
- /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
- /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
- /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
|
@@ -18,22 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
namespace node {
|
|
20
20
|
namespace crypto {
|
|
21
|
-
enum PKEncodingType {
|
|
22
|
-
// RSAPublicKey / RSAPrivateKey according to PKCS#1.
|
|
23
|
-
kKeyEncodingPKCS1,
|
|
24
|
-
// PrivateKeyInfo or EncryptedPrivateKeyInfo according to PKCS#8.
|
|
25
|
-
kKeyEncodingPKCS8,
|
|
26
|
-
// SubjectPublicKeyInfo according to X.509.
|
|
27
|
-
kKeyEncodingSPKI,
|
|
28
|
-
// ECPrivateKey according to SEC1.
|
|
29
|
-
kKeyEncodingSEC1
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
enum PKFormatType {
|
|
33
|
-
kKeyFormatDER,
|
|
34
|
-
kKeyFormatPEM,
|
|
35
|
-
kKeyFormatJWK
|
|
36
|
-
};
|
|
37
21
|
|
|
38
22
|
enum KeyType {
|
|
39
23
|
kKeyTypeSecret,
|
|
@@ -48,138 +32,119 @@ enum KeyEncodingContext {
|
|
|
48
32
|
};
|
|
49
33
|
|
|
50
34
|
enum class ParseKeyResult {
|
|
35
|
+
kParseKeyNotRecognized =
|
|
36
|
+
static_cast<int>(EVPKeyPointer::PKParseError::NOT_RECOGNIZED),
|
|
37
|
+
kParseKeyNeedPassphrase =
|
|
38
|
+
static_cast<int>(EVPKeyPointer::PKParseError::NEED_PASSPHRASE),
|
|
39
|
+
kParseKeyFailed = static_cast<int>(EVPKeyPointer::PKParseError::FAILED),
|
|
51
40
|
kParseKeyOk,
|
|
52
|
-
kParseKeyNotRecognized,
|
|
53
|
-
kParseKeyNeedPassphrase,
|
|
54
|
-
kParseKeyFailed
|
|
55
41
|
};
|
|
56
42
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
};
|
|
43
|
+
// Objects of this class can safely be shared among threads.
|
|
44
|
+
class KeyObjectData final : public MemoryRetainer {
|
|
45
|
+
public:
|
|
46
|
+
static KeyObjectData CreateSecret(ByteSource key);
|
|
62
47
|
|
|
63
|
-
|
|
48
|
+
static KeyObjectData CreateAsymmetric(KeyType type, EVPKeyPointer&& pkey);
|
|
64
49
|
|
|
65
|
-
|
|
66
|
-
const EVP_CIPHER* cipher_;
|
|
67
|
-
// The ByteSource alone is not enough to distinguish between "no passphrase"
|
|
68
|
-
// and a zero-length passphrase (which can be a null pointer), therefore, we
|
|
69
|
-
// use a NonCopyableMaybe.
|
|
70
|
-
NonCopyableMaybe<ByteSource> passphrase_;
|
|
71
|
-
};
|
|
50
|
+
KeyObjectData(std::nullptr_t = nullptr);
|
|
72
51
|
|
|
73
|
-
|
|
74
|
-
// which is slightly more efficient than using a shared pointer and easier to
|
|
75
|
-
// use.
|
|
76
|
-
class ManagedEVPPKey : public MemoryRetainer {
|
|
77
|
-
public:
|
|
78
|
-
ManagedEVPPKey() : mutex_(std::make_shared<Mutex>()) {}
|
|
79
|
-
explicit ManagedEVPPKey(EVPKeyPointer&& pkey);
|
|
80
|
-
ManagedEVPPKey(const ManagedEVPPKey& that);
|
|
81
|
-
ManagedEVPPKey& operator=(const ManagedEVPPKey& that);
|
|
82
|
-
|
|
83
|
-
operator bool() const;
|
|
84
|
-
EVP_PKEY* get() const;
|
|
85
|
-
Mutex* mutex() const;
|
|
52
|
+
inline operator bool() const { return data_ != nullptr; }
|
|
86
53
|
|
|
87
|
-
|
|
88
|
-
SET_MEMORY_INFO_NAME(ManagedEVPPKey)
|
|
89
|
-
SET_SELF_SIZE(ManagedEVPPKey)
|
|
54
|
+
KeyType GetKeyType() const;
|
|
90
55
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
56
|
+
// These functions allow unprotected access to the raw key material and should
|
|
57
|
+
// only be used to implement cryptographic operations requiring the key.
|
|
58
|
+
const EVPKeyPointer& GetAsymmetricKey() const;
|
|
59
|
+
const char* GetSymmetricKey() const;
|
|
60
|
+
size_t GetSymmetricKeySize() const;
|
|
95
61
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
KeyEncodingContext context);
|
|
62
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
63
|
+
SET_MEMORY_INFO_NAME(KeyObjectData)
|
|
64
|
+
SET_SELF_SIZE(KeyObjectData)
|
|
100
65
|
|
|
101
|
-
|
|
102
|
-
EVPKeyPointer&& pkey,
|
|
103
|
-
ParseKeyResult ret,
|
|
104
|
-
const char* default_msg);
|
|
66
|
+
Mutex& mutex() const;
|
|
105
67
|
|
|
106
|
-
static
|
|
107
|
-
|
|
108
|
-
|
|
68
|
+
static v8::Maybe<ncrypto::EVPKeyPointer::PublicKeyEncodingConfig>
|
|
69
|
+
GetPublicKeyEncodingFromJs(const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
70
|
+
unsigned int* offset,
|
|
71
|
+
KeyEncodingContext context);
|
|
109
72
|
|
|
110
|
-
static
|
|
73
|
+
static KeyObjectData GetPrivateKeyFromJs(
|
|
111
74
|
const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
112
75
|
unsigned int* offset,
|
|
113
76
|
bool allow_key_object);
|
|
114
77
|
|
|
115
|
-
static
|
|
78
|
+
static KeyObjectData GetPublicOrPrivateKeyFromJs(
|
|
79
|
+
const v8::FunctionCallbackInfo<v8::Value>& args, unsigned int* offset);
|
|
80
|
+
|
|
81
|
+
static v8::Maybe<ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig>
|
|
82
|
+
GetPrivateKeyEncodingFromJs(const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
83
|
+
unsigned int* offset,
|
|
84
|
+
KeyEncodingContext context);
|
|
85
|
+
|
|
86
|
+
v8::Maybe<void> ToEncodedPublicKey(
|
|
116
87
|
Environment* env,
|
|
117
|
-
|
|
118
|
-
const PublicKeyEncodingConfig& config,
|
|
88
|
+
const ncrypto::EVPKeyPointer::PublicKeyEncodingConfig& config,
|
|
119
89
|
v8::Local<v8::Value>* out);
|
|
120
90
|
|
|
121
|
-
|
|
91
|
+
v8::Maybe<void> ToEncodedPrivateKey(
|
|
122
92
|
Environment* env,
|
|
123
|
-
|
|
124
|
-
const PrivateKeyEncodingConfig& config,
|
|
93
|
+
const ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig& config,
|
|
125
94
|
v8::Local<v8::Value>* out);
|
|
126
95
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
EVPKeyPointer pkey_;
|
|
132
|
-
std::shared_ptr<Mutex> mutex_;
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
// Objects of this class can safely be shared among threads.
|
|
136
|
-
class KeyObjectData : public MemoryRetainer {
|
|
137
|
-
public:
|
|
138
|
-
static std::shared_ptr<KeyObjectData> CreateSecret(ByteSource key);
|
|
139
|
-
|
|
140
|
-
static std::shared_ptr<KeyObjectData> CreateAsymmetric(
|
|
141
|
-
KeyType type,
|
|
142
|
-
const ManagedEVPPKey& pkey);
|
|
143
|
-
|
|
144
|
-
KeyType GetKeyType() const;
|
|
145
|
-
|
|
146
|
-
// These functions allow unprotected access to the raw key material and should
|
|
147
|
-
// only be used to implement cryptographic operations requiring the key.
|
|
148
|
-
ManagedEVPPKey GetAsymmetricKey() const;
|
|
149
|
-
const char* GetSymmetricKey() const;
|
|
150
|
-
size_t GetSymmetricKeySize() const;
|
|
96
|
+
inline KeyObjectData addRef() const {
|
|
97
|
+
return KeyObjectData(key_type_, mutex_, data_);
|
|
98
|
+
}
|
|
151
99
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
100
|
+
inline KeyObjectData addRefWithType(KeyType type) const {
|
|
101
|
+
return KeyObjectData(type, mutex_, data_);
|
|
102
|
+
}
|
|
155
103
|
|
|
156
104
|
private:
|
|
157
105
|
explicit KeyObjectData(ByteSource symmetric_key);
|
|
106
|
+
explicit KeyObjectData(KeyType type, EVPKeyPointer&& pkey);
|
|
107
|
+
|
|
108
|
+
static KeyObjectData GetParsedKey(KeyType type,
|
|
109
|
+
Environment* env,
|
|
110
|
+
EVPKeyPointer&& pkey,
|
|
111
|
+
ParseKeyResult ret,
|
|
112
|
+
const char* default_msg);
|
|
113
|
+
|
|
114
|
+
KeyType key_type_;
|
|
115
|
+
mutable std::shared_ptr<Mutex> mutex_;
|
|
116
|
+
|
|
117
|
+
struct Data {
|
|
118
|
+
const ByteSource symmetric_key;
|
|
119
|
+
const EVPKeyPointer asymmetric_key;
|
|
120
|
+
explicit Data(ByteSource symmetric_key)
|
|
121
|
+
: symmetric_key(std::move(symmetric_key)) {}
|
|
122
|
+
explicit Data(EVPKeyPointer asymmetric_key)
|
|
123
|
+
: asymmetric_key(std::move(asymmetric_key)) {}
|
|
124
|
+
};
|
|
125
|
+
std::shared_ptr<Data> data_;
|
|
158
126
|
|
|
159
|
-
KeyObjectData(
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const KeyType key_type_;
|
|
164
|
-
const ByteSource symmetric_key_;
|
|
165
|
-
const unsigned int symmetric_key_len_;
|
|
166
|
-
const ManagedEVPPKey asymmetric_key_;
|
|
127
|
+
KeyObjectData(KeyType type,
|
|
128
|
+
std::shared_ptr<Mutex> mutex,
|
|
129
|
+
std::shared_ptr<Data> data)
|
|
130
|
+
: key_type_(type), mutex_(mutex), data_(data) {}
|
|
167
131
|
};
|
|
168
132
|
|
|
169
133
|
class KeyObjectHandle : public BaseObject {
|
|
170
134
|
public:
|
|
135
|
+
static bool HasInstance(Environment* env, v8::Local<v8::Value> value);
|
|
171
136
|
static v8::Local<v8::Function> Initialize(Environment* env);
|
|
172
137
|
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
173
138
|
|
|
174
139
|
static v8::MaybeLocal<v8::Object> Create(Environment* env,
|
|
175
|
-
|
|
140
|
+
const KeyObjectData& data);
|
|
176
141
|
|
|
177
142
|
// TODO(tniessen): track the memory used by OpenSSL types
|
|
178
143
|
SET_NO_MEMORY_INFO()
|
|
179
144
|
SET_MEMORY_INFO_NAME(KeyObjectHandle)
|
|
180
145
|
SET_SELF_SIZE(KeyObjectHandle)
|
|
181
146
|
|
|
182
|
-
const
|
|
147
|
+
const KeyObjectData& Data();
|
|
183
148
|
|
|
184
149
|
protected:
|
|
185
150
|
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -197,6 +162,9 @@ class KeyObjectHandle : public BaseObject {
|
|
|
197
162
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
198
163
|
v8::Local<v8::Value> GetAsymmetricKeyType() const;
|
|
199
164
|
|
|
165
|
+
static void CheckEcKeyData(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
166
|
+
bool CheckEcKeyData() const;
|
|
167
|
+
|
|
200
168
|
static void GetSymmetricKeySize(
|
|
201
169
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
202
170
|
|
|
@@ -204,15 +172,15 @@ class KeyObjectHandle : public BaseObject {
|
|
|
204
172
|
|
|
205
173
|
v8::MaybeLocal<v8::Value> ExportSecretKey() const;
|
|
206
174
|
v8::MaybeLocal<v8::Value> ExportPublicKey(
|
|
207
|
-
const PublicKeyEncodingConfig& config) const;
|
|
175
|
+
const ncrypto::EVPKeyPointer::PublicKeyEncodingConfig& config) const;
|
|
208
176
|
v8::MaybeLocal<v8::Value> ExportPrivateKey(
|
|
209
|
-
const PrivateKeyEncodingConfig& config) const;
|
|
177
|
+
const ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig& config) const;
|
|
210
178
|
|
|
211
179
|
KeyObjectHandle(Environment* env,
|
|
212
180
|
v8::Local<v8::Object> wrap);
|
|
213
181
|
|
|
214
182
|
private:
|
|
215
|
-
|
|
183
|
+
KeyObjectData data_;
|
|
216
184
|
};
|
|
217
185
|
|
|
218
186
|
class NativeKeyObject : public BaseObject {
|
|
@@ -230,8 +198,8 @@ class NativeKeyObject : public BaseObject {
|
|
|
230
198
|
|
|
231
199
|
class KeyObjectTransferData : public worker::TransferData {
|
|
232
200
|
public:
|
|
233
|
-
explicit KeyObjectTransferData(const
|
|
234
|
-
: data_(data) {}
|
|
201
|
+
explicit KeyObjectTransferData(const KeyObjectData& data)
|
|
202
|
+
: data_(data.addRef()) {}
|
|
235
203
|
|
|
236
204
|
BaseObjectPtr<BaseObject> Deserialize(
|
|
237
205
|
Environment* env,
|
|
@@ -243,7 +211,7 @@ class NativeKeyObject : public BaseObject {
|
|
|
243
211
|
SET_NO_MEMORY_INFO()
|
|
244
212
|
|
|
245
213
|
private:
|
|
246
|
-
|
|
214
|
+
KeyObjectData data_;
|
|
247
215
|
};
|
|
248
216
|
|
|
249
217
|
BaseObject::TransferMode GetTransferMode() const override;
|
|
@@ -252,13 +220,12 @@ class NativeKeyObject : public BaseObject {
|
|
|
252
220
|
private:
|
|
253
221
|
NativeKeyObject(Environment* env,
|
|
254
222
|
v8::Local<v8::Object> wrap,
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
handle_data_(handle_data) {
|
|
223
|
+
const KeyObjectData& handle_data)
|
|
224
|
+
: BaseObject(env, wrap), handle_data_(handle_data.addRef()) {
|
|
258
225
|
MakeWeak();
|
|
259
226
|
}
|
|
260
227
|
|
|
261
|
-
|
|
228
|
+
KeyObjectData handle_data_;
|
|
262
229
|
};
|
|
263
230
|
|
|
264
231
|
enum WebCryptoKeyFormat {
|
|
@@ -323,20 +290,18 @@ class KeyExportJob final : public CryptoJob<KeyExportTraits> {
|
|
|
323
290
|
CryptoJob<KeyExportTraits>::RegisterExternalReferences(New, registry);
|
|
324
291
|
}
|
|
325
292
|
|
|
326
|
-
KeyExportJob(
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
std::move(params)),
|
|
339
|
-
key_(key),
|
|
293
|
+
KeyExportJob(Environment* env,
|
|
294
|
+
v8::Local<v8::Object> object,
|
|
295
|
+
CryptoJobMode mode,
|
|
296
|
+
const KeyObjectData& key,
|
|
297
|
+
WebCryptoKeyFormat format,
|
|
298
|
+
AdditionalParams&& params)
|
|
299
|
+
: CryptoJob<KeyExportTraits>(env,
|
|
300
|
+
object,
|
|
301
|
+
AsyncWrap::PROVIDER_KEYEXPORTREQUEST,
|
|
302
|
+
mode,
|
|
303
|
+
std::move(params)),
|
|
304
|
+
key_(key.addRef()),
|
|
340
305
|
format_(format) {}
|
|
341
306
|
|
|
342
307
|
WebCryptoKeyFormat format() const { return format_; }
|
|
@@ -369,23 +334,28 @@ class KeyExportJob final : public CryptoJob<KeyExportTraits> {
|
|
|
369
334
|
}
|
|
370
335
|
}
|
|
371
336
|
|
|
372
|
-
v8::Maybe<
|
|
373
|
-
|
|
374
|
-
v8::Local<v8::Value>* result) override {
|
|
337
|
+
v8::Maybe<void> ToResult(v8::Local<v8::Value>* err,
|
|
338
|
+
v8::Local<v8::Value>* result) override {
|
|
375
339
|
Environment* env = AsyncWrap::env();
|
|
376
340
|
CryptoErrorStore* errors = CryptoJob<KeyExportTraits>::errors();
|
|
377
341
|
if (out_.size() > 0) {
|
|
378
342
|
CHECK(errors->Empty());
|
|
379
343
|
*err = v8::Undefined(env->isolate());
|
|
380
344
|
*result = out_.ToArrayBuffer(env);
|
|
381
|
-
|
|
345
|
+
if (result->IsEmpty()) {
|
|
346
|
+
return v8::Nothing<void>();
|
|
347
|
+
}
|
|
348
|
+
} else {
|
|
349
|
+
if (errors->Empty()) errors->Capture();
|
|
350
|
+
CHECK(!errors->Empty());
|
|
351
|
+
*result = v8::Undefined(env->isolate());
|
|
352
|
+
if (!errors->ToException(env).ToLocal(err)) {
|
|
353
|
+
return v8::Nothing<void>();
|
|
354
|
+
}
|
|
382
355
|
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
CHECK(!errors->Empty());
|
|
387
|
-
*result = v8::Undefined(env->isolate());
|
|
388
|
-
return v8::Just(errors->ToException(env).ToLocal(err));
|
|
356
|
+
CHECK(!result->IsEmpty());
|
|
357
|
+
CHECK(!err->IsEmpty());
|
|
358
|
+
return v8::JustVoid();
|
|
389
359
|
}
|
|
390
360
|
|
|
391
361
|
SET_SELF_SIZE(KeyExportJob)
|
|
@@ -395,18 +365,18 @@ class KeyExportJob final : public CryptoJob<KeyExportTraits> {
|
|
|
395
365
|
}
|
|
396
366
|
|
|
397
367
|
private:
|
|
398
|
-
|
|
368
|
+
KeyObjectData key_;
|
|
399
369
|
WebCryptoKeyFormat format_;
|
|
400
370
|
ByteSource out_;
|
|
401
371
|
};
|
|
402
372
|
|
|
403
|
-
WebCryptoKeyExportStatus PKEY_SPKI_Export(
|
|
404
|
-
|
|
405
|
-
|
|
373
|
+
WebCryptoKeyExportStatus PKEY_SPKI_Export(const KeyObjectData& key_data,
|
|
374
|
+
ByteSource* out);
|
|
375
|
+
|
|
376
|
+
WebCryptoKeyExportStatus PKEY_PKCS8_Export(const KeyObjectData& key_data,
|
|
377
|
+
ByteSource* out);
|
|
406
378
|
|
|
407
|
-
|
|
408
|
-
KeyObjectData* key_data,
|
|
409
|
-
ByteSource* out);
|
|
379
|
+
int GetOKPCurveFromName(const char* name);
|
|
410
380
|
|
|
411
381
|
namespace Keys {
|
|
412
382
|
void Initialize(Environment* env, v8::Local<v8::Object> target);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
//
|
|
14
14
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
15
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
16
|
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
17
|
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
18
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
19
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
#include <openssl/ssl.h>
|
|
35
35
|
|
|
36
36
|
#include <string>
|
|
37
|
+
#include <vector>
|
|
37
38
|
|
|
38
39
|
namespace node {
|
|
39
40
|
namespace crypto {
|
|
@@ -47,6 +48,8 @@ class TLSWrap : public AsyncWrap,
|
|
|
47
48
|
kServer
|
|
48
49
|
};
|
|
49
50
|
|
|
51
|
+
enum class UnderlyingStreamWriteStatus { kHasActive, kVacancy };
|
|
52
|
+
|
|
50
53
|
static void Initialize(v8::Local<v8::Object> target,
|
|
51
54
|
v8::Local<v8::Value> unused,
|
|
52
55
|
v8::Local<v8::Context> context,
|
|
@@ -102,6 +105,7 @@ class TLSWrap : public AsyncWrap,
|
|
|
102
105
|
|
|
103
106
|
std::string diagnostic_name() const override;
|
|
104
107
|
|
|
108
|
+
private:
|
|
105
109
|
// OpenSSL structures are opaque. Estimate SSL memory size for OpenSSL 1.1.1b:
|
|
106
110
|
// SSL: 6224
|
|
107
111
|
// SSL->SSL3_STATE: 1040
|
|
@@ -134,7 +138,8 @@ class TLSWrap : public AsyncWrap,
|
|
|
134
138
|
v8::Local<v8::Object> obj,
|
|
135
139
|
Kind kind,
|
|
136
140
|
StreamBase* stream,
|
|
137
|
-
SecureContext* sc
|
|
141
|
+
SecureContext* sc,
|
|
142
|
+
UnderlyingStreamWriteStatus under_stream_ws);
|
|
138
143
|
|
|
139
144
|
static void SSLInfoCallback(const SSL* ssl_, int where, int ret);
|
|
140
145
|
void InitSSL();
|
|
@@ -165,13 +170,12 @@ class TLSWrap : public AsyncWrap,
|
|
|
165
170
|
|
|
166
171
|
int SetCACerts(SecureContext* sc);
|
|
167
172
|
|
|
168
|
-
int GetSSLError(int status) const;
|
|
169
|
-
|
|
170
173
|
static int SelectSNIContextCallback(SSL* s, int* ad, void* arg);
|
|
171
174
|
|
|
172
175
|
static void CertCbDone(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
173
176
|
static void DestroySSL(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
174
177
|
static void EnableCertCb(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
178
|
+
static void EnableALPNCb(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
175
179
|
static void EnableKeylogCallback(
|
|
176
180
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
177
181
|
static void EnableSessionCallbacks(
|
|
@@ -209,6 +213,7 @@ class TLSWrap : public AsyncWrap,
|
|
|
209
213
|
static void Renegotiate(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
210
214
|
static void RequestOCSP(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
211
215
|
static void SetALPNProtocols(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
216
|
+
static void SetKeyCert(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
212
217
|
static void SetOCSPResponse(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
213
218
|
static void SetServername(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
214
219
|
static void SetSession(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -216,6 +221,8 @@ class TLSWrap : public AsyncWrap,
|
|
|
216
221
|
static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
217
222
|
static void VerifyError(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
218
223
|
static void Wrap(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
224
|
+
static void WritesIssuedByPrevListenerDone(
|
|
225
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
219
226
|
|
|
220
227
|
#ifdef SSL_set_max_send_fragment
|
|
221
228
|
static void SetMaxSendFragment(
|
|
@@ -238,11 +245,13 @@ class TLSWrap : public AsyncWrap,
|
|
|
238
245
|
unsigned char* psk,
|
|
239
246
|
unsigned int max_psk_len);
|
|
240
247
|
#endif
|
|
241
|
-
|
|
248
|
+
|
|
242
249
|
Environment* const env_;
|
|
243
250
|
Kind kind_;
|
|
244
251
|
SSLSessionPointer next_sess_;
|
|
252
|
+
public:
|
|
245
253
|
SSLPointer ssl_;
|
|
254
|
+
private:
|
|
246
255
|
ClientHelloParser hello_parser_;
|
|
247
256
|
v8::Global<v8::ArrayBufferView> ocsp_response_;
|
|
248
257
|
BaseObjectPtr<SecureContext> sni_context_;
|
|
@@ -282,6 +291,12 @@ public:
|
|
|
282
291
|
void* cert_cb_arg_ = nullptr;
|
|
283
292
|
|
|
284
293
|
BIOPointer bio_trace_;
|
|
294
|
+
|
|
295
|
+
bool has_active_write_issued_by_prev_listener_ = false;
|
|
296
|
+
|
|
297
|
+
public:
|
|
298
|
+
std::vector<unsigned char> alpn_protos_; // Accessed by SelectALPNCallback.
|
|
299
|
+
bool alpn_callback_enabled_ = false; // Accessed by SelectALPNCallback.
|
|
285
300
|
};
|
|
286
301
|
|
|
287
302
|
} // namespace crypto
|