@encharm/cws 4.4.1 → 4.5.2
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/binding.gyp +1 -1
- package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node137.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_linux_x64_node137.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 +13 -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/{18 → 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/22/js_native_api.h +619 -0
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/22/js_native_api_v8.h +485 -0
- 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/{16 → 22}/node_version.h +21 -9
- 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/src/headers/24/acorn_version.h +6 -0
- package/src/headers/24/addon_permission.h +31 -0
- package/src/headers/{16/tracing → 24}/agent.h +1 -1
- package/src/headers/24/aliased_buffer-inl.h +244 -0
- package/src/headers/24/aliased_buffer.h +206 -0
- package/src/headers/24/amaro_version.h +6 -0
- package/src/headers/24/application.h +165 -0
- package/src/headers/24/async_context_frame.h +33 -0
- package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
- package/src/headers/{16 → 24}/async_wrap.h +86 -88
- package/src/headers/{16 → 24}/base_object-inl.h +75 -119
- package/src/headers/{16 → 24}/base_object.h +84 -40
- package/src/headers/24/base_object_types.h +74 -0
- package/src/headers/24/bindingdata.h +272 -0
- package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/24/blob_serializer_deserializer.h +132 -0
- package/src/headers/{18 → 24}/callback_queue.h +1 -0
- package/src/headers/{18 → 24}/cares_wrap.h +68 -144
- package/src/headers/24/child_process_permission.h +31 -0
- package/src/headers/24/cid.h +127 -0
- package/src/headers/24/cjs_module_lexer_version.h +6 -0
- package/src/headers/24/cleanup_queue-inl.h +36 -0
- package/src/headers/24/cleanup_queue.h +79 -0
- package/src/headers/24/compile_cache.h +113 -0
- package/src/headers/24/cppgc_helpers-inl.h +65 -0
- package/src/headers/24/cppgc_helpers.h +162 -0
- package/src/headers/24/crypto/crypto_aes.h +97 -0
- package/src/headers/24/crypto/crypto_argon2.h +86 -0
- package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
- package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
- package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
- package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
- package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/24/crypto/crypto_common.h +48 -0
- package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
- package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
- package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
- package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
- package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
- package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
- package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
- package/src/headers/24/crypto/crypto_kem.h +113 -0
- package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
- package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
- package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
- package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
- package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
- package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
- package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
- package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
- package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
- package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
- package/src/headers/24/crypto/crypto_x509.h +140 -0
- package/src/headers/24/data.h +148 -0
- package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
- package/src/headers/{16 → 24}/debug_utils.h +31 -22
- package/src/headers/24/defs.h +254 -0
- package/src/headers/24/embedded_data.h +17 -0
- package/src/headers/24/encoding_binding.h +60 -0
- package/src/headers/24/endpoint.h +421 -0
- package/src/headers/{16 → 24}/env-inl.h +198 -540
- package/src/headers/24/env.h +1257 -0
- package/src/headers/24/env_properties.h +561 -0
- package/src/headers/24/fs_permission.h +167 -0
- package/src/headers/{16 → 24}/handle_wrap.h +4 -2
- package/src/headers/{16 → 24}/histogram-inl.h +34 -15
- package/src/headers/24/histogram.h +279 -0
- package/src/headers/24/http3.h +44 -0
- package/src/headers/{18 → 24}/inspector_agent.h +23 -2
- package/src/headers/24/inspector_permission.h +31 -0
- package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
- package/src/headers/24/io_agent.h +30 -0
- package/src/headers/{18 → 24}/js_native_api.h +74 -30
- package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
- package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
- package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
- package/src/headers/24/json_parser.h +40 -0
- package/src/headers/{18 → 24}/json_utils.h +19 -8
- package/src/headers/24/logstream.h +81 -0
- package/src/headers/24/main_thread_interface.h +116 -0
- package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
- package/src/headers/{16 → 24}/memory_tracker.h +58 -9
- package/src/headers/24/module_wrap.h +229 -0
- package/src/headers/24/ncrypto.h +1625 -0
- package/src/headers/24/network_agent.h +118 -0
- package/src/headers/24/network_inspector.h +45 -0
- package/src/headers/24/network_resource_manager.h +29 -0
- package/src/headers/{16 → 24}/node.h +560 -72
- package/src/headers/24/node_api.h +269 -0
- package/src/headers/24/node_api_internals.h +46 -0
- package/src/headers/{16 → 24}/node_api_types.h +13 -11
- package/src/headers/24/node_binding.h +163 -0
- package/src/headers/{16 → 24}/node_blob.h +46 -78
- package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
- package/src/headers/{16 → 24}/node_bob.h +2 -6
- package/src/headers/{14 → 24}/node_buffer.h +1 -1
- package/src/headers/24/node_builtins.h +223 -0
- package/src/headers/24/node_config_file.h +65 -0
- package/src/headers/{14 → 24}/node_constants.h +3 -5
- package/src/headers/24/node_context_data.h +168 -0
- package/src/headers/24/node_contextify.h +261 -0
- package/src/headers/{18 → 24}/node_crypto.h +7 -2
- package/src/headers/24/node_debug.h +25 -0
- package/src/headers/24/node_dotenv.h +45 -0
- package/src/headers/{16 → 24}/node_errors.h +146 -32
- package/src/headers/24/node_exit_code.h +54 -0
- package/src/headers/{18 → 24}/node_external_reference.h +44 -22
- package/src/headers/{16 → 24}/node_file-inl.h +156 -50
- package/src/headers/{18 → 24}/node_file.h +129 -15
- package/src/headers/{16 → 24}/node_http2.h +53 -18
- package/src/headers/{14 → 24}/node_http2_state.h +35 -25
- package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
- package/src/headers/{16 → 24}/node_http_common.h +63 -59
- package/src/headers/{18 → 24}/node_i18n.h +5 -18
- package/src/headers/{16 → 24}/node_internals.h +131 -76
- package/src/headers/24/node_json.h +24 -0
- package/src/headers/24/node_large_page.h +34 -0
- package/src/headers/24/node_locks.h +180 -0
- package/src/headers/{14 → 24}/node_main_instance.h +15 -44
- package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
- package/src/headers/{16 → 24}/node_messaging.h +27 -11
- package/src/headers/{16 → 24}/node_metadata.h +44 -2
- package/src/headers/24/node_modules.h +93 -0
- package/src/headers/{16 → 24}/node_options-inl.h +93 -46
- package/src/headers/{16 → 24}/node_options.h +251 -63
- package/src/headers/{16 → 24}/node_perf.h +6 -25
- package/src/headers/{16 → 24}/node_perf_common.h +23 -10
- package/src/headers/24/node_platform.h +286 -0
- package/src/headers/24/node_process.h +111 -0
- package/src/headers/24/node_realm-inl.h +153 -0
- package/src/headers/24/node_realm.h +236 -0
- package/src/headers/{18 → 24}/node_report.h +13 -17
- package/src/headers/{18 → 24}/node_revert.h +3 -3
- package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
- package/src/headers/24/node_sea.h +74 -0
- package/src/headers/24/node_shadow_realm.h +46 -0
- package/src/headers/24/node_snapshot_builder.h +57 -0
- package/src/headers/24/node_snapshotable.h +174 -0
- package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
- package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
- package/src/headers/24/node_sqlite.h +270 -0
- package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
- package/src/headers/24/node_string.h +101 -0
- package/src/headers/24/node_task_runner.h +92 -0
- package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/24/node_threadsafe_cow.h +105 -0
- package/src/headers/24/node_union_bytes.h +81 -0
- package/src/headers/24/node_url.h +101 -0
- package/src/headers/24/node_url_pattern.h +118 -0
- package/src/headers/24/node_v8.h +77 -0
- package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
- package/src/headers/{18 → 24}/node_version.h +18 -6
- package/src/headers/24/node_wasi.h +185 -0
- package/src/headers/24/node_wasm_web_api.h +55 -0
- package/src/headers/{18 → 24}/node_watchdog.h +2 -0
- package/src/headers/24/node_webstorage.h +60 -0
- package/src/headers/{16 → 24}/node_worker.h +24 -10
- package/src/headers/24/packet.h +155 -0
- package/src/headers/24/path.h +33 -0
- package/src/headers/24/permission/addon_permission.h +31 -0
- package/src/headers/24/permission/child_process_permission.h +31 -0
- package/src/headers/24/permission/fs_permission.h +167 -0
- package/src/headers/24/permission/inspector_permission.h +31 -0
- package/src/headers/24/permission/permission.h +100 -0
- package/src/headers/24/permission/permission_base.h +65 -0
- package/src/headers/24/permission/wasi_permission.h +31 -0
- package/src/headers/24/permission/worker_permission.h +31 -0
- package/src/headers/24/permission.h +100 -0
- package/src/headers/24/permission_base.h +65 -0
- package/src/headers/24/preferredaddress.h +72 -0
- package/src/headers/24/protocol_helper.h +27 -0
- package/src/headers/24/queue.h +306 -0
- package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
- package/src/headers/{16 → 24}/req_wrap.h +3 -1
- package/src/headers/24/runtime_agent.h +41 -0
- package/src/headers/24/session.h +528 -0
- package/src/headers/24/sessionticket.h +108 -0
- package/src/headers/{18 → 24}/spawn_sync.h +9 -8
- package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
- package/src/headers/{16 → 24}/stream_base.h +43 -19
- package/src/headers/{16 → 24}/stream_pipe.h +7 -4
- package/src/headers/{18 → 24}/stream_wrap.h +2 -3
- package/src/headers/24/streams.h +370 -0
- package/src/headers/{16 → 24}/string_bytes.h +8 -21
- package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
- package/src/headers/{18 → 24}/string_decoder.h +0 -1
- package/src/headers/24/target_agent.h +75 -0
- package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
- package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
- package/src/headers/24/timer_wrap-inl.h +32 -0
- package/src/headers/{16 → 24}/timer_wrap.h +7 -4
- package/src/headers/24/timers.h +75 -0
- package/src/headers/24/tlscontext.h +228 -0
- package/src/headers/24/tokens.h +256 -0
- package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
- package/src/headers/24/traced_value.h +129 -0
- package/src/headers/24/tracing_agent.h +43 -0
- package/src/headers/24/transportparams.h +166 -0
- package/src/headers/{16 → 24}/tty_wrap.h +0 -1
- package/src/headers/{18 → 24}/udp_wrap.h +8 -5
- package/src/headers/24/undici_version.h +6 -0
- package/src/headers/{16 → 24}/util-inl.h +267 -131
- package/src/headers/{16 → 24}/util.h +338 -146
- package/src/headers/24/v8-external-memory-accounter.h +60 -0
- package/src/headers/24/v8-fast-api-calls.h +819 -0
- package/src/headers/24/v8-inspector.h +426 -0
- package/src/headers/24/wasi_permission.h +31 -0
- package/src/headers/24/worker_agent.h +40 -0
- package/src/headers/24/worker_inspector.h +124 -0
- package/src/headers/24/worker_permission.h +31 -0
- package/src/headers/24/zlib_version.h +6 -0
- 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.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.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_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_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_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/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- 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/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/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_common.h +0 -187
- 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_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_x509.h +0 -141
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/node.d +0 -315
- 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_binding.h +0 -99
- 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_dtrace.h +0 -86
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_main_instance.h +0 -103
- 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_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_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_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/spawn_sync.h +0 -242
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- 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/traced_value.h +0 -70
- 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/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_clienthello-inl.h +0 -90
- package/src/headers/18/crypto/crypto_common.h +0 -151
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- 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_io.h +0 -78
- 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/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_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_mem-inl.h +0 -112
- 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_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- 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_wasi.h +0 -108
- 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/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/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
- /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
- /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
- /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
- /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
- /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{16 → 24}/inspector_io.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
- /package/src/headers/{16 → 24}/js_stream.h +0 -0
- /package/src/headers/{16 → 24}/node_dir.h +0 -0
- /package/src/headers/{18 → 24}/node_mem.h +0 -0
- /package/src/headers/{18 → 24}/node_mutex.h +0 -0
- /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
- /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
- /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
- /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#ifndef SRC_CRYPTO_CRYPTO_CHACHA20_POLY1305_H_
|
|
2
|
+
#define SRC_CRYPTO_CRYPTO_CHACHA20_POLY1305_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "crypto/crypto_cipher.h"
|
|
7
|
+
#include "crypto/crypto_keys.h"
|
|
8
|
+
#include "crypto/crypto_util.h"
|
|
9
|
+
#include "env.h"
|
|
10
|
+
#include "v8.h"
|
|
11
|
+
|
|
12
|
+
namespace node::crypto {
|
|
13
|
+
constexpr unsigned kChaCha20Poly1305AuthTagLength = 16;
|
|
14
|
+
|
|
15
|
+
struct ChaCha20Poly1305CipherConfig final : public MemoryRetainer {
|
|
16
|
+
CryptoJobMode mode;
|
|
17
|
+
ncrypto::Cipher cipher;
|
|
18
|
+
ByteSource iv;
|
|
19
|
+
ByteSource additional_data;
|
|
20
|
+
ByteSource tag;
|
|
21
|
+
|
|
22
|
+
ChaCha20Poly1305CipherConfig() = default;
|
|
23
|
+
|
|
24
|
+
ChaCha20Poly1305CipherConfig(ChaCha20Poly1305CipherConfig&& other) noexcept;
|
|
25
|
+
|
|
26
|
+
ChaCha20Poly1305CipherConfig& operator=(
|
|
27
|
+
ChaCha20Poly1305CipherConfig&& other) noexcept;
|
|
28
|
+
|
|
29
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
30
|
+
SET_MEMORY_INFO_NAME(ChaCha20Poly1305CipherConfig)
|
|
31
|
+
SET_SELF_SIZE(ChaCha20Poly1305CipherConfig)
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
struct ChaCha20Poly1305CipherTraits final {
|
|
35
|
+
static constexpr const char* JobName = "ChaCha20Poly1305CipherJob";
|
|
36
|
+
|
|
37
|
+
using AdditionalParameters = ChaCha20Poly1305CipherConfig;
|
|
38
|
+
|
|
39
|
+
static v8::Maybe<void> AdditionalConfig(
|
|
40
|
+
CryptoJobMode mode,
|
|
41
|
+
const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
42
|
+
unsigned int offset,
|
|
43
|
+
WebCryptoCipherMode cipher_mode,
|
|
44
|
+
ChaCha20Poly1305CipherConfig* config);
|
|
45
|
+
|
|
46
|
+
static WebCryptoCipherStatus DoCipher(
|
|
47
|
+
Environment* env,
|
|
48
|
+
const KeyObjectData& key_data,
|
|
49
|
+
WebCryptoCipherMode cipher_mode,
|
|
50
|
+
const ChaCha20Poly1305CipherConfig& params,
|
|
51
|
+
const ByteSource& in,
|
|
52
|
+
ByteSource* out);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
using ChaCha20Poly1305CryptoJob = CipherJob<ChaCha20Poly1305CipherTraits>;
|
|
56
|
+
|
|
57
|
+
namespace ChaCha20Poly1305 {
|
|
58
|
+
void Initialize(Environment* env, v8::Local<v8::Object> target);
|
|
59
|
+
void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
60
|
+
} // namespace ChaCha20Poly1305
|
|
61
|
+
} // namespace node::crypto
|
|
62
|
+
|
|
63
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
64
|
+
#endif // SRC_CRYPTO_CRYPTO_CHACHA20_POLY1305_H_
|
|
@@ -38,26 +38,24 @@ class CipherBase : public BaseObject {
|
|
|
38
38
|
};
|
|
39
39
|
enum AuthTagState {
|
|
40
40
|
kAuthTagUnknown,
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
kAuthTagSetByUser,
|
|
42
|
+
kAuthTagComputed,
|
|
43
43
|
};
|
|
44
44
|
static const unsigned kNoAuthTagLength = static_cast<unsigned>(-1);
|
|
45
45
|
|
|
46
46
|
void CommonInit(const char* cipher_type,
|
|
47
|
-
const
|
|
47
|
+
const ncrypto::Cipher& cipher,
|
|
48
48
|
const unsigned char* key,
|
|
49
49
|
int key_len,
|
|
50
50
|
const unsigned char* iv,
|
|
51
51
|
int iv_len,
|
|
52
52
|
unsigned int auth_tag_len);
|
|
53
|
-
void Init(const char* cipher_type,
|
|
54
|
-
const ArrayBufferOrViewContents<unsigned char>& key_buf,
|
|
55
|
-
unsigned int auth_tag_len);
|
|
56
53
|
void InitIv(const char* cipher_type,
|
|
57
54
|
const ByteSource& key_buf,
|
|
58
55
|
const ArrayBufferOrViewContents<unsigned char>& iv_buf,
|
|
59
56
|
unsigned int auth_tag_len);
|
|
60
|
-
bool InitAuthenticated(const char* cipher_type,
|
|
57
|
+
bool InitAuthenticated(const char* cipher_type,
|
|
58
|
+
int iv_len,
|
|
61
59
|
unsigned int auth_tag_len);
|
|
62
60
|
bool CheckCCMMessageLength(int message_len);
|
|
63
61
|
UpdateResult Update(const char* data, size_t len,
|
|
@@ -66,14 +64,10 @@ class CipherBase : public BaseObject {
|
|
|
66
64
|
bool SetAutoPadding(bool auto_padding);
|
|
67
65
|
|
|
68
66
|
bool IsAuthenticatedMode() const;
|
|
69
|
-
bool SetAAD(
|
|
70
|
-
|
|
71
|
-
int plaintext_len);
|
|
72
|
-
bool MaybePassAuthTagToOpenSSL();
|
|
67
|
+
bool SetAAD(const ArrayBufferOrViewContents<unsigned char>& data,
|
|
68
|
+
int plaintext_len);
|
|
73
69
|
|
|
74
70
|
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
75
|
-
static void Init(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
76
|
-
static void InitIv(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
77
71
|
static void Update(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
78
72
|
static void Final(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
79
73
|
static void SetAutoPadding(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -85,41 +79,37 @@ class CipherBase : public BaseObject {
|
|
|
85
79
|
CipherBase(Environment* env, v8::Local<v8::Object> wrap, CipherKind kind);
|
|
86
80
|
|
|
87
81
|
private:
|
|
88
|
-
|
|
82
|
+
ncrypto::CipherCtxPointer ctx_;
|
|
89
83
|
const CipherKind kind_;
|
|
90
84
|
AuthTagState auth_tag_state_;
|
|
91
85
|
unsigned int auth_tag_len_;
|
|
92
|
-
char auth_tag_[
|
|
86
|
+
char auth_tag_[ncrypto::Cipher::MAX_AUTH_TAG_LENGTH];
|
|
93
87
|
bool pending_auth_failed_;
|
|
94
88
|
int max_message_size_;
|
|
95
89
|
};
|
|
96
90
|
|
|
97
91
|
class PublicKeyCipher {
|
|
98
92
|
public:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
using Cipher_t =
|
|
94
|
+
ncrypto::DataPointer(const ncrypto::EVPKeyPointer&,
|
|
95
|
+
const ncrypto::Cipher::CipherParams& params,
|
|
96
|
+
const ncrypto::Buffer<const void>);
|
|
103
97
|
|
|
104
98
|
enum Operation {
|
|
105
99
|
kPublic,
|
|
106
100
|
kPrivate
|
|
107
101
|
};
|
|
108
102
|
|
|
109
|
-
template <
|
|
110
|
-
EVP_PKEY_cipher_init_t EVP_PKEY_cipher_init,
|
|
111
|
-
EVP_PKEY_cipher_t EVP_PKEY_cipher>
|
|
103
|
+
template <Cipher_t cipher>
|
|
112
104
|
static bool Cipher(Environment* env,
|
|
113
|
-
const
|
|
105
|
+
const ncrypto::EVPKeyPointer& pkey,
|
|
114
106
|
int padding,
|
|
115
|
-
const
|
|
107
|
+
const ncrypto::Digest& digest,
|
|
116
108
|
const ArrayBufferOrViewContents<unsigned char>& oaep_label,
|
|
117
109
|
const ArrayBufferOrViewContents<unsigned char>& data,
|
|
118
110
|
std::unique_ptr<v8::BackingStore>* out);
|
|
119
111
|
|
|
120
|
-
template <Operation operation,
|
|
121
|
-
EVP_PKEY_cipher_init_t EVP_PKEY_cipher_init,
|
|
122
|
-
EVP_PKEY_cipher_t EVP_PKEY_cipher>
|
|
112
|
+
template <Operation operation, Cipher_t cipher>
|
|
123
113
|
static void Cipher(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
124
114
|
};
|
|
125
115
|
|
|
@@ -152,10 +142,8 @@ class CipherJob final : public CryptoJob<CipherTraits> {
|
|
|
152
142
|
CryptoJobMode mode = GetCryptoJobMode(args[0]);
|
|
153
143
|
|
|
154
144
|
CHECK(args[1]->IsUint32()); // Cipher Mode
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
CHECK_LE(cmode, WebCryptoCipherMode::kWebCryptoCipherDecrypt);
|
|
158
|
-
WebCryptoCipherMode cipher_mode = static_cast<WebCryptoCipherMode>(cmode);
|
|
145
|
+
auto cipher_mode =
|
|
146
|
+
static_cast<WebCryptoCipherMode>(args[1].As<v8::Uint32>()->Value());
|
|
159
147
|
|
|
160
148
|
CHECK(args[2]->IsObject()); // KeyObject
|
|
161
149
|
KeyObjectHandle* key;
|
|
@@ -195,27 +183,23 @@ class CipherJob final : public CryptoJob<CipherTraits> {
|
|
|
195
183
|
CryptoJob<CipherTraits>::RegisterExternalReferences(New, registry);
|
|
196
184
|
}
|
|
197
185
|
|
|
198
|
-
CipherJob(
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
std::move(params)),
|
|
212
|
-
key_(key->Data()),
|
|
186
|
+
CipherJob(Environment* env,
|
|
187
|
+
v8::Local<v8::Object> object,
|
|
188
|
+
CryptoJobMode mode,
|
|
189
|
+
KeyObjectHandle* key,
|
|
190
|
+
WebCryptoCipherMode cipher_mode,
|
|
191
|
+
const ArrayBufferOrViewContents<char>& data,
|
|
192
|
+
AdditionalParams&& params)
|
|
193
|
+
: CryptoJob<CipherTraits>(env,
|
|
194
|
+
object,
|
|
195
|
+
AsyncWrap::PROVIDER_CIPHERREQUEST,
|
|
196
|
+
mode,
|
|
197
|
+
std::move(params)),
|
|
198
|
+
key_(key->Data().addRef()),
|
|
213
199
|
cipher_mode_(cipher_mode),
|
|
214
|
-
in_(mode == kCryptoJobAsync
|
|
215
|
-
? data.ToCopy()
|
|
216
|
-
: data.ToByteSource()) {}
|
|
200
|
+
in_(mode == kCryptoJobAsync ? data.ToCopy() : data.ToByteSource()) {}
|
|
217
201
|
|
|
218
|
-
|
|
202
|
+
const KeyObjectData& key() const { return key_; }
|
|
219
203
|
|
|
220
204
|
WebCryptoCipherMode cipher_mode() const { return cipher_mode_; }
|
|
221
205
|
|
|
@@ -249,9 +233,8 @@ class CipherJob final : public CryptoJob<CipherTraits> {
|
|
|
249
233
|
}
|
|
250
234
|
}
|
|
251
235
|
|
|
252
|
-
v8::Maybe<
|
|
253
|
-
|
|
254
|
-
v8::Local<v8::Value>* result) override {
|
|
236
|
+
v8::Maybe<void> ToResult(v8::Local<v8::Value>* err,
|
|
237
|
+
v8::Local<v8::Value>* result) override {
|
|
255
238
|
Environment* env = AsyncWrap::env();
|
|
256
239
|
CryptoErrorStore* errors = CryptoJob<CipherTraits>::errors();
|
|
257
240
|
|
|
@@ -262,11 +245,18 @@ class CipherJob final : public CryptoJob<CipherTraits> {
|
|
|
262
245
|
CHECK(errors->Empty());
|
|
263
246
|
*err = v8::Undefined(env->isolate());
|
|
264
247
|
*result = out_.ToArrayBuffer(env);
|
|
265
|
-
|
|
248
|
+
if (result->IsEmpty()) {
|
|
249
|
+
return v8::Nothing<void>();
|
|
250
|
+
}
|
|
251
|
+
} else {
|
|
252
|
+
*result = v8::Undefined(env->isolate());
|
|
253
|
+
if (!errors->ToException(env).ToLocal(err)) {
|
|
254
|
+
return v8::Nothing<void>();
|
|
255
|
+
}
|
|
266
256
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
return v8::
|
|
257
|
+
CHECK(!result->IsEmpty());
|
|
258
|
+
CHECK(!err->IsEmpty());
|
|
259
|
+
return v8::JustVoid();
|
|
270
260
|
}
|
|
271
261
|
|
|
272
262
|
SET_SELF_SIZE(CipherJob)
|
|
@@ -278,7 +268,7 @@ class CipherJob final : public CryptoJob<CipherTraits> {
|
|
|
278
268
|
}
|
|
279
269
|
|
|
280
270
|
private:
|
|
281
|
-
|
|
271
|
+
KeyObjectData key_;
|
|
282
272
|
WebCryptoCipherMode cipher_mode_;
|
|
283
273
|
ByteSource in_;
|
|
284
274
|
ByteSource out_;
|
|
@@ -51,7 +51,7 @@ inline void ClientHelloParser::Reset() {
|
|
|
51
51
|
|
|
52
52
|
inline void ClientHelloParser::Start(ClientHelloParser::OnHelloCb onhello_cb,
|
|
53
53
|
ClientHelloParser::OnEndCb onend_cb,
|
|
54
|
-
void*
|
|
54
|
+
void* cb_arg) {
|
|
55
55
|
if (!IsEnded())
|
|
56
56
|
return;
|
|
57
57
|
Reset();
|
|
@@ -61,7 +61,7 @@ inline void ClientHelloParser::Start(ClientHelloParser::OnHelloCb onhello_cb,
|
|
|
61
61
|
state_ = kWaiting;
|
|
62
62
|
onhello_cb_ = onhello_cb;
|
|
63
63
|
onend_cb_ = onend_cb;
|
|
64
|
-
cb_arg_ =
|
|
64
|
+
cb_arg_ = cb_arg;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
inline void ClientHelloParser::End() {
|
|
@@ -66,7 +66,7 @@ class ClientHelloParser {
|
|
|
66
66
|
void Parse(const uint8_t* data, size_t avail);
|
|
67
67
|
|
|
68
68
|
inline void Reset();
|
|
69
|
-
inline void Start(OnHelloCb onhello_cb, OnEndCb onend_cb, void*
|
|
69
|
+
inline void Start(OnHelloCb onhello_cb, OnEndCb onend_cb, void* cb_arg);
|
|
70
70
|
inline void End();
|
|
71
71
|
inline bool IsPaused() const;
|
|
72
72
|
inline bool IsEnded() const;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#ifndef SRC_CRYPTO_CRYPTO_COMMON_H_
|
|
2
|
+
#define SRC_CRYPTO_CRYPTO_COMMON_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <openssl/ssl.h>
|
|
7
|
+
#include <openssl/x509v3.h>
|
|
8
|
+
#include "ncrypto.h"
|
|
9
|
+
#include "node_crypto.h"
|
|
10
|
+
#include "v8.h"
|
|
11
|
+
|
|
12
|
+
#include <string>
|
|
13
|
+
|
|
14
|
+
namespace node {
|
|
15
|
+
namespace crypto {
|
|
16
|
+
|
|
17
|
+
ncrypto::SSLSessionPointer GetTLSSession(const unsigned char* buf,
|
|
18
|
+
size_t length);
|
|
19
|
+
|
|
20
|
+
v8::MaybeLocal<v8::Value> GetValidationErrorReason(Environment* env, int err);
|
|
21
|
+
|
|
22
|
+
v8::MaybeLocal<v8::Value> GetValidationErrorCode(Environment* env, int err);
|
|
23
|
+
|
|
24
|
+
v8::MaybeLocal<v8::Value> GetCert(Environment* env,
|
|
25
|
+
const ncrypto::SSLPointer& ssl);
|
|
26
|
+
|
|
27
|
+
v8::MaybeLocal<v8::Object> GetCipherInfo(Environment* env,
|
|
28
|
+
const ncrypto::SSLPointer& ssl);
|
|
29
|
+
|
|
30
|
+
v8::MaybeLocal<v8::Object> GetEphemeralKey(Environment* env,
|
|
31
|
+
const ncrypto::SSLPointer& ssl);
|
|
32
|
+
|
|
33
|
+
v8::MaybeLocal<v8::Value> GetPeerCert(Environment* env,
|
|
34
|
+
const ncrypto::SSLPointer& ssl,
|
|
35
|
+
bool abbreviated = false,
|
|
36
|
+
bool is_server = false);
|
|
37
|
+
|
|
38
|
+
v8::MaybeLocal<v8::Object> ECPointToBuffer(Environment* env,
|
|
39
|
+
const EC_GROUP* group,
|
|
40
|
+
const EC_POINT* point,
|
|
41
|
+
point_conversion_form_t form);
|
|
42
|
+
|
|
43
|
+
} // namespace crypto
|
|
44
|
+
} // namespace node
|
|
45
|
+
|
|
46
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
47
|
+
|
|
48
|
+
#endif // SRC_CRYPTO_CRYPTO_COMMON_H_
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
5
|
|
|
6
|
-
#include "crypto/crypto_util.h"
|
|
7
6
|
#include "base_object.h"
|
|
7
|
+
#include "crypto/crypto_keys.h"
|
|
8
|
+
#include "crypto/crypto_util.h"
|
|
8
9
|
#include "env.h"
|
|
9
10
|
#include "memory_tracker.h"
|
|
10
11
|
#include "v8.h"
|
|
@@ -18,12 +19,11 @@ constexpr int kMaxSupportedVersion = TLS1_3_VERSION;
|
|
|
18
19
|
void GetRootCertificates(
|
|
19
20
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
20
21
|
|
|
21
|
-
void IsExtraRootCertsFileLoaded(
|
|
22
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
23
|
-
|
|
24
22
|
X509_STORE* NewRootCertStore();
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
X509_STORE* GetOrCreateRootCertStore();
|
|
25
|
+
|
|
26
|
+
ncrypto::BIOPointer LoadBIO(Environment* env, v8::Local<v8::Value> v);
|
|
27
27
|
|
|
28
28
|
class SecureContext final : public BaseObject {
|
|
29
29
|
public:
|
|
@@ -38,32 +38,40 @@ class SecureContext final : public BaseObject {
|
|
|
38
38
|
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
39
39
|
Environment* env);
|
|
40
40
|
static void Initialize(Environment* env, v8::Local<v8::Object> target);
|
|
41
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
41
42
|
static SecureContext* Create(Environment* env);
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
const ncrypto::SSLCtxPointer& ctx() const { return ctx_; }
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
// Non-const ctx() that allows for non-default initialization of
|
|
47
|
+
// the SecureContext.
|
|
48
|
+
ncrypto::SSLCtxPointer& ctx() { return ctx_; }
|
|
46
49
|
|
|
47
|
-
SSLPointer CreateSSL();
|
|
50
|
+
ncrypto::SSLPointer CreateSSL();
|
|
48
51
|
|
|
49
52
|
void SetGetSessionCallback(GetSessionCb cb);
|
|
50
53
|
void SetKeylogCallback(KeylogCb cb);
|
|
51
54
|
void SetNewSessionCallback(NewSessionCb cb);
|
|
52
55
|
void SetSelectSNIContextCallback(SelectSNIContextCb cb);
|
|
53
56
|
|
|
57
|
+
inline const ncrypto::X509Pointer& issuer() const { return issuer_; }
|
|
58
|
+
inline const ncrypto::X509Pointer& cert() const { return cert_; }
|
|
59
|
+
|
|
60
|
+
v8::Maybe<void> AddCert(Environment* env, ncrypto::BIOPointer&& bio);
|
|
61
|
+
v8::Maybe<void> SetCRL(Environment* env, const ncrypto::BIOPointer& bio);
|
|
62
|
+
v8::Maybe<void> UseKey(Environment* env, const KeyObjectData& key);
|
|
63
|
+
|
|
64
|
+
void SetCACert(const ncrypto::BIOPointer& bio);
|
|
65
|
+
void SetRootCerts();
|
|
66
|
+
|
|
67
|
+
void SetX509StoreFlag(unsigned long flags); // NOLINT(runtime/int)
|
|
68
|
+
X509_STORE* GetCertStoreOwnedByThisSecureContext();
|
|
69
|
+
|
|
54
70
|
// TODO(joyeecheung): track the memory used by OpenSSL types
|
|
55
71
|
SET_NO_MEMORY_INFO()
|
|
56
72
|
SET_MEMORY_INFO_NAME(SecureContext)
|
|
57
73
|
SET_SELF_SIZE(SecureContext)
|
|
58
74
|
|
|
59
|
-
SSLCtxPointer ctx_;
|
|
60
|
-
X509Pointer cert_;
|
|
61
|
-
X509Pointer issuer_;
|
|
62
|
-
#ifndef OPENSSL_NO_ENGINE
|
|
63
|
-
bool client_cert_engine_provided_ = false;
|
|
64
|
-
EnginePointer private_key_engine_;
|
|
65
|
-
#endif // !OPENSSL_NO_ENGINE
|
|
66
|
-
|
|
67
75
|
static const int kMaxSessionSize = 10 * 1024;
|
|
68
76
|
|
|
69
77
|
// See TicketKeyCallback
|
|
@@ -73,10 +81,6 @@ class SecureContext final : public BaseObject {
|
|
|
73
81
|
static const int kTicketKeyNameIndex = 3;
|
|
74
82
|
static const int kTicketKeyIVIndex = 4;
|
|
75
83
|
|
|
76
|
-
unsigned char ticket_key_name_[16];
|
|
77
|
-
unsigned char ticket_key_aes_[16];
|
|
78
|
-
unsigned char ticket_key_hmac_[16];
|
|
79
|
-
|
|
80
84
|
protected:
|
|
81
85
|
// OpenSSL structures are opaque. This is sizeof(SSL_CTX) for OpenSSL 1.1.1b:
|
|
82
86
|
static const int64_t kExternalSize = 1024;
|
|
@@ -89,6 +93,8 @@ class SecureContext final : public BaseObject {
|
|
|
89
93
|
#endif // !OPENSSL_NO_ENGINE
|
|
90
94
|
static void SetCert(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
91
95
|
static void AddCACert(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
96
|
+
static void SetAllowPartialTrustChain(
|
|
97
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
92
98
|
static void AddCRL(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
93
99
|
static void AddRootCerts(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
94
100
|
static void SetCipherSuites(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -113,8 +119,6 @@ class SecureContext final : public BaseObject {
|
|
|
113
119
|
#endif // !OPENSSL_NO_ENGINE
|
|
114
120
|
static void GetTicketKeys(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
115
121
|
static void SetTicketKeys(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
116
|
-
static void SetFreeListLength(
|
|
117
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
118
122
|
static void EnableTicketKeyCallback(
|
|
119
123
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
120
124
|
static void CtxGetter(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
@@ -138,8 +142,28 @@ class SecureContext final : public BaseObject {
|
|
|
138
142
|
|
|
139
143
|
SecureContext(Environment* env, v8::Local<v8::Object> wrap);
|
|
140
144
|
void Reset();
|
|
145
|
+
|
|
146
|
+
private:
|
|
147
|
+
ncrypto::SSLCtxPointer ctx_;
|
|
148
|
+
ncrypto::X509Pointer cert_;
|
|
149
|
+
ncrypto::X509Pointer issuer_;
|
|
150
|
+
// Non-owning cache for SSL_CTX_get_cert_store(ctx_.get())
|
|
151
|
+
X509_STORE* own_cert_store_cache_ = nullptr;
|
|
152
|
+
#ifndef OPENSSL_NO_ENGINE
|
|
153
|
+
bool client_cert_engine_provided_ = false;
|
|
154
|
+
ncrypto::EnginePointer private_key_engine_;
|
|
155
|
+
#endif // !OPENSSL_NO_ENGINE
|
|
156
|
+
|
|
157
|
+
unsigned char ticket_key_name_[16];
|
|
158
|
+
unsigned char ticket_key_aes_[16];
|
|
159
|
+
unsigned char ticket_key_hmac_[16];
|
|
141
160
|
};
|
|
142
161
|
|
|
162
|
+
int SSL_CTX_use_certificate_chain(SSL_CTX* ctx,
|
|
163
|
+
ncrypto::BIOPointer&& in,
|
|
164
|
+
ncrypto::X509Pointer* cert,
|
|
165
|
+
ncrypto::X509Pointer* issuer);
|
|
166
|
+
|
|
143
167
|
} // namespace crypto
|
|
144
168
|
} // namespace node
|
|
145
169
|
|
|
@@ -14,55 +14,29 @@
|
|
|
14
14
|
|
|
15
15
|
namespace node {
|
|
16
16
|
namespace crypto {
|
|
17
|
-
class DiffieHellman : public BaseObject {
|
|
17
|
+
class DiffieHellman final : public BaseObject {
|
|
18
18
|
public:
|
|
19
19
|
static void Initialize(Environment* env, v8::Local<v8::Object> target);
|
|
20
20
|
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
static void Stateless(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
27
|
-
|
|
28
|
-
protected:
|
|
29
|
-
static void DiffieHellmanGroup(
|
|
30
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
31
|
-
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
32
|
-
static void GenerateKeys(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
33
|
-
static void GetPrime(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
34
|
-
static void GetGenerator(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
35
|
-
static void GetPublicKey(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
36
|
-
static void GetPrivateKey(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
37
|
-
static void ComputeSecret(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
38
|
-
static void SetPublicKey(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
39
|
-
static void SetPrivateKey(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
40
|
-
static void VerifyErrorGetter(
|
|
41
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
42
|
-
|
|
43
|
-
DiffieHellman(Environment* env, v8::Local<v8::Object> wrap);
|
|
22
|
+
DiffieHellman(Environment* env,
|
|
23
|
+
v8::Local<v8::Object> wrap,
|
|
24
|
+
ncrypto::DHPointer dh);
|
|
25
|
+
operator ncrypto::DHPointer&() { return dh_; }
|
|
44
26
|
|
|
45
27
|
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
46
28
|
SET_MEMORY_INFO_NAME(DiffieHellman)
|
|
47
29
|
SET_SELF_SIZE(DiffieHellman)
|
|
48
30
|
|
|
49
31
|
private:
|
|
50
|
-
|
|
51
|
-
const BIGNUM* (*get_field)(const DH*),
|
|
52
|
-
const char* err_if_null);
|
|
53
|
-
static void SetKey(const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
54
|
-
int (*set_field)(DH*, BIGNUM*), const char* what);
|
|
55
|
-
bool VerifyContext();
|
|
56
|
-
|
|
57
|
-
int verifyError_;
|
|
58
|
-
DHPointer dh_;
|
|
32
|
+
ncrypto::DHPointer dh_;
|
|
59
33
|
};
|
|
60
34
|
|
|
61
35
|
struct DhKeyPairParams final : public MemoryRetainer {
|
|
62
36
|
// Diffie-Hellman can either generate keys using a fixed prime, or by first
|
|
63
37
|
// generating a random prime of a given size (in bits). Only one of both
|
|
64
38
|
// options may be specified.
|
|
65
|
-
std::variant<BignumPointer, int> prime;
|
|
39
|
+
std::variant<ncrypto::BignumPointer, int> prime;
|
|
66
40
|
unsigned int generator;
|
|
67
41
|
SET_NO_MEMORY_INFO()
|
|
68
42
|
SET_MEMORY_INFO_NAME(DhKeyPairParams)
|
|
@@ -75,9 +49,9 @@ struct DhKeyGenTraits final {
|
|
|
75
49
|
using AdditionalParameters = DhKeyPairGenConfig;
|
|
76
50
|
static constexpr const char* JobName = "DhKeyPairGenJob";
|
|
77
51
|
|
|
78
|
-
static EVPKeyCtxPointer Setup(DhKeyPairGenConfig* params);
|
|
52
|
+
static ncrypto::EVPKeyCtxPointer Setup(DhKeyPairGenConfig* params);
|
|
79
53
|
|
|
80
|
-
static v8::Maybe<
|
|
54
|
+
static v8::Maybe<void> AdditionalConfig(
|
|
81
55
|
CryptoJobMode mode,
|
|
82
56
|
const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
83
57
|
unsigned int* offset,
|
|
@@ -96,23 +70,22 @@ struct DHKeyExportTraits final {
|
|
|
96
70
|
static constexpr const char* JobName = "DHKeyExportJob";
|
|
97
71
|
using AdditionalParameters = DHKeyExportConfig;
|
|
98
72
|
|
|
99
|
-
static v8::Maybe<
|
|
73
|
+
static v8::Maybe<void> AdditionalConfig(
|
|
100
74
|
const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
101
75
|
unsigned int offset,
|
|
102
76
|
DHKeyExportConfig* config);
|
|
103
77
|
|
|
104
|
-
static WebCryptoKeyExportStatus DoExport(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
ByteSource* out);
|
|
78
|
+
static WebCryptoKeyExportStatus DoExport(const KeyObjectData& key_data,
|
|
79
|
+
WebCryptoKeyFormat format,
|
|
80
|
+
const DHKeyExportConfig& params,
|
|
81
|
+
ByteSource* out);
|
|
109
82
|
};
|
|
110
83
|
|
|
111
84
|
using DHKeyExportJob = KeyExportJob<DHKeyExportTraits>;
|
|
112
85
|
|
|
113
86
|
struct DHBitsConfig final : public MemoryRetainer {
|
|
114
|
-
|
|
115
|
-
|
|
87
|
+
KeyObjectData private_key;
|
|
88
|
+
KeyObjectData public_key;
|
|
116
89
|
SET_NO_MEMORY_INFO()
|
|
117
90
|
SET_MEMORY_INFO_NAME(DHBitsConfig)
|
|
118
91
|
SET_SELF_SIZE(DHBitsConfig)
|
|
@@ -124,30 +97,27 @@ struct DHBitsTraits final {
|
|
|
124
97
|
static constexpr AsyncWrap::ProviderType Provider =
|
|
125
98
|
AsyncWrap::PROVIDER_DERIVEBITSREQUEST;
|
|
126
99
|
|
|
127
|
-
static v8::Maybe<
|
|
100
|
+
static v8::Maybe<void> AdditionalConfig(
|
|
128
101
|
CryptoJobMode mode,
|
|
129
102
|
const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
130
103
|
unsigned int offset,
|
|
131
104
|
DHBitsConfig* params);
|
|
132
105
|
|
|
133
|
-
static bool DeriveBits(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
106
|
+
static bool DeriveBits(Environment* env,
|
|
107
|
+
const DHBitsConfig& params,
|
|
108
|
+
ByteSource* out_,
|
|
109
|
+
CryptoJobMode mode);
|
|
137
110
|
|
|
138
|
-
static v8::
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
ByteSource* out,
|
|
142
|
-
v8::Local<v8::Value>* result);
|
|
111
|
+
static v8::MaybeLocal<v8::Value> EncodeOutput(Environment* env,
|
|
112
|
+
const DHBitsConfig& params,
|
|
113
|
+
ByteSource* out);
|
|
143
114
|
};
|
|
144
115
|
|
|
145
116
|
using DHBitsJob = DeriveBitsJob<DHBitsTraits>;
|
|
146
117
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
v8::Local<v8::Object> target);
|
|
118
|
+
bool GetDhKeyDetail(Environment* env,
|
|
119
|
+
const KeyObjectData& key,
|
|
120
|
+
v8::Local<v8::Object> target);
|
|
151
121
|
|
|
152
122
|
} // namespace crypto
|
|
153
123
|
} // namespace node
|