@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
@@ -11,8 +11,7 @@
11
11
  #include "memory_tracker.h"
12
12
  #include "v8.h"
13
13
 
14
- namespace node {
15
- namespace crypto {
14
+ namespace node::crypto {
16
15
  namespace Keygen {
17
16
  void Initialize(Environment* env, v8::Local<v8::Object> target);
18
17
  void RegisterExternalReferences(ExternalReferenceRegistry* registry);
@@ -75,9 +74,6 @@ class KeyGenJob final : public CryptoJob<KeyGenTraits> {
75
74
  std::move(params)) {}
76
75
 
77
76
  void DoThreadPoolWork() override {
78
- // Make sure the CSPRNG is properly seeded so the results are secure.
79
- CheckEntropy();
80
-
81
77
  AdditionalParams* params = CryptoJob<KeyGenTraits>::params();
82
78
 
83
79
  switch (KeyGenTraits::DoKeyGen(AsyncWrap::env(), params)) {
@@ -94,26 +90,33 @@ class KeyGenJob final : public CryptoJob<KeyGenTraits> {
94
90
  }
95
91
  }
96
92
 
97
- v8::Maybe<bool> ToResult(
98
- v8::Local<v8::Value>* err,
99
- v8::Local<v8::Value>* result) override {
93
+ v8::Maybe<void> ToResult(v8::Local<v8::Value>* err,
94
+ v8::Local<v8::Value>* result) override {
100
95
  Environment* env = AsyncWrap::env();
101
96
  CryptoErrorStore* errors = CryptoJob<KeyGenTraits>::errors();
102
97
  AdditionalParams* params = CryptoJob<KeyGenTraits>::params();
103
98
 
104
99
  if (status_ == KeyGenJobStatus::OK) {
105
- v8::Maybe<bool> ret = KeyGenTraits::EncodeKey(env, params, result);
106
- if (ret.IsJust() && ret.FromJust()) {
100
+ v8::TryCatch try_catch(env->isolate());
101
+ if (KeyGenTraits::EncodeKey(env, params).ToLocal(result)) {
107
102
  *err = Undefined(env->isolate());
103
+ } else {
104
+ CHECK(try_catch.HasCaught());
105
+ CHECK(try_catch.CanContinue());
106
+ *result = Undefined(env->isolate());
107
+ *err = try_catch.Exception();
108
+ }
109
+ } else {
110
+ if (errors->Empty()) errors->Capture();
111
+ CHECK(!errors->Empty());
112
+ *result = Undefined(env->isolate());
113
+ if (!errors->ToException(env).ToLocal(err)) {
114
+ return v8::Nothing<void>();
108
115
  }
109
- return ret;
110
116
  }
111
-
112
- if (errors->Empty())
113
- errors->Capture();
114
- CHECK(!errors->Empty());
115
- *result = Undefined(env->isolate());
116
- return v8::Just(errors->ToException(env).ToLocal(err));
117
+ CHECK(!result->IsEmpty());
118
+ CHECK(!err->IsEmpty());
119
+ return v8::JustVoid();
117
120
  }
118
121
 
119
122
  SET_SELF_SIZE(KeyGenJob)
@@ -132,7 +135,7 @@ struct KeyPairGenTraits final {
132
135
  AsyncWrap::PROVIDER_KEYPAIRGENREQUEST;
133
136
  static constexpr const char* JobName = KeyPairAlgorithmTraits::JobName;
134
137
 
135
- static v8::Maybe<bool> AdditionalConfig(
138
+ static v8::Maybe<void> AdditionalConfig(
136
139
  CryptoJobMode mode,
137
140
  const v8::FunctionCallbackInfo<v8::Value>& args,
138
141
  unsigned int* offset,
@@ -143,31 +146,23 @@ struct KeyPairGenTraits final {
143
146
  // process input parameters. This allows each job to have a variable
144
147
  // number of input parameters specific to each job type.
145
148
  if (KeyPairAlgorithmTraits::AdditionalConfig(mode, args, offset, params)
146
- .IsNothing()) {
147
- return v8::Just(false);
149
+ .IsNothing() ||
150
+ !KeyObjectData::GetPublicKeyEncodingFromJs(
151
+ args, offset, kKeyContextGenerate)
152
+ .To(&params->public_key_encoding) ||
153
+ !KeyObjectData::GetPrivateKeyEncodingFromJs(
154
+ args, offset, kKeyContextGenerate)
155
+ .To(&params->private_key_encoding)) {
156
+ return v8::Nothing<void>();
148
157
  }
149
158
 
150
- params->public_key_encoding = ManagedEVPPKey::GetPublicKeyEncodingFromJs(
151
- args,
152
- offset,
153
- kKeyContextGenerate);
154
-
155
- auto private_key_encoding =
156
- ManagedEVPPKey::GetPrivateKeyEncodingFromJs(
157
- args,
158
- offset,
159
- kKeyContextGenerate);
160
-
161
- if (!private_key_encoding.IsEmpty())
162
- params->private_key_encoding = private_key_encoding.Release();
163
-
164
- return v8::Just(true);
159
+ return v8::JustVoid();
165
160
  }
166
161
 
167
162
  static KeyGenJobStatus DoKeyGen(
168
163
  Environment* env,
169
164
  AdditionalParameters* params) {
170
- EVPKeyCtxPointer ctx = KeyPairAlgorithmTraits::Setup(params);
165
+ ncrypto::EVPKeyCtxPointer ctx = KeyPairAlgorithmTraits::Setup(params);
171
166
 
172
167
  if (!ctx)
173
168
  return KeyGenJobStatus::FAILED;
@@ -177,35 +172,30 @@ struct KeyPairGenTraits final {
177
172
  if (!EVP_PKEY_keygen(ctx.get(), &pkey))
178
173
  return KeyGenJobStatus::FAILED;
179
174
 
180
- params->key = ManagedEVPPKey(EVPKeyPointer(pkey));
175
+ auto data = KeyObjectData::CreateAsymmetric(KeyType::kKeyTypePrivate,
176
+ ncrypto::EVPKeyPointer(pkey));
177
+ if (!data) [[unlikely]]
178
+ return KeyGenJobStatus::FAILED;
179
+ params->key = std::move(data);
181
180
  return KeyGenJobStatus::OK;
182
181
  }
183
182
 
184
- static v8::Maybe<bool> EncodeKey(
185
- Environment* env,
186
- AdditionalParameters* params,
187
- v8::Local<v8::Value>* result) {
183
+ static v8::MaybeLocal<v8::Value> EncodeKey(Environment* env,
184
+ AdditionalParameters* params) {
188
185
  v8::Local<v8::Value> keys[2];
189
- if (ManagedEVPPKey::ToEncodedPublicKey(
190
- env,
191
- std::move(params->key),
192
- params->public_key_encoding,
193
- &keys[0]).IsNothing() ||
194
- ManagedEVPPKey::ToEncodedPrivateKey(
195
- env,
196
- std::move(params->key),
197
- params->private_key_encoding,
198
- &keys[1]).IsNothing()) {
199
- return v8::Nothing<bool>();
186
+ if (!params->key.ToEncodedPublicKey(
187
+ env, params->public_key_encoding, &keys[0]) ||
188
+ !params->key.ToEncodedPrivateKey(
189
+ env, params->private_key_encoding, &keys[1])) {
190
+ return {};
200
191
  }
201
- *result = v8::Array::New(env->isolate(), keys, arraysize(keys));
202
- return v8::Just(true);
192
+ return v8::Array::New(env->isolate(), keys, arraysize(keys));
203
193
  }
204
194
  };
205
195
 
206
196
  struct SecretKeyGenConfig final : public MemoryRetainer {
207
- size_t length; // Expressed a a number of bits
208
- char* out = nullptr; // Placeholder for the generated key bytes
197
+ size_t length; // In bytes.
198
+ ByteSource out; // Placeholder for the generated key bytes.
209
199
 
210
200
  void MemoryInfo(MemoryTracker* tracker) const override;
211
201
  SET_MEMORY_INFO_NAME(SecretKeyGenConfig)
@@ -218,7 +208,7 @@ struct SecretKeyGenTraits final {
218
208
  AsyncWrap::PROVIDER_KEYGENREQUEST;
219
209
  static constexpr const char* JobName = "SecretKeyGenJob";
220
210
 
221
- static v8::Maybe<bool> AdditionalConfig(
211
+ static v8::Maybe<void> AdditionalConfig(
222
212
  CryptoJobMode mode,
223
213
  const v8::FunctionCallbackInfo<v8::Value>& args,
224
214
  unsigned int* offset,
@@ -228,28 +218,23 @@ struct SecretKeyGenTraits final {
228
218
  Environment* env,
229
219
  SecretKeyGenConfig* params);
230
220
 
231
- static v8::Maybe<bool> EncodeKey(
232
- Environment* env,
233
- SecretKeyGenConfig* params,
234
- v8::Local<v8::Value>* result);
221
+ static v8::MaybeLocal<v8::Value> EncodeKey(Environment* env,
222
+ SecretKeyGenConfig* params);
235
223
  };
236
224
 
237
225
  template <typename AlgorithmParams>
238
226
  struct KeyPairGenConfig final : public MemoryRetainer {
239
- PublicKeyEncodingConfig public_key_encoding;
240
- PrivateKeyEncodingConfig private_key_encoding;
241
- ManagedEVPPKey key;
227
+ ncrypto::EVPKeyPointer::PublicKeyEncodingConfig public_key_encoding;
228
+ ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig private_key_encoding;
229
+ KeyObjectData key;
242
230
  AlgorithmParams params;
243
231
 
244
232
  KeyPairGenConfig() = default;
245
- ~KeyPairGenConfig() {
246
- Mutex::ScopedLock priv_lock(*key.mutex());
247
- }
248
233
 
249
234
  explicit KeyPairGenConfig(KeyPairGenConfig&& other) noexcept
250
235
  : public_key_encoding(other.public_key_encoding),
251
236
  private_key_encoding(
252
- std::forward<PrivateKeyEncodingConfig>(
237
+ std::forward<ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig>(
253
238
  other.private_key_encoding)),
254
239
  key(std::move(other.key)),
255
240
  params(std::move(other.params)) {}
@@ -262,9 +247,10 @@ struct KeyPairGenConfig final : public MemoryRetainer {
262
247
 
263
248
  void MemoryInfo(MemoryTracker* tracker) const override {
264
249
  tracker->TrackField("key", key);
265
- if (!private_key_encoding.passphrase_.IsEmpty()) {
250
+ if (private_key_encoding.passphrase.has_value()) {
251
+ auto& passphrase = private_key_encoding.passphrase.value();
266
252
  tracker->TrackFieldWithSize("private_key_encoding.passphrase",
267
- private_key_encoding.passphrase_->size());
253
+ passphrase.size());
268
254
  }
269
255
  tracker->TrackField("params", params);
270
256
  }
@@ -286,9 +272,9 @@ struct NidKeyPairGenTraits final {
286
272
  using AdditionalParameters = NidKeyPairGenConfig;
287
273
  static constexpr const char* JobName = "NidKeyPairGenJob";
288
274
 
289
- static EVPKeyCtxPointer Setup(NidKeyPairGenConfig* params);
275
+ static ncrypto::EVPKeyCtxPointer Setup(NidKeyPairGenConfig* params);
290
276
 
291
- static v8::Maybe<bool> AdditionalConfig(
277
+ static v8::Maybe<void> AdditionalConfig(
292
278
  CryptoJobMode mode,
293
279
  const v8::FunctionCallbackInfo<v8::Value>& args,
294
280
  unsigned int* offset,
@@ -297,8 +283,7 @@ struct NidKeyPairGenTraits final {
297
283
 
298
284
  using NidKeyPairGenJob = KeyGenJob<KeyPairGenTraits<NidKeyPairGenTraits>>;
299
285
  using SecretKeyGenJob = KeyGenJob<SecretKeyGenTraits>;
300
- } // namespace crypto
301
- } // namespace node
286
+ } // namespace node::crypto
302
287
 
303
288
  #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
304
289
  #endif // SRC_CRYPTO_CRYPTO_KEYGEN_H_
@@ -16,25 +16,7 @@
16
16
  #include <memory>
17
17
  #include <string>
18
18
 
19
- namespace node {
20
- namespace crypto {
21
- enum PKEncodingType {
22
- // RSAPublicKey / RSAPrivateKey according to PKCS#1.
23
- kKeyEncodingPKCS1,
24
- // PrivateKeyInfo or EncryptedPrivateKeyInfo according to PKCS#8.
25
- kKeyEncodingPKCS8,
26
- // SubjectPublicKeyInfo according to X.509.
27
- kKeyEncodingSPKI,
28
- // ECPrivateKey according to SEC1.
29
- kKeyEncodingSEC1
30
- };
31
-
32
- enum PKFormatType {
33
- kKeyFormatDER,
34
- kKeyFormatPEM,
35
- kKeyFormatJWK
36
- };
37
-
19
+ namespace node::crypto {
38
20
  enum KeyType {
39
21
  kKeyTypeSecret,
40
22
  kKeyTypePublic,
@@ -48,137 +30,121 @@ enum KeyEncodingContext {
48
30
  };
49
31
 
50
32
  enum class ParseKeyResult {
33
+ kParseKeyNotRecognized =
34
+ static_cast<int>(ncrypto::EVPKeyPointer::PKParseError::NOT_RECOGNIZED),
35
+ kParseKeyNeedPassphrase =
36
+ static_cast<int>(ncrypto::EVPKeyPointer::PKParseError::NEED_PASSPHRASE),
37
+ kParseKeyFailed =
38
+ static_cast<int>(ncrypto::EVPKeyPointer::PKParseError::FAILED),
51
39
  kParseKeyOk,
52
- kParseKeyNotRecognized,
53
- kParseKeyNeedPassphrase,
54
- kParseKeyFailed
55
40
  };
56
41
 
57
- struct AsymmetricKeyEncodingConfig {
58
- bool output_key_object_ = false;
59
- PKFormatType format_ = kKeyFormatDER;
60
- v8::Maybe<PKEncodingType> type_ = v8::Nothing<PKEncodingType>();
61
- };
62
-
63
- using PublicKeyEncodingConfig = AsymmetricKeyEncodingConfig;
42
+ // Objects of this class can safely be shared among threads.
43
+ class KeyObjectData final : public MemoryRetainer {
44
+ public:
45
+ static KeyObjectData CreateSecret(ByteSource key);
64
46
 
65
- struct PrivateKeyEncodingConfig : public AsymmetricKeyEncodingConfig {
66
- const EVP_CIPHER* cipher_;
67
- // The ByteSource alone is not enough to distinguish between "no passphrase"
68
- // and a zero-length passphrase (which can be a null pointer), therefore, we
69
- // use a NonCopyableMaybe.
70
- NonCopyableMaybe<ByteSource> passphrase_;
71
- };
47
+ static KeyObjectData CreateAsymmetric(KeyType type,
48
+ ncrypto::EVPKeyPointer&& pkey);
72
49
 
73
- // This uses the built-in reference counter of OpenSSL to manage an EVP_PKEY
74
- // which is slightly more efficient than using a shared pointer and easier to
75
- // use.
76
- class ManagedEVPPKey : public MemoryRetainer {
77
- public:
78
- ManagedEVPPKey() : mutex_(std::make_shared<Mutex>()) {}
79
- explicit ManagedEVPPKey(EVPKeyPointer&& pkey);
80
- ManagedEVPPKey(const ManagedEVPPKey& that);
81
- ManagedEVPPKey& operator=(const ManagedEVPPKey& that);
50
+ KeyObjectData(std::nullptr_t = nullptr);
82
51
 
83
- operator bool() const;
84
- EVP_PKEY* get() const;
85
- Mutex* mutex() const;
52
+ inline operator bool() const { return data_ != nullptr; }
86
53
 
87
- void MemoryInfo(MemoryTracker* tracker) const override;
88
- SET_MEMORY_INFO_NAME(ManagedEVPPKey)
89
- SET_SELF_SIZE(ManagedEVPPKey)
54
+ KeyType GetKeyType() const;
90
55
 
91
- static PublicKeyEncodingConfig GetPublicKeyEncodingFromJs(
92
- const v8::FunctionCallbackInfo<v8::Value>& args,
93
- unsigned int* offset,
94
- KeyEncodingContext context);
56
+ // These functions allow unprotected access to the raw key material and should
57
+ // only be used to implement cryptographic operations requiring the key.
58
+ const ncrypto::EVPKeyPointer& GetAsymmetricKey() const;
59
+ const char* GetSymmetricKey() const;
60
+ size_t GetSymmetricKeySize() const;
95
61
 
96
- static NonCopyableMaybe<PrivateKeyEncodingConfig> GetPrivateKeyEncodingFromJs(
97
- const v8::FunctionCallbackInfo<v8::Value>& args,
98
- unsigned int* offset,
99
- KeyEncodingContext context);
62
+ void MemoryInfo(MemoryTracker* tracker) const override;
63
+ SET_MEMORY_INFO_NAME(KeyObjectData)
64
+ SET_SELF_SIZE(KeyObjectData)
100
65
 
101
- static ManagedEVPPKey GetParsedKey(Environment* env,
102
- EVPKeyPointer&& pkey,
103
- ParseKeyResult ret,
104
- const char* default_msg);
66
+ Mutex& mutex() const;
105
67
 
106
- static ManagedEVPPKey GetPublicOrPrivateKeyFromJs(
107
- const v8::FunctionCallbackInfo<v8::Value>& args,
108
- unsigned int* offset);
68
+ static v8::Maybe<ncrypto::EVPKeyPointer::PublicKeyEncodingConfig>
69
+ GetPublicKeyEncodingFromJs(const v8::FunctionCallbackInfo<v8::Value>& args,
70
+ unsigned int* offset,
71
+ KeyEncodingContext context);
109
72
 
110
- static ManagedEVPPKey GetPrivateKeyFromJs(
73
+ static KeyObjectData GetPrivateKeyFromJs(
111
74
  const v8::FunctionCallbackInfo<v8::Value>& args,
112
75
  unsigned int* offset,
113
76
  bool allow_key_object);
114
77
 
115
- static v8::Maybe<bool> ToEncodedPublicKey(
78
+ static KeyObjectData GetPublicOrPrivateKeyFromJs(
79
+ const v8::FunctionCallbackInfo<v8::Value>& args, unsigned int* offset);
80
+
81
+ static v8::Maybe<ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig>
82
+ GetPrivateKeyEncodingFromJs(const v8::FunctionCallbackInfo<v8::Value>& args,
83
+ unsigned int* offset,
84
+ KeyEncodingContext context);
85
+
86
+ bool ToEncodedPublicKey(
116
87
  Environment* env,
117
- ManagedEVPPKey key,
118
- const PublicKeyEncodingConfig& config,
88
+ const ncrypto::EVPKeyPointer::PublicKeyEncodingConfig& config,
119
89
  v8::Local<v8::Value>* out);
120
90
 
121
- static v8::Maybe<bool> ToEncodedPrivateKey(
91
+ bool ToEncodedPrivateKey(
122
92
  Environment* env,
123
- ManagedEVPPKey key,
124
- const PrivateKeyEncodingConfig& config,
93
+ const ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig& config,
125
94
  v8::Local<v8::Value>* out);
126
95
 
127
- private:
128
- size_t size_of_private_key() const;
129
- size_t size_of_public_key() const;
130
-
131
- EVPKeyPointer pkey_;
132
- std::shared_ptr<Mutex> mutex_;
133
- };
134
-
135
- // Objects of this class can safely be shared among threads.
136
- class KeyObjectData : public MemoryRetainer {
137
- public:
138
- static std::shared_ptr<KeyObjectData> CreateSecret(ByteSource key);
139
-
140
- static std::shared_ptr<KeyObjectData> CreateAsymmetric(
141
- KeyType type,
142
- const ManagedEVPPKey& pkey);
143
-
144
- KeyType GetKeyType() const;
145
-
146
- // These functions allow unprotected access to the raw key material and should
147
- // only be used to implement cryptographic operations requiring the key.
148
- ManagedEVPPKey GetAsymmetricKey() const;
149
- const char* GetSymmetricKey() const;
150
- size_t GetSymmetricKeySize() const;
96
+ inline KeyObjectData addRef() const {
97
+ return KeyObjectData(key_type_, mutex_, data_);
98
+ }
151
99
 
152
- void MemoryInfo(MemoryTracker* tracker) const override;
153
- SET_MEMORY_INFO_NAME(KeyObjectData)
154
- SET_SELF_SIZE(KeyObjectData)
100
+ inline KeyObjectData addRefWithType(KeyType type) const {
101
+ return KeyObjectData(type, mutex_, data_);
102
+ }
155
103
 
156
104
  private:
157
105
  explicit KeyObjectData(ByteSource symmetric_key);
106
+ explicit KeyObjectData(KeyType type, ncrypto::EVPKeyPointer&& pkey);
107
+
108
+ static KeyObjectData GetParsedKey(KeyType type,
109
+ Environment* env,
110
+ ncrypto::EVPKeyPointer&& pkey,
111
+ ParseKeyResult ret,
112
+ const char* default_msg);
113
+
114
+ KeyType key_type_;
115
+ mutable std::shared_ptr<Mutex> mutex_;
116
+
117
+ struct Data {
118
+ const ByteSource symmetric_key;
119
+ const ncrypto::EVPKeyPointer asymmetric_key;
120
+ explicit Data(ByteSource symmetric_key)
121
+ : symmetric_key(std::move(symmetric_key)) {}
122
+ explicit Data(ncrypto::EVPKeyPointer asymmetric_key)
123
+ : asymmetric_key(std::move(asymmetric_key)) {}
124
+ };
125
+ std::shared_ptr<Data> data_;
158
126
 
159
- KeyObjectData(
160
- KeyType type,
161
- const ManagedEVPPKey& pkey);
162
-
163
- const KeyType key_type_;
164
- const ByteSource symmetric_key_;
165
- const unsigned int symmetric_key_len_;
166
- const ManagedEVPPKey asymmetric_key_;
127
+ KeyObjectData(KeyType type,
128
+ std::shared_ptr<Mutex> mutex,
129
+ std::shared_ptr<Data> data)
130
+ : key_type_(type), mutex_(std::move(mutex)), data_(std::move(data)) {}
167
131
  };
168
132
 
169
133
  class KeyObjectHandle : public BaseObject {
170
134
  public:
135
+ static bool HasInstance(Environment* env, v8::Local<v8::Value> value);
171
136
  static v8::Local<v8::Function> Initialize(Environment* env);
137
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
172
138
 
173
139
  static v8::MaybeLocal<v8::Object> Create(Environment* env,
174
- std::shared_ptr<KeyObjectData> data);
140
+ const KeyObjectData& data);
175
141
 
176
142
  // TODO(tniessen): track the memory used by OpenSSL types
177
143
  SET_NO_MEMORY_INFO()
178
144
  SET_MEMORY_INFO_NAME(KeyObjectHandle)
179
145
  SET_SELF_SIZE(KeyObjectHandle)
180
146
 
181
- const std::shared_ptr<KeyObjectData>& Data();
147
+ const KeyObjectData& Data();
182
148
 
183
149
  protected:
184
150
  static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
@@ -188,6 +154,7 @@ class KeyObjectHandle : public BaseObject {
188
154
  static void InitEDRaw(const v8::FunctionCallbackInfo<v8::Value>& args);
189
155
  static void InitJWK(const v8::FunctionCallbackInfo<v8::Value>& args);
190
156
  static void GetKeyDetail(const v8::FunctionCallbackInfo<v8::Value>& args);
157
+ static void Equals(const v8::FunctionCallbackInfo<v8::Value>& args);
191
158
 
192
159
  static void ExportJWK(const v8::FunctionCallbackInfo<v8::Value>& args);
193
160
 
@@ -195,27 +162,37 @@ class KeyObjectHandle : public BaseObject {
195
162
  const v8::FunctionCallbackInfo<v8::Value>& args);
196
163
  v8::Local<v8::Value> GetAsymmetricKeyType() const;
197
164
 
165
+ static void CheckEcKeyData(const v8::FunctionCallbackInfo<v8::Value>& args);
166
+ bool CheckEcKeyData() const;
167
+
198
168
  static void GetSymmetricKeySize(
199
169
  const v8::FunctionCallbackInfo<v8::Value>& args);
200
170
 
201
171
  static void Export(const v8::FunctionCallbackInfo<v8::Value>& args);
202
172
 
173
+ #if OPENSSL_WITH_PQC
174
+ static void InitPqcRaw(const v8::FunctionCallbackInfo<v8::Value>& args);
175
+ static void RawPublicKey(const v8::FunctionCallbackInfo<v8::Value>& args);
176
+ static void RawSeed(const v8::FunctionCallbackInfo<v8::Value>& args);
177
+ #endif
178
+
203
179
  v8::MaybeLocal<v8::Value> ExportSecretKey() const;
204
180
  v8::MaybeLocal<v8::Value> ExportPublicKey(
205
- const PublicKeyEncodingConfig& config) const;
181
+ const ncrypto::EVPKeyPointer::PublicKeyEncodingConfig& config) const;
206
182
  v8::MaybeLocal<v8::Value> ExportPrivateKey(
207
- const PrivateKeyEncodingConfig& config) const;
183
+ const ncrypto::EVPKeyPointer::PrivateKeyEncodingConfig& config) const;
208
184
 
209
185
  KeyObjectHandle(Environment* env,
210
186
  v8::Local<v8::Object> wrap);
211
187
 
212
188
  private:
213
- std::shared_ptr<KeyObjectData> data_;
189
+ KeyObjectData data_;
214
190
  };
215
191
 
216
192
  class NativeKeyObject : public BaseObject {
217
193
  public:
218
194
  static void Initialize(Environment* env, v8::Local<v8::Object> target);
195
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
219
196
 
220
197
  static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
221
198
  static void CreateNativeKeyObjectClass(
@@ -227,8 +204,8 @@ class NativeKeyObject : public BaseObject {
227
204
 
228
205
  class KeyObjectTransferData : public worker::TransferData {
229
206
  public:
230
- explicit KeyObjectTransferData(const std::shared_ptr<KeyObjectData>& data)
231
- : data_(data) {}
207
+ explicit KeyObjectTransferData(const KeyObjectData& data)
208
+ : data_(data.addRef()) {}
232
209
 
233
210
  BaseObjectPtr<BaseObject> Deserialize(
234
211
  Environment* env,
@@ -240,7 +217,7 @@ class NativeKeyObject : public BaseObject {
240
217
  SET_NO_MEMORY_INFO()
241
218
 
242
219
  private:
243
- std::shared_ptr<KeyObjectData> data_;
220
+ KeyObjectData data_;
244
221
  };
245
222
 
246
223
  BaseObject::TransferMode GetTransferMode() const override;
@@ -249,13 +226,12 @@ class NativeKeyObject : public BaseObject {
249
226
  private:
250
227
  NativeKeyObject(Environment* env,
251
228
  v8::Local<v8::Object> wrap,
252
- const std::shared_ptr<KeyObjectData>& handle_data)
253
- : BaseObject(env, wrap),
254
- handle_data_(handle_data) {
229
+ const KeyObjectData& handle_data)
230
+ : BaseObject(env, wrap), handle_data_(handle_data.addRef()) {
255
231
  MakeWeak();
256
232
  }
257
233
 
258
- std::shared_ptr<KeyObjectData> handle_data_;
234
+ KeyObjectData handle_data_;
259
235
  };
260
236
 
261
237
  enum WebCryptoKeyFormat {
@@ -316,20 +292,22 @@ class KeyExportJob final : public CryptoJob<KeyExportTraits> {
316
292
  CryptoJob<KeyExportTraits>::Initialize(New, env, target);
317
293
  }
318
294
 
319
- KeyExportJob(
320
- Environment* env,
321
- v8::Local<v8::Object> object,
322
- CryptoJobMode mode,
323
- std::shared_ptr<KeyObjectData> key,
324
- WebCryptoKeyFormat format,
325
- AdditionalParams&& params)
326
- : CryptoJob<KeyExportTraits>(
327
- env,
328
- object,
329
- AsyncWrap::PROVIDER_KEYEXPORTREQUEST,
330
- mode,
331
- std::move(params)),
332
- key_(key),
295
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry) {
296
+ CryptoJob<KeyExportTraits>::RegisterExternalReferences(New, registry);
297
+ }
298
+
299
+ KeyExportJob(Environment* env,
300
+ v8::Local<v8::Object> object,
301
+ CryptoJobMode mode,
302
+ const KeyObjectData& key,
303
+ WebCryptoKeyFormat format,
304
+ AdditionalParams&& params)
305
+ : CryptoJob<KeyExportTraits>(env,
306
+ object,
307
+ AsyncWrap::PROVIDER_KEYEXPORTREQUEST,
308
+ mode,
309
+ std::move(params)),
310
+ key_(key.addRef()),
333
311
  format_(format) {}
334
312
 
335
313
  WebCryptoKeyFormat format() const { return format_; }
@@ -362,23 +340,28 @@ class KeyExportJob final : public CryptoJob<KeyExportTraits> {
362
340
  }
363
341
  }
364
342
 
365
- v8::Maybe<bool> ToResult(
366
- v8::Local<v8::Value>* err,
367
- v8::Local<v8::Value>* result) override {
343
+ v8::Maybe<void> ToResult(v8::Local<v8::Value>* err,
344
+ v8::Local<v8::Value>* result) override {
368
345
  Environment* env = AsyncWrap::env();
369
346
  CryptoErrorStore* errors = CryptoJob<KeyExportTraits>::errors();
370
347
  if (out_.size() > 0) {
371
348
  CHECK(errors->Empty());
372
349
  *err = v8::Undefined(env->isolate());
373
350
  *result = out_.ToArrayBuffer(env);
374
- return v8::Just(!result->IsEmpty());
351
+ if (result->IsEmpty()) {
352
+ return v8::Nothing<void>();
353
+ }
354
+ } else {
355
+ if (errors->Empty()) errors->Capture();
356
+ CHECK(!errors->Empty());
357
+ *result = v8::Undefined(env->isolate());
358
+ if (!errors->ToException(env).ToLocal(err)) {
359
+ return v8::Nothing<void>();
360
+ }
375
361
  }
376
-
377
- if (errors->Empty())
378
- errors->Capture();
379
- CHECK(!errors->Empty());
380
- *result = v8::Undefined(env->isolate());
381
- return v8::Just(errors->ToException(env).ToLocal(err));
362
+ CHECK(!result->IsEmpty());
363
+ CHECK(!err->IsEmpty());
364
+ return v8::JustVoid();
382
365
  }
383
366
 
384
367
  SET_SELF_SIZE(KeyExportJob)
@@ -388,25 +371,22 @@ class KeyExportJob final : public CryptoJob<KeyExportTraits> {
388
371
  }
389
372
 
390
373
  private:
391
- std::shared_ptr<KeyObjectData> key_;
374
+ KeyObjectData key_;
392
375
  WebCryptoKeyFormat format_;
393
376
  ByteSource out_;
394
377
  };
395
378
 
396
- WebCryptoKeyExportStatus PKEY_SPKI_Export(
397
- KeyObjectData* key_data,
398
- ByteSource* out);
379
+ WebCryptoKeyExportStatus PKEY_SPKI_Export(const KeyObjectData& key_data,
380
+ ByteSource* out);
399
381
 
400
- WebCryptoKeyExportStatus PKEY_PKCS8_Export(
401
- KeyObjectData* key_data,
402
- ByteSource* out);
382
+ WebCryptoKeyExportStatus PKEY_PKCS8_Export(const KeyObjectData& key_data,
383
+ ByteSource* out);
403
384
 
404
385
  namespace Keys {
405
386
  void Initialize(Environment* env, v8::Local<v8::Object> target);
387
+ void RegisterExternalReferences(ExternalReferenceRegistry* registry);
406
388
  } // namespace Keys
407
-
408
- } // namespace crypto
409
- } // namespace node
389
+ } // namespace node::crypto
410
390
 
411
391
  #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
412
392
  #endif // SRC_CRYPTO_CRYPTO_KEYS_H_