@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.
Files changed (606) hide show
  1. package/binding.gyp +1 -1
  2. package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
  3. package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
  4. package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
  5. package/dist/bindings/cws_linux_arm64_node115.node +0 -0
  6. package/dist/bindings/cws_linux_arm64_node127.node +0 -0
  7. package/dist/bindings/cws_linux_x64_node115.node +0 -0
  8. package/dist/bindings/cws_linux_x64_node127.node +0 -0
  9. package/dist/bindings/cws_linux_x64_node137.node +0 -0
  10. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  11. package/dist/bindings/cws_win32_x64_node115.node +0 -0
  12. package/dist/bindings/cws_win32_x64_node127.node +0 -0
  13. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  14. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  15. package/package.json +1 -1
  16. package/src/Addon.h +13 -23
  17. package/src/Socket.h +0 -1
  18. package/src/headers/22/acorn_version.h +6 -0
  19. package/src/headers/22/aliased_buffer-inl.h +243 -0
  20. package/src/headers/22/aliased_buffer.h +206 -0
  21. package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
  22. package/src/headers/{18 → 22}/async_wrap.h +65 -59
  23. package/src/headers/{18 → 22}/base_object-inl.h +57 -117
  24. package/src/headers/{18 → 22}/base_object.h +58 -30
  25. package/src/headers/22/base_object_types.h +74 -0
  26. package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
  27. package/src/headers/22/blob_serializer_deserializer.h +132 -0
  28. package/src/headers/{16 → 22}/callback_queue.h +1 -0
  29. package/src/headers/{16 → 22}/cares_wrap.h +27 -20
  30. package/src/headers/22/cjs_module_lexer_version.h +6 -0
  31. package/src/headers/22/cleanup_queue-inl.h +62 -0
  32. package/src/headers/22/cleanup_queue.h +85 -0
  33. package/src/headers/22/compile_cache.h +104 -0
  34. package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
  35. package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
  36. package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
  37. package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
  38. package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
  39. package/src/headers/22/crypto/ncrypto.h +752 -0
  40. package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
  41. package/src/headers/{18 → 22}/debug_utils.h +25 -19
  42. package/src/headers/22/encoding_binding.h +59 -0
  43. package/src/headers/{14 → 22}/env-inl.h +276 -409
  44. package/src/headers/22/env.h +1266 -0
  45. package/src/headers/22/env_properties.h +497 -0
  46. package/src/headers/{18 → 22}/handle_wrap.h +2 -0
  47. package/src/headers/{18 → 22}/histogram.h +88 -48
  48. package/src/headers/{16 → 22}/inspector_agent.h +17 -1
  49. package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
  50. package/src/headers/22/js_native_api.h +619 -0
  51. package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
  52. package/src/headers/22/js_native_api_v8.h +485 -0
  53. package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
  54. package/src/headers/22/json_parser.h +40 -0
  55. package/src/headers/{16 → 22}/json_utils.h +19 -8
  56. package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
  57. package/src/headers/{14 → 22}/memory_tracker.h +13 -8
  58. package/src/headers/{16 → 22}/module_wrap.h +49 -19
  59. package/src/headers/22/ncrypto/ncrypto.h +752 -0
  60. package/src/headers/{18 → 22}/node.h +465 -68
  61. package/src/headers/{18 → 22}/node_api.h +66 -81
  62. package/src/headers/{18 → 22}/node_api_internals.h +8 -4
  63. package/src/headers/{18 → 22}/node_api_types.h +5 -0
  64. package/src/headers/22/node_binding.h +154 -0
  65. package/src/headers/{18 → 22}/node_blob.h +46 -78
  66. package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
  67. package/src/headers/{18 → 22}/node_bob.h +2 -6
  68. package/src/headers/{18 → 22}/node_buffer.h +1 -1
  69. package/src/headers/22/node_builtins.h +220 -0
  70. package/src/headers/{18 → 22}/node_constants.h +3 -5
  71. package/src/headers/22/node_context_data.h +168 -0
  72. package/src/headers/22/node_contextify.h +199 -0
  73. package/src/headers/{16 → 22}/node_crypto.h +1 -2
  74. package/src/headers/22/node_dotenv.h +45 -0
  75. package/src/headers/{18 → 22}/node_errors.h +86 -27
  76. package/src/headers/22/node_exit_code.h +54 -0
  77. package/src/headers/22/node_external_reference.h +249 -0
  78. package/src/headers/{18 → 22}/node_file-inl.h +127 -30
  79. package/src/headers/{16 → 22}/node_file.h +122 -11
  80. package/src/headers/{18 → 22}/node_http2.h +28 -11
  81. package/src/headers/{16 → 22}/node_http2_state.h +34 -25
  82. package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
  83. package/src/headers/{18 → 22}/node_http_common.h +56 -55
  84. package/src/headers/{16 → 22}/node_i18n.h +5 -18
  85. package/src/headers/{18 → 22}/node_internals.h +121 -59
  86. package/src/headers/{18 → 22}/node_main_instance.h +4 -31
  87. package/src/headers/{18 → 22}/node_messaging.h +27 -10
  88. package/src/headers/{18 → 22}/node_metadata.h +23 -1
  89. package/src/headers/{18 → 22}/node_options-inl.h +24 -11
  90. package/src/headers/{18 → 22}/node_options.h +124 -39
  91. package/src/headers/{18 → 22}/node_perf.h +0 -2
  92. package/src/headers/{18 → 22}/node_perf_common.h +20 -9
  93. package/src/headers/{18 → 22}/node_platform.h +11 -5
  94. package/src/headers/{18 → 22}/node_process.h +26 -14
  95. package/src/headers/22/node_realm-inl.h +145 -0
  96. package/src/headers/22/node_realm.h +184 -0
  97. package/src/headers/{16 → 22}/node_report.h +13 -17
  98. package/src/headers/{16 → 22}/node_revert.h +3 -3
  99. package/src/headers/{16 → 22}/node_root_certs.h +902 -461
  100. package/src/headers/22/node_sea.h +64 -0
  101. package/src/headers/22/node_shadow_realm.h +46 -0
  102. package/src/headers/22/node_snapshot_builder.h +57 -0
  103. package/src/headers/22/node_snapshotable.h +174 -0
  104. package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
  105. package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
  106. package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
  107. package/src/headers/22/node_threadsafe_cow.h +105 -0
  108. package/src/headers/22/node_union_bytes.h +81 -0
  109. package/src/headers/22/node_url.h +96 -0
  110. package/src/headers/22/node_v8.h +77 -0
  111. package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
  112. package/src/headers/{16 → 22}/node_version.h +21 -9
  113. package/src/headers/22/node_wasi.h +185 -0
  114. package/src/headers/{14 → 22}/node_watchdog.h +2 -0
  115. package/src/headers/{18 → 22}/node_worker.h +7 -2
  116. package/src/headers/22/permission/child_process_permission.h +31 -0
  117. package/src/headers/22/permission/fs_permission.h +167 -0
  118. package/src/headers/22/permission/inspector_permission.h +31 -0
  119. package/src/headers/22/permission/permission.h +99 -0
  120. package/src/headers/22/permission/permission_base.h +60 -0
  121. package/src/headers/22/permission/wasi_permission.h +31 -0
  122. package/src/headers/22/permission/worker_permission.h +31 -0
  123. package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
  124. package/src/headers/{14 → 22}/spawn_sync.h +3 -3
  125. package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
  126. package/src/headers/{18 → 22}/stream_base.h +35 -16
  127. package/src/headers/{18 → 22}/stream_pipe.h +3 -4
  128. package/src/headers/{16 → 22}/stream_wrap.h +2 -1
  129. package/src/headers/{18 → 22}/string_bytes.h +5 -14
  130. package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
  131. package/src/headers/{16 → 22}/string_decoder.h +0 -1
  132. package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
  133. package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
  134. package/src/headers/22/timers.h +76 -0
  135. package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
  136. package/src/headers/{16 → 22}/udp_wrap.h +8 -5
  137. package/src/headers/22/undici_version.h +6 -0
  138. package/src/headers/{18 → 22}/util-inl.h +97 -127
  139. package/src/headers/{18 → 22}/util.h +293 -106
  140. package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
  141. package/src/headers/24/acorn_version.h +6 -0
  142. package/src/headers/24/addon_permission.h +31 -0
  143. package/src/headers/{16/tracing → 24}/agent.h +1 -1
  144. package/src/headers/24/aliased_buffer-inl.h +244 -0
  145. package/src/headers/24/aliased_buffer.h +206 -0
  146. package/src/headers/24/amaro_version.h +6 -0
  147. package/src/headers/24/application.h +165 -0
  148. package/src/headers/24/async_context_frame.h +33 -0
  149. package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
  150. package/src/headers/{16 → 24}/async_wrap.h +86 -88
  151. package/src/headers/{16 → 24}/base_object-inl.h +75 -119
  152. package/src/headers/{16 → 24}/base_object.h +84 -40
  153. package/src/headers/24/base_object_types.h +74 -0
  154. package/src/headers/24/bindingdata.h +272 -0
  155. package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
  156. package/src/headers/24/blob_serializer_deserializer.h +132 -0
  157. package/src/headers/{18 → 24}/callback_queue.h +1 -0
  158. package/src/headers/{18 → 24}/cares_wrap.h +68 -144
  159. package/src/headers/24/child_process_permission.h +31 -0
  160. package/src/headers/24/cid.h +127 -0
  161. package/src/headers/24/cjs_module_lexer_version.h +6 -0
  162. package/src/headers/24/cleanup_queue-inl.h +36 -0
  163. package/src/headers/24/cleanup_queue.h +79 -0
  164. package/src/headers/24/compile_cache.h +113 -0
  165. package/src/headers/24/cppgc_helpers-inl.h +65 -0
  166. package/src/headers/24/cppgc_helpers.h +162 -0
  167. package/src/headers/24/crypto/crypto_aes.h +97 -0
  168. package/src/headers/24/crypto/crypto_argon2.h +86 -0
  169. package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
  170. package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
  171. package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
  172. package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
  173. package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
  174. package/src/headers/24/crypto/crypto_common.h +48 -0
  175. package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
  176. package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
  177. package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
  178. package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
  179. package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
  180. package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
  181. package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
  182. package/src/headers/24/crypto/crypto_kem.h +113 -0
  183. package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
  184. package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
  185. package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
  186. package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
  187. package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
  188. package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
  189. package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
  190. package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
  191. package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
  192. package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
  193. package/src/headers/24/crypto/crypto_x509.h +140 -0
  194. package/src/headers/24/data.h +148 -0
  195. package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
  196. package/src/headers/{16 → 24}/debug_utils.h +31 -22
  197. package/src/headers/24/defs.h +254 -0
  198. package/src/headers/24/embedded_data.h +17 -0
  199. package/src/headers/24/encoding_binding.h +60 -0
  200. package/src/headers/24/endpoint.h +421 -0
  201. package/src/headers/{16 → 24}/env-inl.h +198 -540
  202. package/src/headers/24/env.h +1257 -0
  203. package/src/headers/24/env_properties.h +561 -0
  204. package/src/headers/24/fs_permission.h +167 -0
  205. package/src/headers/{16 → 24}/handle_wrap.h +4 -2
  206. package/src/headers/{16 → 24}/histogram-inl.h +34 -15
  207. package/src/headers/24/histogram.h +279 -0
  208. package/src/headers/24/http3.h +44 -0
  209. package/src/headers/{18 → 24}/inspector_agent.h +23 -2
  210. package/src/headers/24/inspector_permission.h +31 -0
  211. package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
  212. package/src/headers/24/io_agent.h +30 -0
  213. package/src/headers/{18 → 24}/js_native_api.h +74 -30
  214. package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
  215. package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
  216. package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
  217. package/src/headers/24/json_parser.h +40 -0
  218. package/src/headers/{18 → 24}/json_utils.h +19 -8
  219. package/src/headers/24/logstream.h +81 -0
  220. package/src/headers/24/main_thread_interface.h +116 -0
  221. package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
  222. package/src/headers/{16 → 24}/memory_tracker.h +58 -9
  223. package/src/headers/24/module_wrap.h +229 -0
  224. package/src/headers/24/ncrypto.h +1625 -0
  225. package/src/headers/24/network_agent.h +118 -0
  226. package/src/headers/24/network_inspector.h +45 -0
  227. package/src/headers/24/network_resource_manager.h +29 -0
  228. package/src/headers/{16 → 24}/node.h +560 -72
  229. package/src/headers/24/node_api.h +269 -0
  230. package/src/headers/24/node_api_internals.h +46 -0
  231. package/src/headers/{16 → 24}/node_api_types.h +13 -11
  232. package/src/headers/24/node_binding.h +163 -0
  233. package/src/headers/{16 → 24}/node_blob.h +46 -78
  234. package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
  235. package/src/headers/{16 → 24}/node_bob.h +2 -6
  236. package/src/headers/{14 → 24}/node_buffer.h +1 -1
  237. package/src/headers/24/node_builtins.h +223 -0
  238. package/src/headers/24/node_config_file.h +65 -0
  239. package/src/headers/{14 → 24}/node_constants.h +3 -5
  240. package/src/headers/24/node_context_data.h +168 -0
  241. package/src/headers/24/node_contextify.h +261 -0
  242. package/src/headers/{18 → 24}/node_crypto.h +7 -2
  243. package/src/headers/24/node_debug.h +25 -0
  244. package/src/headers/24/node_dotenv.h +45 -0
  245. package/src/headers/{16 → 24}/node_errors.h +146 -32
  246. package/src/headers/24/node_exit_code.h +54 -0
  247. package/src/headers/{18 → 24}/node_external_reference.h +44 -22
  248. package/src/headers/{16 → 24}/node_file-inl.h +156 -50
  249. package/src/headers/{18 → 24}/node_file.h +129 -15
  250. package/src/headers/{16 → 24}/node_http2.h +53 -18
  251. package/src/headers/{14 → 24}/node_http2_state.h +35 -25
  252. package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
  253. package/src/headers/{16 → 24}/node_http_common.h +63 -59
  254. package/src/headers/{18 → 24}/node_i18n.h +5 -18
  255. package/src/headers/{16 → 24}/node_internals.h +131 -76
  256. package/src/headers/24/node_json.h +24 -0
  257. package/src/headers/24/node_large_page.h +34 -0
  258. package/src/headers/24/node_locks.h +180 -0
  259. package/src/headers/{14 → 24}/node_main_instance.h +15 -44
  260. package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
  261. package/src/headers/{16 → 24}/node_messaging.h +27 -11
  262. package/src/headers/{16 → 24}/node_metadata.h +44 -2
  263. package/src/headers/24/node_modules.h +93 -0
  264. package/src/headers/{16 → 24}/node_options-inl.h +93 -46
  265. package/src/headers/{16 → 24}/node_options.h +251 -63
  266. package/src/headers/{16 → 24}/node_perf.h +6 -25
  267. package/src/headers/{16 → 24}/node_perf_common.h +23 -10
  268. package/src/headers/24/node_platform.h +286 -0
  269. package/src/headers/24/node_process.h +111 -0
  270. package/src/headers/24/node_realm-inl.h +153 -0
  271. package/src/headers/24/node_realm.h +236 -0
  272. package/src/headers/{18 → 24}/node_report.h +13 -17
  273. package/src/headers/{18 → 24}/node_revert.h +3 -3
  274. package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
  275. package/src/headers/24/node_sea.h +74 -0
  276. package/src/headers/24/node_shadow_realm.h +46 -0
  277. package/src/headers/24/node_snapshot_builder.h +57 -0
  278. package/src/headers/24/node_snapshotable.h +174 -0
  279. package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
  280. package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
  281. package/src/headers/24/node_sqlite.h +270 -0
  282. package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
  283. package/src/headers/24/node_string.h +101 -0
  284. package/src/headers/24/node_task_runner.h +92 -0
  285. package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
  286. package/src/headers/24/node_threadsafe_cow.h +105 -0
  287. package/src/headers/24/node_union_bytes.h +81 -0
  288. package/src/headers/24/node_url.h +101 -0
  289. package/src/headers/24/node_url_pattern.h +118 -0
  290. package/src/headers/24/node_v8.h +77 -0
  291. package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
  292. package/src/headers/{18 → 24}/node_version.h +18 -6
  293. package/src/headers/24/node_wasi.h +185 -0
  294. package/src/headers/24/node_wasm_web_api.h +55 -0
  295. package/src/headers/{18 → 24}/node_watchdog.h +2 -0
  296. package/src/headers/24/node_webstorage.h +60 -0
  297. package/src/headers/{16 → 24}/node_worker.h +24 -10
  298. package/src/headers/24/packet.h +155 -0
  299. package/src/headers/24/path.h +33 -0
  300. package/src/headers/24/permission/addon_permission.h +31 -0
  301. package/src/headers/24/permission/child_process_permission.h +31 -0
  302. package/src/headers/24/permission/fs_permission.h +167 -0
  303. package/src/headers/24/permission/inspector_permission.h +31 -0
  304. package/src/headers/24/permission/permission.h +100 -0
  305. package/src/headers/24/permission/permission_base.h +65 -0
  306. package/src/headers/24/permission/wasi_permission.h +31 -0
  307. package/src/headers/24/permission/worker_permission.h +31 -0
  308. package/src/headers/24/permission.h +100 -0
  309. package/src/headers/24/permission_base.h +65 -0
  310. package/src/headers/24/preferredaddress.h +72 -0
  311. package/src/headers/24/protocol_helper.h +27 -0
  312. package/src/headers/24/queue.h +306 -0
  313. package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
  314. package/src/headers/{16 → 24}/req_wrap.h +3 -1
  315. package/src/headers/24/runtime_agent.h +41 -0
  316. package/src/headers/24/session.h +528 -0
  317. package/src/headers/24/sessionticket.h +108 -0
  318. package/src/headers/{18 → 24}/spawn_sync.h +9 -8
  319. package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
  320. package/src/headers/{16 → 24}/stream_base.h +43 -19
  321. package/src/headers/{16 → 24}/stream_pipe.h +7 -4
  322. package/src/headers/{18 → 24}/stream_wrap.h +2 -3
  323. package/src/headers/24/streams.h +370 -0
  324. package/src/headers/{16 → 24}/string_bytes.h +8 -21
  325. package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
  326. package/src/headers/{18 → 24}/string_decoder.h +0 -1
  327. package/src/headers/24/target_agent.h +75 -0
  328. package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
  329. package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
  330. package/src/headers/24/timer_wrap-inl.h +32 -0
  331. package/src/headers/{16 → 24}/timer_wrap.h +7 -4
  332. package/src/headers/24/timers.h +75 -0
  333. package/src/headers/24/tlscontext.h +228 -0
  334. package/src/headers/24/tokens.h +256 -0
  335. package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
  336. package/src/headers/24/traced_value.h +129 -0
  337. package/src/headers/24/tracing_agent.h +43 -0
  338. package/src/headers/24/transportparams.h +166 -0
  339. package/src/headers/{16 → 24}/tty_wrap.h +0 -1
  340. package/src/headers/{18 → 24}/udp_wrap.h +8 -5
  341. package/src/headers/24/undici_version.h +6 -0
  342. package/src/headers/{16 → 24}/util-inl.h +267 -131
  343. package/src/headers/{16 → 24}/util.h +338 -146
  344. package/src/headers/24/v8-external-memory-accounter.h +60 -0
  345. package/src/headers/24/v8-fast-api-calls.h +819 -0
  346. package/src/headers/24/v8-inspector.h +426 -0
  347. package/src/headers/24/wasi_permission.h +31 -0
  348. package/src/headers/24/worker_agent.h +40 -0
  349. package/src/headers/24/worker_inspector.h +124 -0
  350. package/src/headers/24/worker_permission.h +31 -0
  351. package/src/headers/24/zlib_version.h +6 -0
  352. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  353. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  354. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  355. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  356. package/dist/bindings/cws_linux_arm64_node83.node +0 -0
  357. package/dist/bindings/cws_linux_arm64_node93.node +0 -0
  358. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  359. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  360. package/src/headers/14/aliased_buffer.h +0 -263
  361. package/src/headers/14/allocated_buffer-inl.h +0 -110
  362. package/src/headers/14/allocated_buffer.h +0 -73
  363. package/src/headers/14/async_wrap.h +0 -230
  364. package/src/headers/14/base64.h +0 -183
  365. package/src/headers/14/base_object-inl.h +0 -371
  366. package/src/headers/14/base_object.h +0 -281
  367. package/src/headers/14/callback_queue-inl.h +0 -97
  368. package/src/headers/14/callback_queue.h +0 -78
  369. package/src/headers/14/debug_utils.h +0 -181
  370. package/src/headers/14/env.h +0 -1388
  371. package/src/headers/14/handle_wrap.h +0 -117
  372. package/src/headers/14/histogram-inl.h +0 -83
  373. package/src/headers/14/histogram.h +0 -98
  374. package/src/headers/14/inspector_agent.h +0 -149
  375. package/src/headers/14/inspector_profiler.h +0 -137
  376. package/src/headers/14/js_native_api.h +0 -544
  377. package/src/headers/14/js_native_api_types.h +0 -143
  378. package/src/headers/14/js_native_api_v8.h +0 -301
  379. package/src/headers/14/js_native_api_v8_internals.h +0 -38
  380. package/src/headers/14/json_utils.h +0 -161
  381. package/src/headers/14/memory_tracker-inl.h +0 -355
  382. package/src/headers/14/module_wrap.h +0 -99
  383. package/src/headers/14/node.h +0 -1032
  384. package/src/headers/14/node_api.h +0 -255
  385. package/src/headers/14/node_api_types.h +0 -44
  386. package/src/headers/14/node_binding.h +0 -99
  387. package/src/headers/14/node_context_data.h +0 -44
  388. package/src/headers/14/node_contextify.h +0 -161
  389. package/src/headers/14/node_crypto.h +0 -865
  390. package/src/headers/14/node_crypto_bio.h +0 -195
  391. package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
  392. package/src/headers/14/node_crypto_clienthello.h +0 -132
  393. package/src/headers/14/node_crypto_common.h +0 -138
  394. package/src/headers/14/node_crypto_groups.h +0 -415
  395. package/src/headers/14/node_dtrace.h +0 -86
  396. package/src/headers/14/node_errors.h +0 -214
  397. package/src/headers/14/node_file-inl.h +0 -306
  398. package/src/headers/14/node_file.h +0 -417
  399. package/src/headers/14/node_http2.h +0 -1191
  400. package/src/headers/14/node_http_common-inl.h +0 -194
  401. package/src/headers/14/node_http_common.h +0 -529
  402. package/src/headers/14/node_i18n.h +0 -144
  403. package/src/headers/14/node_internals.h +0 -405
  404. package/src/headers/14/node_mem.h +0 -45
  405. package/src/headers/14/node_messaging.h +0 -303
  406. package/src/headers/14/node_metadata.h +0 -109
  407. package/src/headers/14/node_mutex.h +0 -247
  408. package/src/headers/14/node_native_module.h +0 -101
  409. package/src/headers/14/node_native_module_env.h +0 -66
  410. package/src/headers/14/node_options-inl.h +0 -451
  411. package/src/headers/14/node_options.h +0 -481
  412. package/src/headers/14/node_perf.h +0 -181
  413. package/src/headers/14/node_perf_common.h +0 -97
  414. package/src/headers/14/node_platform.h +0 -189
  415. package/src/headers/14/node_process.h +0 -40
  416. package/src/headers/14/node_report.h +0 -47
  417. package/src/headers/14/node_revert.h +0 -72
  418. package/src/headers/14/node_root_certs.h +0 -3458
  419. package/src/headers/14/node_sockaddr-inl.h +0 -170
  420. package/src/headers/14/node_sockaddr.h +0 -123
  421. package/src/headers/14/node_stat_watcher.h +0 -70
  422. package/src/headers/14/node_union_bytes.h +0 -103
  423. package/src/headers/14/node_url.h +0 -188
  424. package/src/headers/14/node_version.h +0 -98
  425. package/src/headers/14/node_wasi.h +0 -108
  426. package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
  427. package/src/headers/14/node_win32_etw_provider.h +0 -99
  428. package/src/headers/14/node_worker.h +0 -141
  429. package/src/headers/14/pipe_wrap.h +0 -78
  430. package/src/headers/14/req_wrap-inl.h +0 -170
  431. package/src/headers/14/req_wrap.h +0 -77
  432. package/src/headers/14/stream_base-inl.h +0 -275
  433. package/src/headers/14/stream_base.h +0 -434
  434. package/src/headers/14/stream_pipe.h +0 -73
  435. package/src/headers/14/stream_wrap.h +0 -130
  436. package/src/headers/14/string_bytes.h +0 -129
  437. package/src/headers/14/string_decoder.h +0 -50
  438. package/src/headers/14/string_search.h +0 -638
  439. package/src/headers/14/tcp_wrap.h +0 -101
  440. package/src/headers/14/tls_wrap.h +0 -222
  441. package/src/headers/14/tracing/agent.h +0 -195
  442. package/src/headers/14/tracing/traced_value.h +0 -70
  443. package/src/headers/14/tty_wrap.h +0 -64
  444. package/src/headers/14/udp_wrap.h +0 -227
  445. package/src/headers/14/util-inl.h +0 -566
  446. package/src/headers/14/util.h +0 -804
  447. package/src/headers/14/v8abbr.h +0 -124
  448. package/src/headers/16/aliased_buffer.h +0 -315
  449. package/src/headers/16/allocated_buffer-inl.h +0 -110
  450. package/src/headers/16/allocated_buffer.h +0 -73
  451. package/src/headers/16/async_wrap-inl.h +0 -94
  452. package/src/headers/16/base64-inl.h +0 -189
  453. package/src/headers/16/base64.h +0 -69
  454. package/src/headers/16/crypto/crypto_aes.h +0 -89
  455. package/src/headers/16/crypto/crypto_cipher.h +0 -286
  456. package/src/headers/16/crypto/crypto_common.h +0 -187
  457. package/src/headers/16/crypto/crypto_dh.h +0 -157
  458. package/src/headers/16/crypto/crypto_dsa.h +0 -76
  459. package/src/headers/16/crypto/crypto_ec.h +0 -169
  460. package/src/headers/16/crypto/crypto_groups.h +0 -415
  461. package/src/headers/16/crypto/crypto_hash.h +0 -89
  462. package/src/headers/16/crypto/crypto_hkdf.h +0 -66
  463. package/src/headers/16/crypto/crypto_hmac.h +0 -94
  464. package/src/headers/16/crypto/crypto_keygen.h +0 -301
  465. package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
  466. package/src/headers/16/crypto/crypto_random.h +0 -130
  467. package/src/headers/16/crypto/crypto_rsa.h +0 -141
  468. package/src/headers/16/crypto/crypto_scrypt.h +0 -87
  469. package/src/headers/16/crypto/crypto_sig.h +0 -167
  470. package/src/headers/16/crypto/crypto_spkac.h +0 -20
  471. package/src/headers/16/crypto/crypto_timing.h +0 -20
  472. package/src/headers/16/crypto/crypto_x509.h +0 -141
  473. package/src/headers/16/env.h +0 -1629
  474. package/src/headers/16/histogram.h +0 -216
  475. package/src/headers/16/js_native_api.h +0 -561
  476. package/src/headers/16/js_native_api_v8.h +0 -451
  477. package/src/headers/16/node.d +0 -315
  478. package/src/headers/16/node.stp +0 -146
  479. package/src/headers/16/node_api.h +0 -275
  480. package/src/headers/16/node_api_internals.h +0 -30
  481. package/src/headers/16/node_binding.h +0 -99
  482. package/src/headers/16/node_buffer.h +0 -92
  483. package/src/headers/16/node_constants.h +0 -84
  484. package/src/headers/16/node_context_data.h +0 -44
  485. package/src/headers/16/node_contextify.h +0 -196
  486. package/src/headers/16/node_dtrace.h +0 -86
  487. package/src/headers/16/node_external_reference.h +0 -129
  488. package/src/headers/16/node_main_instance.h +0 -103
  489. package/src/headers/16/node_native_module.h +0 -101
  490. package/src/headers/16/node_native_module_env.h +0 -68
  491. package/src/headers/16/node_platform.h +0 -192
  492. package/src/headers/16/node_process.h +0 -43
  493. package/src/headers/16/node_provider.d +0 -80
  494. package/src/headers/16/node_snapshotable.h +0 -137
  495. package/src/headers/16/node_union_bytes.h +0 -103
  496. package/src/headers/16/node_url.h +0 -205
  497. package/src/headers/16/node_v8.h +0 -41
  498. package/src/headers/16/node_v8_platform-inl.h +0 -194
  499. package/src/headers/16/node_wasi.h +0 -108
  500. package/src/headers/16/node_watchdog.h +0 -152
  501. package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
  502. package/src/headers/16/node_win32_etw_provider.h +0 -99
  503. package/src/headers/16/spawn_sync.h +0 -242
  504. package/src/headers/16/string_decoder-inl.h +0 -37
  505. package/src/headers/16/string_search.h +0 -638
  506. package/src/headers/16/threadpoolwork-inl.h +0 -57
  507. package/src/headers/16/tracing/node_trace_buffer.h +0 -83
  508. package/src/headers/16/tracing/node_trace_writer.h +0 -75
  509. package/src/headers/16/tracing/trace_event.h +0 -720
  510. package/src/headers/16/tracing/traced_value.h +0 -70
  511. package/src/headers/16/v8abbr.h +0 -123
  512. package/src/headers/16/v8ustack.d +0 -695
  513. package/src/headers/18/aliased_buffer.h +0 -315
  514. package/src/headers/18/aliased_struct-inl.h +0 -54
  515. package/src/headers/18/aliased_struct.h +0 -63
  516. package/src/headers/18/base64-inl.h +0 -189
  517. package/src/headers/18/base64.h +0 -69
  518. package/src/headers/18/connect_wrap.h +0 -26
  519. package/src/headers/18/connection_wrap.h +0 -30
  520. package/src/headers/18/crypto/crypto_aes.h +0 -89
  521. package/src/headers/18/crypto/crypto_bio.h +0 -194
  522. package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
  523. package/src/headers/18/crypto/crypto_common.h +0 -151
  524. package/src/headers/18/crypto/crypto_groups.h +0 -415
  525. package/src/headers/18/crypto/crypto_x509.h +0 -143
  526. package/src/headers/18/debug_utils-inl.h +0 -223
  527. package/src/headers/18/diagnosticfilename-inl.h +0 -33
  528. package/src/headers/18/env-inl.h +0 -1308
  529. package/src/headers/18/env.h +0 -1667
  530. package/src/headers/18/inspector_io.h +0 -78
  531. package/src/headers/18/inspector_socket.h +0 -60
  532. package/src/headers/18/inspector_socket_server.h +0 -110
  533. package/src/headers/18/js_stream.h +0 -52
  534. package/src/headers/18/memory_tracker.h +0 -284
  535. package/src/headers/18/module_wrap.h +0 -116
  536. package/src/headers/18/node_binding.h +0 -99
  537. package/src/headers/18/node_context_data.h +0 -44
  538. package/src/headers/18/node_contextify.h +0 -196
  539. package/src/headers/18/node_dir.h +0 -52
  540. package/src/headers/18/node_dtrace.h +0 -86
  541. package/src/headers/18/node_http2_state.h +0 -149
  542. package/src/headers/18/node_mem-inl.h +0 -112
  543. package/src/headers/18/node_native_module.h +0 -109
  544. package/src/headers/18/node_native_module_env.h +0 -71
  545. package/src/headers/18/node_object_wrap.h +0 -132
  546. package/src/headers/18/node_snapshot_builder.h +0 -43
  547. package/src/headers/18/node_snapshotable.h +0 -130
  548. package/src/headers/18/node_union_bytes.h +0 -103
  549. package/src/headers/18/node_url.h +0 -205
  550. package/src/headers/18/node_v8.h +0 -41
  551. package/src/headers/18/node_wasi.h +0 -108
  552. package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
  553. package/src/headers/18/node_win32_etw_provider.h +0 -99
  554. package/src/headers/18/string_search.h +0 -638
  555. package/src/headers/18/tracing/node_trace_buffer.h +0 -83
  556. package/src/headers/18/tracing/node_trace_writer.h +0 -75
  557. package/src/headers/18/tracing/trace_event_common.h +0 -1109
  558. package/src/headers/18/tracing/traced_value.h +0 -70
  559. package/src/headers/18/v8abbr.h +0 -123
  560. /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
  561. /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
  562. /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
  563. /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
  564. /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
  565. /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
  566. /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
  567. /package/src/headers/{14 → 22}/inspector_io.h +0 -0
  568. /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
  569. /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
  570. /package/src/headers/{14 → 22}/js_stream.h +0 -0
  571. /package/src/headers/{14 → 22}/node_dir.h +0 -0
  572. /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
  573. /package/src/headers/{16 → 22}/node_mem.h +0 -0
  574. /package/src/headers/{16 → 22}/node_mutex.h +0 -0
  575. /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
  576. /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
  577. /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
  578. /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
  579. /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
  580. /package/src/headers/{18 → 22}/req_wrap.h +0 -0
  581. /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
  582. /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
  583. /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
  584. /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
  585. /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
  586. /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
  587. /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
  588. /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
  589. /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
  590. /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
  591. /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
  592. /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
  593. /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
  594. /package/src/headers/{16 → 24}/inspector_io.h +0 -0
  595. /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
  596. /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
  597. /package/src/headers/{16 → 24}/js_stream.h +0 -0
  598. /package/src/headers/{16 → 24}/node_dir.h +0 -0
  599. /package/src/headers/{18 → 24}/node_mem.h +0 -0
  600. /package/src/headers/{18 → 24}/node_mutex.h +0 -0
  601. /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
  602. /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
  603. /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
  604. /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
  605. /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
  606. /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
- kAuthTagKnown,
42
- kAuthTagPassedToOpenSSL
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 EVP_CIPHER* cipher,
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, int iv_len,
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
- const ArrayBufferOrViewContents<unsigned char>& data,
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
- DeleteFnPtr<EVP_CIPHER_CTX, EVP_CIPHER_CTX_free> ctx_;
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_[EVP_GCM_TLS_TAG_LEN];
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
- typedef int (*EVP_PKEY_cipher_init_t)(EVP_PKEY_CTX* ctx);
100
- typedef int (*EVP_PKEY_cipher_t)(EVP_PKEY_CTX* ctx,
101
- unsigned char* out, size_t* outlen,
102
- const unsigned char* in, size_t inlen);
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 <Operation operation,
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 ManagedEVPPKey& pkey,
105
+ const ncrypto::EVPKeyPointer& pkey,
114
106
  int padding,
115
- const EVP_MD* digest,
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
- uint32_t cmode = args[1].As<v8::Uint32>()->Value();
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
- Environment* env,
200
- v8::Local<v8::Object> object,
201
- CryptoJobMode mode,
202
- KeyObjectHandle* key,
203
- WebCryptoCipherMode cipher_mode,
204
- const ArrayBufferOrViewContents<char>& data,
205
- AdditionalParams&& params)
206
- : CryptoJob<CipherTraits>(
207
- env,
208
- object,
209
- AsyncWrap::PROVIDER_CIPHERREQUEST,
210
- mode,
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
- std::shared_ptr<KeyObjectData> key() const { return key_; }
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<bool> ToResult(
253
- v8::Local<v8::Value>* err,
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
- return v8::Just(!result->IsEmpty());
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
- *result = v8::Undefined(env->isolate());
269
- return v8::Just(errors->ToException(env).ToLocal(err));
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
- std::shared_ptr<KeyObjectData> key_;
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* onend_arg) {
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_ = onend_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* onend_arg);
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
- BIOPointer LoadBIO(Environment* env, v8::Local<v8::Value> v);
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
- SSL_CTX* operator*() const { return ctx_.get(); }
44
+ const ncrypto::SSLCtxPointer& ctx() const { return ctx_; }
44
45
 
45
- SSL_CTX* ssl_ctx() const { return ctx_.get(); }
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
- bool Init(int primeLength, int g);
23
- bool Init(const char* p, int p_len, int g);
24
- bool Init(const char* p, int p_len, const char* g, int g_len);
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
- static void GetField(const v8::FunctionCallbackInfo<v8::Value>& args,
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<bool> AdditionalConfig(
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<bool> AdditionalConfig(
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
- std::shared_ptr<KeyObjectData> key_data,
106
- WebCryptoKeyFormat format,
107
- const DHKeyExportConfig& params,
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
- std::shared_ptr<KeyObjectData> private_key;
115
- std::shared_ptr<KeyObjectData> public_key;
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<bool> AdditionalConfig(
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
- Environment* env,
135
- const DHBitsConfig& params,
136
- ByteSource* out_);
106
+ static bool DeriveBits(Environment* env,
107
+ const DHBitsConfig& params,
108
+ ByteSource* out_,
109
+ CryptoJobMode mode);
137
110
 
138
- static v8::Maybe<bool> EncodeOutput(
139
- Environment* env,
140
- const DHBitsConfig& params,
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
- v8::Maybe<bool> GetDhKeyDetail(
148
- Environment* env,
149
- std::shared_ptr<KeyObjectData> key,
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