@encharm/cws 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/dist/bindings/cws_linux_108.node +0 -0
  2. package/dist/bindings/cws_linux_64.node +0 -0
  3. package/dist/bindings/cws_linux_72.node +0 -0
  4. package/dist/bindings/cws_linux_79.node +0 -0
  5. package/dist/bindings/cws_linux_83.node +0 -0
  6. package/dist/bindings/cws_linux_93.node +0 -0
  7. package/dist/bindings/cws_win32_64.node +0 -0
  8. package/dist/bindings/cws_win32_72.node +0 -0
  9. package/dist/bindings/cws_win32_79.node +0 -0
  10. package/dist/bindings/cws_win32_83.node +0 -0
  11. package/dist/bindings/cws_win32_93.node +0 -0
  12. package/package.json +1 -1
  13. package/src/Addon.h +24 -2
  14. package/src/HTTPSocket.cpp +1 -1
  15. package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
  16. package/src/headers/18/aliased_struct-inl.h +54 -0
  17. package/src/headers/18/aliased_struct.h +63 -0
  18. package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
  19. package/src/headers/{12 → 18}/async_wrap.h +26 -2
  20. package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
  21. package/src/headers/18/base64.h +69 -0
  22. package/src/headers/{12 → 18}/base_object-inl.h +46 -25
  23. package/src/headers/{12 → 18}/base_object.h +82 -17
  24. package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
  25. package/src/headers/{12 → 18}/callback_queue.h +13 -5
  26. package/src/headers/18/cares_wrap.h +523 -0
  27. package/src/headers/{12 → 18}/connect_wrap.h +0 -0
  28. package/src/headers/{12 → 18}/connection_wrap.h +0 -0
  29. package/src/headers/18/crypto/crypto_aes.h +89 -0
  30. package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
  31. package/src/headers/18/crypto/crypto_cipher.h +291 -0
  32. package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
  33. package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
  34. package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
  35. package/src/headers/18/crypto/crypto_context.h +147 -0
  36. package/src/headers/18/crypto/crypto_dh.h +156 -0
  37. package/src/headers/18/crypto/crypto_dsa.h +77 -0
  38. package/src/headers/18/crypto/crypto_ec.h +170 -0
  39. package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
  40. package/src/headers/18/crypto/crypto_hash.h +89 -0
  41. package/src/headers/18/crypto/crypto_hkdf.h +65 -0
  42. package/src/headers/18/crypto/crypto_hmac.h +94 -0
  43. package/src/headers/18/crypto/crypto_keygen.h +305 -0
  44. package/src/headers/18/crypto/crypto_keys.h +420 -0
  45. package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
  46. package/src/headers/18/crypto/crypto_random.h +130 -0
  47. package/src/headers/18/crypto/crypto_rsa.h +141 -0
  48. package/src/headers/18/crypto/crypto_scrypt.h +87 -0
  49. package/src/headers/18/crypto/crypto_sig.h +168 -0
  50. package/src/headers/18/crypto/crypto_spkac.h +21 -0
  51. package/src/headers/18/crypto/crypto_timing.h +20 -0
  52. package/src/headers/{13/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
  53. package/src/headers/18/crypto/crypto_util.h +791 -0
  54. package/src/headers/18/crypto/crypto_x509.h +143 -0
  55. package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
  56. package/src/headers/{13 → 18}/debug_utils.h +7 -4
  57. package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
  58. package/src/headers/{12 → 18}/env-inl.h +397 -304
  59. package/src/headers/{12 → 18}/env.h +397 -172
  60. package/src/headers/{12 → 18}/handle_wrap.h +7 -3
  61. package/src/headers/18/histogram-inl.h +107 -0
  62. package/src/headers/18/histogram.h +239 -0
  63. package/src/headers/{13 → 18}/inspector_agent.h +4 -7
  64. package/src/headers/{12 → 18}/inspector_io.h +0 -0
  65. package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
  66. package/src/headers/{12 → 18}/inspector_socket.h +0 -0
  67. package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
  68. package/src/headers/18/js_native_api.h +571 -0
  69. package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
  70. package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
  71. package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
  72. package/src/headers/{12 → 18}/js_stream.h +0 -0
  73. package/src/headers/{12 → 18}/json_utils.h +0 -0
  74. package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
  75. package/src/headers/{13 → 18}/memory_tracker.h +0 -7
  76. package/src/headers/{13 → 18}/module_wrap.h +24 -7
  77. package/src/headers/{13 → 18}/node.h +329 -68
  78. package/src/headers/18/node_api.h +288 -0
  79. package/src/headers/18/node_api_internals.h +38 -0
  80. package/src/headers/{12 → 18}/node_api_types.h +12 -9
  81. package/src/headers/{12 → 18}/node_binding.h +0 -0
  82. package/src/headers/18/node_blob.h +191 -0
  83. package/src/headers/18/node_bob-inl.h +37 -0
  84. package/src/headers/18/node_bob.h +111 -0
  85. package/src/headers/{13 → 18}/node_buffer.h +0 -0
  86. package/src/headers/{13 → 18}/node_constants.h +5 -1
  87. package/src/headers/{12 → 18}/node_context_data.h +5 -0
  88. package/src/headers/{12 → 18}/node_contextify.h +37 -2
  89. package/src/headers/{10/node_win32_perfctr_provider.h → 18/node_crypto.h} +30 -31
  90. package/src/headers/{12 → 18}/node_dir.h +0 -0
  91. package/src/headers/{12 → 18}/node_dtrace.h +0 -0
  92. package/src/headers/{12 → 18}/node_errors.h +90 -24
  93. package/src/headers/18/node_external_reference.h +145 -0
  94. package/src/headers/{13 → 18}/node_file-inl.h +38 -21
  95. package/src/headers/{12 → 18}/node_file.h +74 -13
  96. package/src/headers/{13 → 18}/node_http2.h +365 -269
  97. package/src/headers/{12 → 18}/node_http2_state.h +40 -50
  98. package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
  99. package/src/headers/{13 → 18}/node_http_common.h +24 -20
  100. package/src/headers/{13 → 18}/node_i18n.h +2 -1
  101. package/src/headers/{12 → 18}/node_internals.h +39 -41
  102. package/src/headers/{13 → 18}/node_main_instance.h +15 -18
  103. package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
  104. package/src/headers/{12 → 18}/node_mem.h +1 -1
  105. package/src/headers/{13 → 18}/node_messaging.h +170 -23
  106. package/src/headers/{12 → 18}/node_metadata.h +17 -4
  107. package/src/headers/{12 → 18}/node_mutex.h +77 -1
  108. package/src/headers/{12 → 18}/node_native_module.h +11 -1
  109. package/src/headers/{13 → 18}/node_native_module_env.h +14 -8
  110. package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
  111. package/src/headers/{13 → 18}/node_options-inl.h +51 -21
  112. package/src/headers/{13 → 18}/node_options.h +46 -14
  113. package/src/headers/18/node_perf.h +168 -0
  114. package/src/headers/{12 → 18}/node_perf_common.h +16 -22
  115. package/src/headers/{12 → 18}/node_platform.h +21 -16
  116. package/src/headers/18/node_process-inl.h +26 -0
  117. package/src/headers/18/node_process.h +97 -0
  118. package/src/headers/{13 → 18}/node_report.h +2 -2
  119. package/src/headers/{13 → 18}/node_revert.h +10 -0
  120. package/src/headers/{12 → 18}/node_root_certs.h +439 -651
  121. package/src/headers/18/node_snapshot_builder.h +43 -0
  122. package/src/headers/18/node_snapshotable.h +130 -0
  123. package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
  124. package/src/headers/18/node_sockaddr.h +405 -0
  125. package/src/headers/{12 → 18}/node_stat_watcher.h +7 -1
  126. package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
  127. package/src/headers/{13 → 18}/node_url.h +18 -1
  128. package/src/headers/18/node_v8.h +41 -0
  129. package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
  130. package/src/headers/{13 → 18}/node_version.h +7 -7
  131. package/src/headers/{12 → 18}/node_wasi.h +0 -0
  132. package/src/headers/18/node_wasm_web_api.h +55 -0
  133. package/src/headers/{13 → 18}/node_watchdog.h +0 -0
  134. package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
  135. package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
  136. package/src/headers/{13 → 18}/node_worker.h +24 -17
  137. package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
  138. package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
  139. package/src/headers/{12 → 18}/req_wrap.h +1 -1
  140. package/src/headers/{12 → 18}/spawn_sync.h +0 -0
  141. package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
  142. package/src/headers/{13 → 18}/stream_base.h +29 -3
  143. package/src/headers/{13 → 18}/stream_pipe.h +8 -3
  144. package/src/headers/{12 → 18}/stream_wrap.h +4 -1
  145. package/src/headers/{13 → 18}/string_bytes.h +0 -7
  146. package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
  147. package/src/headers/{10 → 18}/string_decoder.h +0 -0
  148. package/src/headers/{13 → 18}/string_search.h +2 -2
  149. package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
  150. package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
  151. package/src/headers/18/timer_wrap-inl.h +32 -0
  152. package/src/headers/18/timer_wrap.h +85 -0
  153. package/src/headers/{13 → 18}/tracing/agent.h +1 -1
  154. package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
  155. package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
  156. package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
  157. package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
  158. package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
  159. package/src/headers/{13 → 18}/tty_wrap.h +2 -1
  160. package/src/headers/{13 → 18}/udp_wrap.h +5 -0
  161. package/src/headers/{13 → 18}/util-inl.h +69 -15
  162. package/src/headers/{13 → 18}/util.h +93 -31
  163. package/src/headers/18/v8-fast-api-calls.h +939 -0
  164. package/src/headers/{12 → 18}/v8abbr.h +2 -2
  165. package/src/headers/10/aliased_buffer.h +0 -241
  166. package/src/headers/10/async_wrap-inl.h +0 -106
  167. package/src/headers/10/async_wrap.h +0 -218
  168. package/src/headers/10/base64.h +0 -197
  169. package/src/headers/10/base_object-inl.h +0 -132
  170. package/src/headers/10/base_object.h +0 -115
  171. package/src/headers/10/connect_wrap.h +0 -28
  172. package/src/headers/10/connection_wrap.h +0 -30
  173. package/src/headers/10/debug_utils.h +0 -128
  174. package/src/headers/10/env-inl.h +0 -906
  175. package/src/headers/10/env.h +0 -1046
  176. package/src/headers/10/handle_wrap.h +0 -114
  177. package/src/headers/10/inspector_agent.h +0 -137
  178. package/src/headers/10/inspector_io.h +0 -97
  179. package/src/headers/10/inspector_socket.h +0 -59
  180. package/src/headers/10/inspector_socket_server.h +0 -104
  181. package/src/headers/10/js_stream.h +0 -57
  182. package/src/headers/10/memory_tracker-inl.h +0 -318
  183. package/src/headers/10/memory_tracker.h +0 -246
  184. package/src/headers/10/module_wrap.h +0 -100
  185. package/src/headers/10/node.h +0 -863
  186. package/src/headers/10/node_api.h +0 -752
  187. package/src/headers/10/node_api_types.h +0 -171
  188. package/src/headers/10/node_buffer.h +0 -90
  189. package/src/headers/10/node_code_cache.h +0 -17
  190. package/src/headers/10/node_constants.h +0 -74
  191. package/src/headers/10/node_context_data.h +0 -39
  192. package/src/headers/10/node_contextify.h +0 -141
  193. package/src/headers/10/node_counters.h +0 -59
  194. package/src/headers/10/node_crypto.h +0 -699
  195. package/src/headers/10/node_crypto_bio.h +0 -177
  196. package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
  197. package/src/headers/10/node_crypto_clienthello.h +0 -131
  198. package/src/headers/10/node_crypto_groups.h +0 -416
  199. package/src/headers/10/node_dtrace.h +0 -84
  200. package/src/headers/10/node_errors.h +0 -118
  201. package/src/headers/10/node_file.h +0 -373
  202. package/src/headers/10/node_http2.h +0 -1304
  203. package/src/headers/10/node_http2_state.h +0 -158
  204. package/src/headers/10/node_i18n.h +0 -69
  205. package/src/headers/10/node_internals.h +0 -952
  206. package/src/headers/10/node_javascript.h +0 -41
  207. package/src/headers/10/node_messaging.h +0 -219
  208. package/src/headers/10/node_mutex.h +0 -191
  209. package/src/headers/10/node_object_wrap.h +0 -130
  210. package/src/headers/10/node_options-inl.h +0 -444
  211. package/src/headers/10/node_options.h +0 -397
  212. package/src/headers/10/node_perf.h +0 -134
  213. package/src/headers/10/node_perf_common.h +0 -96
  214. package/src/headers/10/node_persistent.h +0 -30
  215. package/src/headers/10/node_platform.h +0 -170
  216. package/src/headers/10/node_revert.h +0 -75
  217. package/src/headers/10/node_root_certs.h +0 -3393
  218. package/src/headers/10/node_stat_watcher.h +0 -65
  219. package/src/headers/10/node_url.h +0 -193
  220. package/src/headers/10/node_version.h +0 -120
  221. package/src/headers/10/node_watchdog.h +0 -114
  222. package/src/headers/10/node_worker.h +0 -94
  223. package/src/headers/10/pipe_wrap.h +0 -76
  224. package/src/headers/10/req_wrap-inl.h +0 -166
  225. package/src/headers/10/req_wrap.h +0 -61
  226. package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
  227. package/src/headers/10/spawn_sync.h +0 -240
  228. package/src/headers/10/stream_base-inl.h +0 -458
  229. package/src/headers/10/stream_base.h +0 -378
  230. package/src/headers/10/stream_pipe.h +0 -72
  231. package/src/headers/10/stream_wrap.h +0 -130
  232. package/src/headers/10/string_bytes.h +0 -126
  233. package/src/headers/10/string_decoder-inl.h +0 -38
  234. package/src/headers/10/string_search.h +0 -620
  235. package/src/headers/10/tcp_wrap.h +0 -99
  236. package/src/headers/10/tls_wrap.h +0 -195
  237. package/src/headers/10/tracing/agent.h +0 -178
  238. package/src/headers/10/tracing/node_trace_buffer.h +0 -83
  239. package/src/headers/10/tracing/node_trace_writer.h +0 -75
  240. package/src/headers/10/tracing/trace_event.h +0 -706
  241. package/src/headers/10/tracing/trace_event_common.h +0 -1102
  242. package/src/headers/10/tracing/traced_value.h +0 -68
  243. package/src/headers/10/tty_wrap.h +0 -63
  244. package/src/headers/10/udp_wrap.h +0 -102
  245. package/src/headers/10/util-inl.h +0 -459
  246. package/src/headers/10/util.h +0 -508
  247. package/src/headers/10/v8abbr.h +0 -121
  248. package/src/headers/12/aliased_buffer.h +0 -263
  249. package/src/headers/12/debug_utils.h +0 -181
  250. package/src/headers/12/histogram-inl.h +0 -83
  251. package/src/headers/12/histogram.h +0 -98
  252. package/src/headers/12/http_parser_adaptor.h +0 -24
  253. package/src/headers/12/inspector_agent.h +0 -147
  254. package/src/headers/12/inspector_profiler.h +0 -137
  255. package/src/headers/12/js_native_api.h +0 -541
  256. package/src/headers/12/js_native_api_types.h +0 -139
  257. package/src/headers/12/memory_tracker-inl.h +0 -339
  258. package/src/headers/12/memory_tracker.h +0 -283
  259. package/src/headers/12/module_wrap.h +0 -99
  260. package/src/headers/12/node.h +0 -887
  261. package/src/headers/12/node_api.h +0 -239
  262. package/src/headers/12/node_buffer.h +0 -92
  263. package/src/headers/12/node_constants.h +0 -80
  264. package/src/headers/12/node_crypto.h +0 -800
  265. package/src/headers/12/node_crypto_bio.h +0 -195
  266. package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
  267. package/src/headers/12/node_crypto_clienthello.h +0 -132
  268. package/src/headers/12/node_file-inl.h +0 -289
  269. package/src/headers/12/node_http2.h +0 -1311
  270. package/src/headers/12/node_http_parser_impl.h +0 -994
  271. package/src/headers/12/node_i18n.h +0 -144
  272. package/src/headers/12/node_main_instance.h +0 -97
  273. package/src/headers/12/node_messaging.h +0 -227
  274. package/src/headers/12/node_native_module_env.h +0 -65
  275. package/src/headers/12/node_options-inl.h +0 -447
  276. package/src/headers/12/node_options.h +0 -479
  277. package/src/headers/12/node_perf.h +0 -181
  278. package/src/headers/12/node_process.h +0 -41
  279. package/src/headers/12/node_report.h +0 -47
  280. package/src/headers/12/node_revert.h +0 -78
  281. package/src/headers/12/node_sockaddr.h +0 -123
  282. package/src/headers/12/node_url.h +0 -188
  283. package/src/headers/12/node_version.h +0 -98
  284. package/src/headers/12/node_watchdog.h +0 -152
  285. package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
  286. package/src/headers/12/node_win32_etw_provider.h +0 -99
  287. package/src/headers/12/node_worker.h +0 -142
  288. package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
  289. package/src/headers/12/stream_base-inl.h +0 -323
  290. package/src/headers/12/stream_base.h +0 -431
  291. package/src/headers/12/stream_pipe.h +0 -72
  292. package/src/headers/12/string_bytes.h +0 -142
  293. package/src/headers/12/string_decoder.h +0 -50
  294. package/src/headers/12/string_search.h +0 -638
  295. package/src/headers/12/tls_wrap.h +0 -221
  296. package/src/headers/12/tracing/agent.h +0 -195
  297. package/src/headers/12/tracing/trace_event.h +0 -710
  298. package/src/headers/12/tty_wrap.h +0 -64
  299. package/src/headers/12/udp_wrap.h +0 -222
  300. package/src/headers/12/util-inl.h +0 -529
  301. package/src/headers/12/util.h +0 -765
  302. package/src/headers/13/async_wrap-inl.h +0 -94
  303. package/src/headers/13/async_wrap.h +0 -224
  304. package/src/headers/13/base64.h +0 -197
  305. package/src/headers/13/base_object-inl.h +0 -353
  306. package/src/headers/13/base_object.h +0 -229
  307. package/src/headers/13/connect_wrap.h +0 -26
  308. package/src/headers/13/connection_wrap.h +0 -30
  309. package/src/headers/13/debug_utils-inl.h +0 -223
  310. package/src/headers/13/diagnosticfilename-inl.h +0 -33
  311. package/src/headers/13/env-inl.h +0 -1293
  312. package/src/headers/13/env.h +0 -1469
  313. package/src/headers/13/handle_wrap.h +0 -117
  314. package/src/headers/13/histogram-inl.h +0 -83
  315. package/src/headers/13/histogram.h +0 -98
  316. package/src/headers/13/inspector_io.h +0 -78
  317. package/src/headers/13/inspector_socket.h +0 -60
  318. package/src/headers/13/inspector_socket_server.h +0 -110
  319. package/src/headers/13/js_native_api.h +0 -541
  320. package/src/headers/13/js_native_api_v8.h +0 -303
  321. package/src/headers/13/js_native_api_v8_internals.h +0 -38
  322. package/src/headers/13/js_stream.h +0 -52
  323. package/src/headers/13/json_utils.h +0 -160
  324. package/src/headers/13/node_api.h +0 -239
  325. package/src/headers/13/node_api_types.h +0 -44
  326. package/src/headers/13/node_binding.h +0 -99
  327. package/src/headers/13/node_context_data.h +0 -39
  328. package/src/headers/13/node_contextify.h +0 -161
  329. package/src/headers/13/node_crypto.h +0 -800
  330. package/src/headers/13/node_crypto_common.h +0 -138
  331. package/src/headers/13/node_crypto_groups.h +0 -415
  332. package/src/headers/13/node_dir.h +0 -52
  333. package/src/headers/13/node_dtrace.h +0 -86
  334. package/src/headers/13/node_errors.h +0 -210
  335. package/src/headers/13/node_file.h +0 -364
  336. package/src/headers/13/node_http2_state.h +0 -144
  337. package/src/headers/13/node_internals.h +0 -405
  338. package/src/headers/13/node_mem-inl.h +0 -112
  339. package/src/headers/13/node_mem.h +0 -41
  340. package/src/headers/13/node_metadata.h +0 -109
  341. package/src/headers/13/node_mutex.h +0 -247
  342. package/src/headers/13/node_native_module.h +0 -99
  343. package/src/headers/13/node_object_wrap.h +0 -132
  344. package/src/headers/13/node_perf.h +0 -181
  345. package/src/headers/13/node_perf_common.h +0 -97
  346. package/src/headers/13/node_platform.h +0 -190
  347. package/src/headers/13/node_process.h +0 -41
  348. package/src/headers/13/node_root_certs.h +0 -3424
  349. package/src/headers/13/node_sockaddr-inl.h +0 -170
  350. package/src/headers/13/node_sockaddr.h +0 -123
  351. package/src/headers/13/node_stat_watcher.h +0 -66
  352. package/src/headers/13/node_union_bytes.h +0 -103
  353. package/src/headers/13/node_v8_platform-inl.h +0 -184
  354. package/src/headers/13/node_wasi.h +0 -108
  355. package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
  356. package/src/headers/13/node_win32_etw_provider.h +0 -99
  357. package/src/headers/13/pipe_wrap.h +0 -78
  358. package/src/headers/13/req_wrap-inl.h +0 -170
  359. package/src/headers/13/req_wrap.h +0 -77
  360. package/src/headers/13/spawn_sync.h +0 -242
  361. package/src/headers/13/stream_wrap.h +0 -130
  362. package/src/headers/13/string_decoder-inl.h +0 -37
  363. package/src/headers/13/string_decoder.h +0 -50
  364. package/src/headers/13/tcp_wrap.h +0 -101
  365. package/src/headers/13/threadpoolwork-inl.h +0 -57
  366. package/src/headers/13/tracing/node_trace_buffer.h +0 -83
  367. package/src/headers/13/tracing/node_trace_writer.h +0 -75
  368. package/src/headers/13/tracing/trace_event_common.h +0 -1109
  369. package/src/headers/13/tracing/traced_value.h +0 -70
  370. package/src/headers/13/v8abbr.h +0 -124
@@ -7,6 +7,13 @@
7
7
 
8
8
  namespace node {
9
9
 
10
+ namespace CallbackFlags {
11
+ enum Flags {
12
+ kUnrefed = 0,
13
+ kRefed = 1,
14
+ };
15
+ }
16
+
10
17
  // A queue of C++ functions that take Args... as arguments and return R
11
18
  // (this is similar to the signature of std::function).
12
19
  // New entries are added using `CreateCallback()`/`Push()`, and removed using
@@ -18,25 +25,26 @@ class CallbackQueue {
18
25
  public:
19
26
  class Callback {
20
27
  public:
21
- explicit inline Callback(bool refed);
28
+ explicit inline Callback(CallbackFlags::Flags flags);
22
29
 
23
30
  virtual ~Callback() = default;
24
31
  virtual R Call(Args... args) = 0;
25
32
 
26
- inline bool is_refed() const;
33
+ inline CallbackFlags::Flags flags() const;
27
34
 
28
35
  private:
29
36
  inline std::unique_ptr<Callback> get_next();
30
37
  inline void set_next(std::unique_ptr<Callback> next);
31
38
 
32
- bool refed_;
39
+ CallbackFlags::Flags flags_;
33
40
  std::unique_ptr<Callback> next_;
34
41
 
35
42
  friend class CallbackQueue;
36
43
  };
37
44
 
38
45
  template <typename Fn>
39
- inline std::unique_ptr<Callback> CreateCallback(Fn&& fn, bool refed);
46
+ inline std::unique_ptr<Callback> CreateCallback(
47
+ Fn&& fn, CallbackFlags::Flags);
40
48
 
41
49
  inline std::unique_ptr<Callback> Shift();
42
50
  inline void Push(std::unique_ptr<Callback> cb);
@@ -51,7 +59,7 @@ class CallbackQueue {
51
59
  template <typename Fn>
52
60
  class CallbackImpl final : public Callback {
53
61
  public:
54
- CallbackImpl(Fn&& callback, bool refed);
62
+ CallbackImpl(Fn&& callback, CallbackFlags::Flags flags);
55
63
  R Call(Args... args) override;
56
64
 
57
65
  private:
@@ -0,0 +1,523 @@
1
+ #ifndef SRC_CARES_WRAP_H_
2
+ #define SRC_CARES_WRAP_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #define CARES_STATICLIB
7
+
8
+ #include "async_wrap.h"
9
+ #include "base_object.h"
10
+ #include "env.h"
11
+ #include "memory_tracker.h"
12
+ #include "util.h"
13
+ #include "node.h"
14
+
15
+ #include "ares.h"
16
+ #include "v8.h"
17
+ #include "uv.h"
18
+
19
+ #include <unordered_set>
20
+
21
+ #ifdef __POSIX__
22
+ # include <netdb.h>
23
+ #endif // __POSIX__
24
+
25
+ # include <ares_nameser.h>
26
+
27
+ namespace node {
28
+ namespace cares_wrap {
29
+
30
+ constexpr int ns_t_cname_or_a = -1;
31
+ constexpr int DNS_ESETSRVPENDING = -1000;
32
+
33
+ class ChannelWrap;
34
+
35
+ inline void safe_free_hostent(struct hostent* host);
36
+
37
+ using HostEntPointer = DeleteFnPtr<hostent, ares_free_hostent>;
38
+ using SafeHostEntPointer = DeleteFnPtr<hostent, safe_free_hostent>;
39
+
40
+ inline const char* ToErrorCodeString(int status) {
41
+ switch (status) {
42
+ #define V(code) case ARES_##code: return #code;
43
+ V(EADDRGETNETWORKPARAMS)
44
+ V(EBADFAMILY)
45
+ V(EBADFLAGS)
46
+ V(EBADHINTS)
47
+ V(EBADNAME)
48
+ V(EBADQUERY)
49
+ V(EBADRESP)
50
+ V(EBADSTR)
51
+ V(ECANCELLED)
52
+ V(ECONNREFUSED)
53
+ V(EDESTRUCTION)
54
+ V(EFILE)
55
+ V(EFORMERR)
56
+ V(ELOADIPHLPAPI)
57
+ V(ENODATA)
58
+ V(ENOMEM)
59
+ V(ENONAME)
60
+ V(ENOTFOUND)
61
+ V(ENOTIMP)
62
+ V(ENOTINITIALIZED)
63
+ V(EOF)
64
+ V(EREFUSED)
65
+ V(ESERVFAIL)
66
+ V(ETIMEOUT)
67
+ #undef V
68
+ }
69
+
70
+ return "UNKNOWN_ARES_ERROR";
71
+ }
72
+
73
+ inline void cares_wrap_hostent_cpy(
74
+ struct hostent* dest,
75
+ const struct hostent* src) {
76
+ dest->h_addr_list = nullptr;
77
+ dest->h_addrtype = 0;
78
+ dest->h_aliases = nullptr;
79
+ dest->h_length = 0;
80
+ dest->h_name = nullptr;
81
+
82
+ /* copy `h_name` */
83
+ size_t name_size = strlen(src->h_name) + 1;
84
+ dest->h_name = node::Malloc<char>(name_size);
85
+ memcpy(dest->h_name, src->h_name, name_size);
86
+
87
+ /* copy `h_aliases` */
88
+ size_t alias_count;
89
+ for (alias_count = 0;
90
+ src->h_aliases[alias_count] != nullptr;
91
+ alias_count++) {
92
+ }
93
+
94
+ dest->h_aliases = node::Malloc<char*>(alias_count + 1);
95
+ for (size_t i = 0; i < alias_count; i++) {
96
+ const size_t cur_alias_size = strlen(src->h_aliases[i]) + 1;
97
+ dest->h_aliases[i] = node::Malloc(cur_alias_size);
98
+ memcpy(dest->h_aliases[i], src->h_aliases[i], cur_alias_size);
99
+ }
100
+ dest->h_aliases[alias_count] = nullptr;
101
+
102
+ /* copy `h_addr_list` */
103
+ size_t list_count;
104
+ for (list_count = 0;
105
+ src->h_addr_list[list_count] != nullptr;
106
+ list_count++) {
107
+ }
108
+
109
+ dest->h_addr_list = node::Malloc<char*>(list_count + 1);
110
+ for (size_t i = 0; i < list_count; i++) {
111
+ dest->h_addr_list[i] = node::Malloc(src->h_length);
112
+ memcpy(dest->h_addr_list[i], src->h_addr_list[i], src->h_length);
113
+ }
114
+ dest->h_addr_list[list_count] = nullptr;
115
+
116
+ /* work after work */
117
+ dest->h_length = src->h_length;
118
+ dest->h_addrtype = src->h_addrtype;
119
+ }
120
+
121
+
122
+ struct NodeAresTask final : public MemoryRetainer {
123
+ ChannelWrap* channel;
124
+ ares_socket_t sock;
125
+ uv_poll_t poll_watcher;
126
+
127
+ inline void MemoryInfo(MemoryTracker* trakcer) const override;
128
+ SET_MEMORY_INFO_NAME(NodeAresTask)
129
+ SET_SELF_SIZE(NodeAresTask)
130
+
131
+ struct Hash {
132
+ inline size_t operator()(NodeAresTask* a) const {
133
+ return std::hash<ares_socket_t>()(a->sock);
134
+ }
135
+ };
136
+
137
+ struct Equal {
138
+ inline bool operator()(NodeAresTask* a, NodeAresTask* b) const {
139
+ return a->sock == b->sock;
140
+ }
141
+ };
142
+
143
+ static NodeAresTask* Create(ChannelWrap* channel, ares_socket_t sock);
144
+
145
+ using List = std::unordered_set<NodeAresTask*, Hash, Equal>;
146
+ };
147
+
148
+ class ChannelWrap final : public AsyncWrap {
149
+ public:
150
+ ChannelWrap(
151
+ Environment* env,
152
+ v8::Local<v8::Object> object,
153
+ int timeout,
154
+ int tries);
155
+ ~ChannelWrap() override;
156
+
157
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
158
+
159
+ void Setup();
160
+ void EnsureServers();
161
+ void StartTimer();
162
+ void CloseTimer();
163
+
164
+ void ModifyActivityQueryCount(int count);
165
+
166
+ inline uv_timer_t* timer_handle() { return timer_handle_; }
167
+ inline ares_channel cares_channel() { return channel_; }
168
+ inline void set_query_last_ok(bool ok) { query_last_ok_ = ok; }
169
+ inline void set_is_servers_default(bool is_default) {
170
+ is_servers_default_ = is_default;
171
+ }
172
+ inline int active_query_count() { return active_query_count_; }
173
+ inline NodeAresTask::List* task_list() { return &task_list_; }
174
+
175
+ void MemoryInfo(MemoryTracker* tracker) const override;
176
+ SET_MEMORY_INFO_NAME(ChannelWrap)
177
+ SET_SELF_SIZE(ChannelWrap)
178
+
179
+ static void AresTimeout(uv_timer_t* handle);
180
+
181
+ private:
182
+ uv_timer_t* timer_handle_ = nullptr;
183
+ ares_channel channel_ = nullptr;
184
+ bool query_last_ok_ = true;
185
+ bool is_servers_default_ = true;
186
+ bool library_inited_ = false;
187
+ int timeout_;
188
+ int tries_;
189
+ int active_query_count_ = 0;
190
+ NodeAresTask::List task_list_;
191
+ };
192
+
193
+ class GetAddrInfoReqWrap final : public ReqWrap<uv_getaddrinfo_t> {
194
+ public:
195
+ GetAddrInfoReqWrap(Environment* env,
196
+ v8::Local<v8::Object> req_wrap_obj,
197
+ bool verbatim);
198
+
199
+ SET_NO_MEMORY_INFO()
200
+ SET_MEMORY_INFO_NAME(GetAddrInfoReqWrap)
201
+ SET_SELF_SIZE(GetAddrInfoReqWrap)
202
+
203
+ bool verbatim() const { return verbatim_; }
204
+
205
+ private:
206
+ const bool verbatim_;
207
+ };
208
+
209
+ class GetNameInfoReqWrap final : public ReqWrap<uv_getnameinfo_t> {
210
+ public:
211
+ GetNameInfoReqWrap(Environment* env, v8::Local<v8::Object> req_wrap_obj);
212
+
213
+ SET_NO_MEMORY_INFO()
214
+ SET_MEMORY_INFO_NAME(GetNameInfoReqWrap)
215
+ SET_SELF_SIZE(GetNameInfoReqWrap)
216
+ };
217
+
218
+ struct ResponseData final {
219
+ int status;
220
+ bool is_host;
221
+ SafeHostEntPointer host;
222
+ MallocedBuffer<unsigned char> buf;
223
+ };
224
+
225
+ template <typename Traits>
226
+ class QueryWrap final : public AsyncWrap {
227
+ public:
228
+ QueryWrap(ChannelWrap* channel, v8::Local<v8::Object> req_wrap_obj)
229
+ : AsyncWrap(channel->env(), req_wrap_obj, AsyncWrap::PROVIDER_QUERYWRAP),
230
+ channel_(channel),
231
+ trace_name_(Traits::name) {}
232
+
233
+ ~QueryWrap() {
234
+ CHECK_EQ(false, persistent().IsEmpty());
235
+
236
+ // Let Callback() know that this object no longer exists.
237
+ if (callback_ptr_ != nullptr)
238
+ *callback_ptr_ = nullptr;
239
+ }
240
+
241
+ int Send(const char* name) {
242
+ return Traits::Send(this, name);
243
+ }
244
+
245
+ void AresQuery(const char* name, int dnsclass, int type) {
246
+ channel_->EnsureServers();
247
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1(
248
+ TRACING_CATEGORY_NODE2(dns, native), trace_name_, this,
249
+ "name", TRACE_STR_COPY(name));
250
+ ares_query(
251
+ channel_->cares_channel(),
252
+ name,
253
+ dnsclass,
254
+ type,
255
+ Callback,
256
+ MakeCallbackPointer());
257
+ }
258
+
259
+ void ParseError(int status) {
260
+ CHECK_NE(status, ARES_SUCCESS);
261
+ v8::HandleScope handle_scope(env()->isolate());
262
+ v8::Context::Scope context_scope(env()->context());
263
+ const char* code = ToErrorCodeString(status);
264
+ v8::Local<v8::Value> arg = OneByteString(env()->isolate(), code);
265
+ TRACE_EVENT_NESTABLE_ASYNC_END1(
266
+ TRACING_CATEGORY_NODE2(dns, native), trace_name_, this,
267
+ "error", status);
268
+ MakeCallback(env()->oncomplete_string(), 1, &arg);
269
+ }
270
+
271
+ const BaseObjectPtr<ChannelWrap>& channel() const { return channel_; }
272
+
273
+ void AfterResponse() {
274
+ CHECK(response_data_);
275
+
276
+ int status = response_data_->status;
277
+
278
+ if (status != ARES_SUCCESS)
279
+ return ParseError(status);
280
+
281
+ status = Traits::Parse(this, response_data_);
282
+
283
+ if (status != ARES_SUCCESS)
284
+ ParseError(status);
285
+ }
286
+
287
+ void* MakeCallbackPointer() {
288
+ CHECK_NULL(callback_ptr_);
289
+ callback_ptr_ = new QueryWrap<Traits>*(this);
290
+ return callback_ptr_;
291
+ }
292
+
293
+ static QueryWrap<Traits>* FromCallbackPointer(void* arg) {
294
+ std::unique_ptr<QueryWrap<Traits>*> wrap_ptr {
295
+ static_cast<QueryWrap<Traits>**>(arg)
296
+ };
297
+ QueryWrap<Traits>* wrap = *wrap_ptr.get();
298
+ if (wrap == nullptr) return nullptr;
299
+ wrap->callback_ptr_ = nullptr;
300
+ return wrap;
301
+ }
302
+
303
+ static void Callback(
304
+ void* arg,
305
+ int status,
306
+ int timeouts,
307
+ unsigned char* answer_buf,
308
+ int answer_len) {
309
+ QueryWrap<Traits>* wrap = FromCallbackPointer(arg);
310
+ if (wrap == nullptr) return;
311
+
312
+ unsigned char* buf_copy = nullptr;
313
+ if (status == ARES_SUCCESS) {
314
+ buf_copy = node::Malloc<unsigned char>(answer_len);
315
+ memcpy(buf_copy, answer_buf, answer_len);
316
+ }
317
+
318
+ wrap->response_data_ = std::make_unique<ResponseData>();
319
+ ResponseData* data = wrap->response_data_.get();
320
+ data->status = status;
321
+ data->is_host = false;
322
+ data->buf = MallocedBuffer<unsigned char>(buf_copy, answer_len);
323
+
324
+ wrap->QueueResponseCallback(status);
325
+ }
326
+
327
+ static void Callback(
328
+ void* arg,
329
+ int status,
330
+ int timeouts,
331
+ struct hostent* host) {
332
+ QueryWrap<Traits>* wrap = FromCallbackPointer(arg);
333
+ if (wrap == nullptr) return;
334
+
335
+ struct hostent* host_copy = nullptr;
336
+ if (status == ARES_SUCCESS) {
337
+ host_copy = node::Malloc<hostent>(1);
338
+ cares_wrap_hostent_cpy(host_copy, host);
339
+ }
340
+
341
+ wrap->response_data_ = std::make_unique<ResponseData>();
342
+ ResponseData* data = wrap->response_data_.get();
343
+ data->status = status;
344
+ data->host.reset(host_copy);
345
+ data->is_host = true;
346
+
347
+ wrap->QueueResponseCallback(status);
348
+ }
349
+
350
+ void QueueResponseCallback(int status) {
351
+ BaseObjectPtr<QueryWrap<Traits>> strong_ref{this};
352
+ env()->SetImmediate([this, strong_ref](Environment*) {
353
+ AfterResponse();
354
+
355
+ // Delete once strong_ref goes out of scope.
356
+ Detach();
357
+ });
358
+
359
+ channel_->set_query_last_ok(status != ARES_ECONNREFUSED);
360
+ channel_->ModifyActivityQueryCount(-1);
361
+ }
362
+
363
+ void CallOnComplete(
364
+ v8::Local<v8::Value> answer,
365
+ v8::Local<v8::Value> extra = v8::Local<v8::Value>()) {
366
+ v8::HandleScope handle_scope(env()->isolate());
367
+ v8::Context::Scope context_scope(env()->context());
368
+ v8::Local<v8::Value> argv[] = {
369
+ v8::Integer::New(env()->isolate(), 0),
370
+ answer,
371
+ extra
372
+ };
373
+ const int argc = arraysize(argv) - extra.IsEmpty();
374
+ TRACE_EVENT_NESTABLE_ASYNC_END0(
375
+ TRACING_CATEGORY_NODE2(dns, native), trace_name_, this);
376
+
377
+ MakeCallback(env()->oncomplete_string(), argc, argv);
378
+ }
379
+
380
+ void MemoryInfo(MemoryTracker* tracker) const override {
381
+ tracker->TrackField("channel", channel_);
382
+ if (response_data_) {
383
+ tracker->TrackFieldWithSize("response", response_data_->buf.size);
384
+ }
385
+ }
386
+
387
+ SET_MEMORY_INFO_NAME(QueryWrap)
388
+ SET_SELF_SIZE(QueryWrap<Traits>)
389
+
390
+ private:
391
+ BaseObjectPtr<ChannelWrap> channel_;
392
+
393
+ std::unique_ptr<ResponseData> response_data_;
394
+ const char* trace_name_;
395
+ // Pointer to pointer to 'this' that can be reset from the destructor,
396
+ // in order to let Callback() know that 'this' no longer exists.
397
+ QueryWrap<Traits>** callback_ptr_ = nullptr;
398
+ };
399
+
400
+ struct AnyTraits final {
401
+ static constexpr const char* name = "resolveAny";
402
+ static int Send(QueryWrap<AnyTraits>* wrap, const char* name);
403
+ static int Parse(
404
+ QueryWrap<AnyTraits>* wrap,
405
+ const std::unique_ptr<ResponseData>& response);
406
+ };
407
+
408
+ struct ATraits final {
409
+ static constexpr const char* name = "resolve4";
410
+ static int Send(QueryWrap<ATraits>* wrap, const char* name);
411
+ static int Parse(
412
+ QueryWrap<ATraits>* wrap,
413
+ const std::unique_ptr<ResponseData>& response);
414
+ };
415
+
416
+ struct AaaaTraits final {
417
+ static constexpr const char* name = "resolve6";
418
+ static int Send(QueryWrap<AaaaTraits>* wrap, const char* name);
419
+ static int Parse(
420
+ QueryWrap<AaaaTraits>* wrap,
421
+ const std::unique_ptr<ResponseData>& response);
422
+ };
423
+
424
+ struct CaaTraits final {
425
+ static constexpr const char* name = "resolveCaa";
426
+ static int Send(QueryWrap<CaaTraits>* wrap, const char* name);
427
+ static int Parse(
428
+ QueryWrap<CaaTraits>* wrap,
429
+ const std::unique_ptr<ResponseData>& response);
430
+ };
431
+
432
+ struct CnameTraits final {
433
+ static constexpr const char* name = "resolveCname";
434
+ static int Send(QueryWrap<CnameTraits>* wrap, const char* name);
435
+ static int Parse(
436
+ QueryWrap<CnameTraits>* wrap,
437
+ const std::unique_ptr<ResponseData>& response);
438
+ };
439
+
440
+ struct MxTraits final {
441
+ static constexpr const char* name = "resolveMx";
442
+ static int Send(QueryWrap<MxTraits>* wrap, const char* name);
443
+ static int Parse(
444
+ QueryWrap<MxTraits>* wrap,
445
+ const std::unique_ptr<ResponseData>& response);
446
+ };
447
+
448
+ struct NsTraits final {
449
+ static constexpr const char* name = "resolveNs";
450
+ static int Send(QueryWrap<NsTraits>* wrap, const char* name);
451
+ static int Parse(
452
+ QueryWrap<NsTraits>* wrap,
453
+ const std::unique_ptr<ResponseData>& response);
454
+ };
455
+
456
+ struct TxtTraits final {
457
+ static constexpr const char* name = "resolveTxt";
458
+ static int Send(QueryWrap<TxtTraits>* wrap, const char* name);
459
+ static int Parse(
460
+ QueryWrap<TxtTraits>* wrap,
461
+ const std::unique_ptr<ResponseData>& response);
462
+ };
463
+
464
+ struct SrvTraits final {
465
+ static constexpr const char* name = "resolveSrv";
466
+ static int Send(QueryWrap<SrvTraits>* wrap, const char* name);
467
+ static int Parse(
468
+ QueryWrap<SrvTraits>* wrap,
469
+ const std::unique_ptr<ResponseData>& response);
470
+ };
471
+
472
+ struct PtrTraits final {
473
+ static constexpr const char* name = "resolvePtr";
474
+ static int Send(QueryWrap<PtrTraits>* wrap, const char* name);
475
+ static int Parse(
476
+ QueryWrap<PtrTraits>* wrap,
477
+ const std::unique_ptr<ResponseData>& response);
478
+ };
479
+
480
+ struct NaptrTraits final {
481
+ static constexpr const char* name = "resolveNaptr";
482
+ static int Send(QueryWrap<NaptrTraits>* wrap, const char* name);
483
+ static int Parse(
484
+ QueryWrap<NaptrTraits>* wrap,
485
+ const std::unique_ptr<ResponseData>& response);
486
+ };
487
+
488
+ struct SoaTraits final {
489
+ static constexpr const char* name = "resolveSoa";
490
+ static int Send(QueryWrap<SoaTraits>* wrap, const char* name);
491
+ static int Parse(
492
+ QueryWrap<SoaTraits>* wrap,
493
+ const std::unique_ptr<ResponseData>& response);
494
+ };
495
+
496
+ struct ReverseTraits final {
497
+ static constexpr const char* name = "reverse";
498
+ static int Send(QueryWrap<ReverseTraits>* wrap, const char* name);
499
+ static int Parse(
500
+ QueryWrap<ReverseTraits>* wrap,
501
+ const std::unique_ptr<ResponseData>& response);
502
+ };
503
+
504
+ using QueryAnyWrap = QueryWrap<AnyTraits>;
505
+ using QueryAWrap = QueryWrap<ATraits>;
506
+ using QueryAaaaWrap = QueryWrap<AaaaTraits>;
507
+ using QueryCaaWrap = QueryWrap<CaaTraits>;
508
+ using QueryCnameWrap = QueryWrap<CnameTraits>;
509
+ using QueryMxWrap = QueryWrap<MxTraits>;
510
+ using QueryNsWrap = QueryWrap<NsTraits>;
511
+ using QueryTxtWrap = QueryWrap<TxtTraits>;
512
+ using QuerySrvWrap = QueryWrap<SrvTraits>;
513
+ using QueryPtrWrap = QueryWrap<PtrTraits>;
514
+ using QueryNaptrWrap = QueryWrap<NaptrTraits>;
515
+ using QuerySoaWrap = QueryWrap<SoaTraits>;
516
+ using GetHostByAddrWrap = QueryWrap<ReverseTraits>;
517
+
518
+ } // namespace cares_wrap
519
+ } // namespace node
520
+
521
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
522
+
523
+ #endif // SRC_CARES_WRAP_H_
File without changes
File without changes
@@ -0,0 +1,89 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_AES_H_
2
+ #define SRC_CRYPTO_CRYPTO_AES_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 {
13
+ namespace crypto {
14
+ constexpr size_t kAesBlockSize = 16;
15
+ constexpr unsigned kNoAuthTagLength = static_cast<unsigned>(-1);
16
+ constexpr const char* kDefaultWrapIV = "\xa6\xa6\xa6\xa6\xa6\xa6\xa6\xa6";
17
+
18
+ #define VARIANTS(V) \
19
+ V(CTR_128, AES_CTR_Cipher) \
20
+ V(CTR_192, AES_CTR_Cipher) \
21
+ V(CTR_256, AES_CTR_Cipher) \
22
+ V(CBC_128, AES_Cipher) \
23
+ V(CBC_192, AES_Cipher) \
24
+ V(CBC_256, AES_Cipher) \
25
+ V(GCM_128, AES_Cipher) \
26
+ V(GCM_192, AES_Cipher) \
27
+ V(GCM_256, AES_Cipher) \
28
+ V(KW_128, AES_Cipher) \
29
+ V(KW_192, AES_Cipher) \
30
+ V(KW_256, AES_Cipher)
31
+
32
+ enum AESKeyVariant {
33
+ #define V(name, _) kKeyVariantAES_ ## name,
34
+ VARIANTS(V)
35
+ #undef V
36
+ };
37
+
38
+ struct AESCipherConfig final : public MemoryRetainer {
39
+ CryptoJobMode mode;
40
+ AESKeyVariant variant;
41
+ const EVP_CIPHER* cipher;
42
+ size_t length;
43
+ ByteSource iv; // Used for both iv or counter
44
+ ByteSource additional_data;
45
+ ByteSource tag; // Used only for authenticated modes (GCM)
46
+
47
+ AESCipherConfig() = default;
48
+
49
+ AESCipherConfig(AESCipherConfig&& other) noexcept;
50
+
51
+ AESCipherConfig& operator=(AESCipherConfig&& other) noexcept;
52
+
53
+ void MemoryInfo(MemoryTracker* tracker) const override;
54
+ SET_MEMORY_INFO_NAME(AESCipherConfig)
55
+ SET_SELF_SIZE(AESCipherConfig)
56
+ };
57
+
58
+ struct AESCipherTraits final {
59
+ static constexpr const char* JobName = "AESCipherJob";
60
+
61
+ using AdditionalParameters = AESCipherConfig;
62
+
63
+ static v8::Maybe<bool> AdditionalConfig(
64
+ CryptoJobMode mode,
65
+ const v8::FunctionCallbackInfo<v8::Value>& args,
66
+ unsigned int offset,
67
+ WebCryptoCipherMode cipher_mode,
68
+ AESCipherConfig* config);
69
+
70
+ static WebCryptoCipherStatus DoCipher(
71
+ Environment* env,
72
+ std::shared_ptr<KeyObjectData> key_data,
73
+ WebCryptoCipherMode cipher_mode,
74
+ const AESCipherConfig& params,
75
+ const ByteSource& in,
76
+ ByteSource* out);
77
+ };
78
+
79
+ using AESCryptoJob = CipherJob<AESCipherTraits>;
80
+
81
+ namespace AES {
82
+ void Initialize(Environment* env, v8::Local<v8::Object> target);
83
+ void RegisterExternalReferences(ExternalReferenceRegistry* registry);
84
+ } // namespace AES
85
+ } // namespace crypto
86
+ } // namespace node
87
+
88
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
89
+ #endif // SRC_CRYPTO_CRYPTO_AES_H_
@@ -19,8 +19,8 @@
19
19
  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
20
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
- #ifndef SRC_NODE_CRYPTO_BIO_H_
23
- #define SRC_NODE_CRYPTO_BIO_H_
22
+ #ifndef SRC_CRYPTO_CRYPTO_BIO_H_
23
+ #define SRC_CRYPTO_CRYPTO_BIO_H_
24
24
 
25
25
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
26
26
 
@@ -34,7 +34,6 @@ namespace node {
34
34
  class Environment;
35
35
 
36
36
  namespace crypto {
37
-
38
37
  // This class represents buffers for OpenSSL I/O, implemented as a singly-linked
39
38
  // list of chunks. It can be used either for writing data from Node to OpenSSL,
40
39
  // or for reading data back, but not both.
@@ -192,4 +191,4 @@ class NodeBIO : public MemoryRetainer {
192
191
 
193
192
  #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
194
193
 
195
- #endif // SRC_NODE_CRYPTO_BIO_H_
194
+ #endif // SRC_CRYPTO_CRYPTO_BIO_H_