@encharm/cws 4.0.2 → 4.3.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 (410) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +3 -2
  3. package/README.md +9 -2
  4. package/binding.gyp +2 -2
  5. package/dist/bindings/cws_darwin_arm64_node108.node +0 -0
  6. package/dist/bindings/cws_darwin_arm64_node64.node +0 -0
  7. package/dist/bindings/cws_darwin_arm64_node72.node +0 -0
  8. package/dist/bindings/cws_darwin_arm64_node79.node +0 -0
  9. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  10. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  11. package/dist/bindings/cws_darwin_x64_node108.node +0 -0
  12. package/dist/bindings/cws_darwin_x64_node64.node +0 -0
  13. package/dist/bindings/cws_darwin_x64_node72.node +0 -0
  14. package/dist/bindings/cws_darwin_x64_node79.node +0 -0
  15. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  16. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  17. package/dist/bindings/cws_linux_x64_node108.node +0 -0
  18. package/dist/bindings/cws_linux_x64_node64.node +0 -0
  19. package/dist/bindings/cws_linux_x64_node72.node +0 -0
  20. package/dist/bindings/cws_linux_x64_node79.node +0 -0
  21. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  22. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  23. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  24. package/dist/bindings/cws_win32_x64_node64.node +0 -0
  25. package/dist/bindings/cws_win32_x64_node72.node +0 -0
  26. package/dist/bindings/cws_win32_x64_node79.node +0 -0
  27. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  28. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  29. package/dist/client.d.ts +1 -0
  30. package/dist/client.js +4 -0
  31. package/dist/index.js +3 -2
  32. package/dist/server.js +1 -0
  33. package/dist/shared.js +2 -1
  34. package/package.json +1 -1
  35. package/src/Addon.cpp +1 -0
  36. package/src/Addon.h +35 -2
  37. package/src/HTTPSocket.cpp +1 -1
  38. package/src/LICENSE +4 -0
  39. package/src/Socket.h +12 -3
  40. package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
  41. package/src/headers/18/aliased_struct-inl.h +54 -0
  42. package/src/headers/18/aliased_struct.h +63 -0
  43. package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
  44. package/src/headers/{12 → 18}/async_wrap.h +26 -2
  45. package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
  46. package/src/headers/18/base64.h +69 -0
  47. package/src/headers/{12 → 18}/base_object-inl.h +46 -25
  48. package/src/headers/{12 → 18}/base_object.h +82 -17
  49. package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
  50. package/src/headers/{12 → 18}/callback_queue.h +13 -5
  51. package/src/headers/18/cares_wrap.h +523 -0
  52. package/src/headers/{12 → 18}/connect_wrap.h +0 -0
  53. package/src/headers/{12 → 18}/connection_wrap.h +0 -0
  54. package/src/headers/18/crypto/crypto_aes.h +89 -0
  55. package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
  56. package/src/headers/18/crypto/crypto_cipher.h +291 -0
  57. package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
  58. package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
  59. package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
  60. package/src/headers/18/crypto/crypto_context.h +147 -0
  61. package/src/headers/18/crypto/crypto_dh.h +156 -0
  62. package/src/headers/18/crypto/crypto_dsa.h +77 -0
  63. package/src/headers/18/crypto/crypto_ec.h +170 -0
  64. package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
  65. package/src/headers/18/crypto/crypto_hash.h +89 -0
  66. package/src/headers/18/crypto/crypto_hkdf.h +65 -0
  67. package/src/headers/18/crypto/crypto_hmac.h +94 -0
  68. package/src/headers/18/crypto/crypto_keygen.h +305 -0
  69. package/src/headers/18/crypto/crypto_keys.h +420 -0
  70. package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
  71. package/src/headers/18/crypto/crypto_random.h +130 -0
  72. package/src/headers/18/crypto/crypto_rsa.h +141 -0
  73. package/src/headers/18/crypto/crypto_scrypt.h +87 -0
  74. package/src/headers/18/crypto/crypto_sig.h +168 -0
  75. package/src/headers/18/crypto/crypto_spkac.h +21 -0
  76. package/src/headers/18/crypto/crypto_timing.h +20 -0
  77. package/src/headers/{12/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
  78. package/src/headers/18/crypto/crypto_util.h +791 -0
  79. package/src/headers/18/crypto/crypto_x509.h +143 -0
  80. package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
  81. package/src/headers/{13 → 18}/debug_utils.h +7 -4
  82. package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
  83. package/src/headers/{12 → 18}/env-inl.h +397 -304
  84. package/src/headers/{12 → 18}/env.h +397 -172
  85. package/src/headers/{12 → 18}/handle_wrap.h +7 -3
  86. package/src/headers/18/histogram-inl.h +107 -0
  87. package/src/headers/18/histogram.h +239 -0
  88. package/src/headers/{13 → 18}/inspector_agent.h +4 -7
  89. package/src/headers/{12 → 18}/inspector_io.h +0 -0
  90. package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
  91. package/src/headers/{12 → 18}/inspector_socket.h +0 -0
  92. package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
  93. package/src/headers/18/js_native_api.h +571 -0
  94. package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
  95. package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
  96. package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
  97. package/src/headers/{12 → 18}/js_stream.h +0 -0
  98. package/src/headers/{12 → 18}/json_utils.h +0 -0
  99. package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
  100. package/src/headers/{13 → 18}/memory_tracker.h +0 -7
  101. package/src/headers/{13 → 18}/module_wrap.h +24 -7
  102. package/src/headers/{13 → 18}/node.h +329 -68
  103. package/src/headers/18/node_api.h +288 -0
  104. package/src/headers/18/node_api_internals.h +38 -0
  105. package/src/headers/{12 → 18}/node_api_types.h +12 -9
  106. package/src/headers/{12 → 18}/node_binding.h +0 -0
  107. package/src/headers/18/node_blob.h +191 -0
  108. package/src/headers/18/node_bob-inl.h +37 -0
  109. package/src/headers/18/node_bob.h +111 -0
  110. package/src/headers/{13 → 18}/node_buffer.h +0 -0
  111. package/src/headers/{13 → 18}/node_constants.h +5 -1
  112. package/src/headers/{12 → 18}/node_context_data.h +5 -0
  113. package/src/headers/{12 → 18}/node_contextify.h +37 -2
  114. package/src/headers/{10/node_javascript.h → 18/node_crypto.h} +30 -14
  115. package/src/headers/{12 → 18}/node_dir.h +0 -0
  116. package/src/headers/{12 → 18}/node_dtrace.h +0 -0
  117. package/src/headers/{12 → 18}/node_errors.h +90 -24
  118. package/src/headers/18/node_external_reference.h +145 -0
  119. package/src/headers/{13 → 18}/node_file-inl.h +38 -21
  120. package/src/headers/{12 → 18}/node_file.h +74 -13
  121. package/src/headers/{13 → 18}/node_http2.h +365 -269
  122. package/src/headers/{12 → 18}/node_http2_state.h +40 -50
  123. package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
  124. package/src/headers/{13 → 18}/node_http_common.h +24 -20
  125. package/src/headers/{13 → 18}/node_i18n.h +2 -1
  126. package/src/headers/{12 → 18}/node_internals.h +39 -41
  127. package/src/headers/{12 → 18}/node_main_instance.h +15 -18
  128. package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
  129. package/src/headers/{12 → 18}/node_mem.h +1 -1
  130. package/src/headers/{13 → 18}/node_messaging.h +170 -23
  131. package/src/headers/{12 → 18}/node_metadata.h +17 -4
  132. package/src/headers/{12 → 18}/node_mutex.h +77 -1
  133. package/src/headers/{12 → 18}/node_native_module.h +11 -1
  134. package/src/headers/{12 → 18}/node_native_module_env.h +14 -8
  135. package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
  136. package/src/headers/{13 → 18}/node_options-inl.h +51 -21
  137. package/src/headers/{13 → 18}/node_options.h +46 -14
  138. package/src/headers/18/node_perf.h +168 -0
  139. package/src/headers/{12 → 18}/node_perf_common.h +16 -22
  140. package/src/headers/{12 → 18}/node_platform.h +21 -16
  141. package/src/headers/18/node_process-inl.h +26 -0
  142. package/src/headers/18/node_process.h +97 -0
  143. package/src/headers/{13 → 18}/node_report.h +2 -2
  144. package/src/headers/{13 → 18}/node_revert.h +10 -0
  145. package/src/headers/{12 → 18}/node_root_certs.h +439 -651
  146. package/src/headers/18/node_snapshot_builder.h +43 -0
  147. package/src/headers/18/node_snapshotable.h +130 -0
  148. package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
  149. package/src/headers/18/node_sockaddr.h +405 -0
  150. package/src/headers/{13 → 18}/node_stat_watcher.h +7 -1
  151. package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
  152. package/src/headers/{13 → 18}/node_url.h +18 -1
  153. package/src/headers/18/node_v8.h +41 -0
  154. package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
  155. package/src/headers/{13 → 18}/node_version.h +7 -7
  156. package/src/headers/{12 → 18}/node_wasi.h +0 -0
  157. package/src/headers/18/node_wasm_web_api.h +55 -0
  158. package/src/headers/{13 → 18}/node_watchdog.h +0 -0
  159. package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
  160. package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
  161. package/src/headers/{13 → 18}/node_worker.h +24 -17
  162. package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
  163. package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
  164. package/src/headers/{13 → 18}/req_wrap.h +1 -1
  165. package/src/headers/{12 → 18}/spawn_sync.h +0 -0
  166. package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
  167. package/src/headers/{13 → 18}/stream_base.h +29 -3
  168. package/src/headers/{13 → 18}/stream_pipe.h +8 -3
  169. package/src/headers/{12 → 18}/stream_wrap.h +4 -1
  170. package/src/headers/{13 → 18}/string_bytes.h +0 -7
  171. package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
  172. package/src/headers/{10 → 18}/string_decoder.h +0 -0
  173. package/src/headers/{13 → 18}/string_search.h +2 -2
  174. package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
  175. package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
  176. package/src/headers/18/timer_wrap-inl.h +32 -0
  177. package/src/headers/18/timer_wrap.h +85 -0
  178. package/src/headers/{13 → 18}/tracing/agent.h +1 -1
  179. package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
  180. package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
  181. package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
  182. package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
  183. package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
  184. package/src/headers/{13 → 18}/tty_wrap.h +2 -1
  185. package/src/headers/{13 → 18}/udp_wrap.h +5 -0
  186. package/src/headers/{13 → 18}/util-inl.h +69 -15
  187. package/src/headers/{13 → 18}/util.h +93 -31
  188. package/src/headers/18/v8-fast-api-calls.h +939 -0
  189. package/src/headers/{12 → 18}/v8abbr.h +2 -2
  190. package/dist/bindings/cws_darwin_64.node +0 -0
  191. package/dist/bindings/cws_darwin_72.node +0 -0
  192. package/dist/bindings/cws_darwin_79.node +0 -0
  193. package/dist/bindings/cws_darwin_83.node +0 -0
  194. package/dist/bindings/cws_darwin_93.node +0 -0
  195. package/dist/bindings/cws_linux_64.node +0 -0
  196. package/dist/bindings/cws_linux_72.node +0 -0
  197. package/dist/bindings/cws_linux_79.node +0 -0
  198. package/dist/bindings/cws_linux_83.node +0 -0
  199. package/dist/bindings/cws_linux_93.node +0 -0
  200. package/dist/bindings/cws_win32_64.node +0 -0
  201. package/dist/bindings/cws_win32_72.node +0 -0
  202. package/dist/bindings/cws_win32_79.node +0 -0
  203. package/dist/bindings/cws_win32_83.node +0 -0
  204. package/dist/bindings/cws_win32_93.node +0 -0
  205. package/src/headers/10/aliased_buffer.h +0 -241
  206. package/src/headers/10/async_wrap-inl.h +0 -106
  207. package/src/headers/10/async_wrap.h +0 -218
  208. package/src/headers/10/base64.h +0 -197
  209. package/src/headers/10/base_object-inl.h +0 -132
  210. package/src/headers/10/base_object.h +0 -115
  211. package/src/headers/10/connect_wrap.h +0 -28
  212. package/src/headers/10/connection_wrap.h +0 -30
  213. package/src/headers/10/debug_utils.h +0 -128
  214. package/src/headers/10/env-inl.h +0 -906
  215. package/src/headers/10/env.h +0 -1046
  216. package/src/headers/10/handle_wrap.h +0 -114
  217. package/src/headers/10/inspector_agent.h +0 -137
  218. package/src/headers/10/inspector_io.h +0 -97
  219. package/src/headers/10/inspector_socket.h +0 -59
  220. package/src/headers/10/inspector_socket_server.h +0 -104
  221. package/src/headers/10/js_stream.h +0 -57
  222. package/src/headers/10/memory_tracker-inl.h +0 -318
  223. package/src/headers/10/memory_tracker.h +0 -246
  224. package/src/headers/10/module_wrap.h +0 -100
  225. package/src/headers/10/node.h +0 -863
  226. package/src/headers/10/node_api.h +0 -752
  227. package/src/headers/10/node_api_types.h +0 -171
  228. package/src/headers/10/node_buffer.h +0 -90
  229. package/src/headers/10/node_code_cache.h +0 -17
  230. package/src/headers/10/node_constants.h +0 -74
  231. package/src/headers/10/node_context_data.h +0 -39
  232. package/src/headers/10/node_contextify.h +0 -141
  233. package/src/headers/10/node_counters.h +0 -59
  234. package/src/headers/10/node_crypto.h +0 -699
  235. package/src/headers/10/node_crypto_bio.h +0 -177
  236. package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
  237. package/src/headers/10/node_crypto_clienthello.h +0 -131
  238. package/src/headers/10/node_crypto_groups.h +0 -416
  239. package/src/headers/10/node_dtrace.h +0 -84
  240. package/src/headers/10/node_errors.h +0 -118
  241. package/src/headers/10/node_file.h +0 -373
  242. package/src/headers/10/node_http2.h +0 -1304
  243. package/src/headers/10/node_http2_state.h +0 -158
  244. package/src/headers/10/node_i18n.h +0 -69
  245. package/src/headers/10/node_internals.h +0 -952
  246. package/src/headers/10/node_messaging.h +0 -219
  247. package/src/headers/10/node_mutex.h +0 -191
  248. package/src/headers/10/node_object_wrap.h +0 -130
  249. package/src/headers/10/node_options-inl.h +0 -444
  250. package/src/headers/10/node_options.h +0 -397
  251. package/src/headers/10/node_perf.h +0 -134
  252. package/src/headers/10/node_perf_common.h +0 -96
  253. package/src/headers/10/node_persistent.h +0 -30
  254. package/src/headers/10/node_platform.h +0 -170
  255. package/src/headers/10/node_revert.h +0 -75
  256. package/src/headers/10/node_root_certs.h +0 -3393
  257. package/src/headers/10/node_stat_watcher.h +0 -65
  258. package/src/headers/10/node_url.h +0 -193
  259. package/src/headers/10/node_version.h +0 -120
  260. package/src/headers/10/node_watchdog.h +0 -114
  261. package/src/headers/10/node_win32_perfctr_provider.h +0 -58
  262. package/src/headers/10/node_worker.h +0 -94
  263. package/src/headers/10/pipe_wrap.h +0 -76
  264. package/src/headers/10/req_wrap-inl.h +0 -166
  265. package/src/headers/10/req_wrap.h +0 -61
  266. package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
  267. package/src/headers/10/spawn_sync.h +0 -240
  268. package/src/headers/10/stream_base-inl.h +0 -458
  269. package/src/headers/10/stream_base.h +0 -378
  270. package/src/headers/10/stream_pipe.h +0 -72
  271. package/src/headers/10/stream_wrap.h +0 -130
  272. package/src/headers/10/string_bytes.h +0 -126
  273. package/src/headers/10/string_decoder-inl.h +0 -38
  274. package/src/headers/10/string_search.h +0 -620
  275. package/src/headers/10/tcp_wrap.h +0 -99
  276. package/src/headers/10/tls_wrap.h +0 -195
  277. package/src/headers/10/tracing/agent.h +0 -178
  278. package/src/headers/10/tracing/node_trace_buffer.h +0 -83
  279. package/src/headers/10/tracing/node_trace_writer.h +0 -75
  280. package/src/headers/10/tracing/trace_event.h +0 -706
  281. package/src/headers/10/tracing/trace_event_common.h +0 -1102
  282. package/src/headers/10/tracing/traced_value.h +0 -68
  283. package/src/headers/10/tty_wrap.h +0 -63
  284. package/src/headers/10/udp_wrap.h +0 -102
  285. package/src/headers/10/util-inl.h +0 -459
  286. package/src/headers/10/util.h +0 -508
  287. package/src/headers/10/v8abbr.h +0 -121
  288. package/src/headers/12/aliased_buffer.h +0 -263
  289. package/src/headers/12/debug_utils.h +0 -181
  290. package/src/headers/12/histogram-inl.h +0 -83
  291. package/src/headers/12/histogram.h +0 -98
  292. package/src/headers/12/http_parser_adaptor.h +0 -24
  293. package/src/headers/12/inspector_agent.h +0 -147
  294. package/src/headers/12/inspector_profiler.h +0 -137
  295. package/src/headers/12/js_native_api.h +0 -541
  296. package/src/headers/12/js_native_api_types.h +0 -139
  297. package/src/headers/12/memory_tracker-inl.h +0 -339
  298. package/src/headers/12/memory_tracker.h +0 -283
  299. package/src/headers/12/module_wrap.h +0 -99
  300. package/src/headers/12/node.h +0 -887
  301. package/src/headers/12/node_api.h +0 -239
  302. package/src/headers/12/node_buffer.h +0 -92
  303. package/src/headers/12/node_constants.h +0 -80
  304. package/src/headers/12/node_crypto.h +0 -800
  305. package/src/headers/12/node_crypto_bio.h +0 -195
  306. package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
  307. package/src/headers/12/node_crypto_clienthello.h +0 -132
  308. package/src/headers/12/node_file-inl.h +0 -289
  309. package/src/headers/12/node_http2.h +0 -1311
  310. package/src/headers/12/node_http_parser_impl.h +0 -994
  311. package/src/headers/12/node_i18n.h +0 -144
  312. package/src/headers/12/node_messaging.h +0 -227
  313. package/src/headers/12/node_options-inl.h +0 -447
  314. package/src/headers/12/node_options.h +0 -479
  315. package/src/headers/12/node_perf.h +0 -181
  316. package/src/headers/12/node_process.h +0 -41
  317. package/src/headers/12/node_report.h +0 -47
  318. package/src/headers/12/node_revert.h +0 -78
  319. package/src/headers/12/node_sockaddr.h +0 -123
  320. package/src/headers/12/node_stat_watcher.h +0 -66
  321. package/src/headers/12/node_url.h +0 -188
  322. package/src/headers/12/node_version.h +0 -98
  323. package/src/headers/12/node_watchdog.h +0 -152
  324. package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
  325. package/src/headers/12/node_win32_etw_provider.h +0 -99
  326. package/src/headers/12/node_worker.h +0 -142
  327. package/src/headers/12/req_wrap.h +0 -77
  328. package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
  329. package/src/headers/12/stream_base-inl.h +0 -323
  330. package/src/headers/12/stream_base.h +0 -431
  331. package/src/headers/12/stream_pipe.h +0 -72
  332. package/src/headers/12/string_bytes.h +0 -142
  333. package/src/headers/12/string_decoder.h +0 -50
  334. package/src/headers/12/string_search.h +0 -638
  335. package/src/headers/12/tracing/agent.h +0 -195
  336. package/src/headers/12/tracing/trace_event.h +0 -710
  337. package/src/headers/12/tty_wrap.h +0 -64
  338. package/src/headers/12/udp_wrap.h +0 -222
  339. package/src/headers/12/util-inl.h +0 -529
  340. package/src/headers/12/util.h +0 -765
  341. package/src/headers/13/async_wrap-inl.h +0 -94
  342. package/src/headers/13/async_wrap.h +0 -224
  343. package/src/headers/13/base64.h +0 -197
  344. package/src/headers/13/base_object-inl.h +0 -353
  345. package/src/headers/13/base_object.h +0 -229
  346. package/src/headers/13/connect_wrap.h +0 -26
  347. package/src/headers/13/connection_wrap.h +0 -30
  348. package/src/headers/13/debug_utils-inl.h +0 -223
  349. package/src/headers/13/diagnosticfilename-inl.h +0 -33
  350. package/src/headers/13/env-inl.h +0 -1293
  351. package/src/headers/13/env.h +0 -1469
  352. package/src/headers/13/handle_wrap.h +0 -117
  353. package/src/headers/13/histogram-inl.h +0 -83
  354. package/src/headers/13/histogram.h +0 -98
  355. package/src/headers/13/inspector_io.h +0 -78
  356. package/src/headers/13/inspector_socket.h +0 -60
  357. package/src/headers/13/inspector_socket_server.h +0 -110
  358. package/src/headers/13/js_native_api.h +0 -541
  359. package/src/headers/13/js_native_api_v8.h +0 -303
  360. package/src/headers/13/js_native_api_v8_internals.h +0 -38
  361. package/src/headers/13/js_stream.h +0 -52
  362. package/src/headers/13/json_utils.h +0 -160
  363. package/src/headers/13/node_api.h +0 -239
  364. package/src/headers/13/node_api_types.h +0 -44
  365. package/src/headers/13/node_binding.h +0 -99
  366. package/src/headers/13/node_context_data.h +0 -39
  367. package/src/headers/13/node_contextify.h +0 -161
  368. package/src/headers/13/node_crypto.h +0 -800
  369. package/src/headers/13/node_crypto_common.h +0 -138
  370. package/src/headers/13/node_crypto_groups.h +0 -415
  371. package/src/headers/13/node_dir.h +0 -52
  372. package/src/headers/13/node_dtrace.h +0 -86
  373. package/src/headers/13/node_errors.h +0 -210
  374. package/src/headers/13/node_file.h +0 -364
  375. package/src/headers/13/node_http2_state.h +0 -144
  376. package/src/headers/13/node_internals.h +0 -405
  377. package/src/headers/13/node_main_instance.h +0 -97
  378. package/src/headers/13/node_mem-inl.h +0 -112
  379. package/src/headers/13/node_mem.h +0 -41
  380. package/src/headers/13/node_metadata.h +0 -109
  381. package/src/headers/13/node_mutex.h +0 -247
  382. package/src/headers/13/node_native_module.h +0 -99
  383. package/src/headers/13/node_native_module_env.h +0 -65
  384. package/src/headers/13/node_object_wrap.h +0 -132
  385. package/src/headers/13/node_perf.h +0 -181
  386. package/src/headers/13/node_perf_common.h +0 -97
  387. package/src/headers/13/node_platform.h +0 -190
  388. package/src/headers/13/node_process.h +0 -41
  389. package/src/headers/13/node_root_certs.h +0 -3424
  390. package/src/headers/13/node_sockaddr-inl.h +0 -170
  391. package/src/headers/13/node_sockaddr.h +0 -123
  392. package/src/headers/13/node_union_bytes.h +0 -103
  393. package/src/headers/13/node_v8_platform-inl.h +0 -184
  394. package/src/headers/13/node_wasi.h +0 -108
  395. package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
  396. package/src/headers/13/node_win32_etw_provider.h +0 -99
  397. package/src/headers/13/pipe_wrap.h +0 -78
  398. package/src/headers/13/req_wrap-inl.h +0 -170
  399. package/src/headers/13/spawn_sync.h +0 -242
  400. package/src/headers/13/stream_wrap.h +0 -130
  401. package/src/headers/13/string_decoder-inl.h +0 -37
  402. package/src/headers/13/string_decoder.h +0 -50
  403. package/src/headers/13/tcp_wrap.h +0 -101
  404. package/src/headers/13/threadpoolwork-inl.h +0 -57
  405. package/src/headers/13/tls_wrap.h +0 -221
  406. package/src/headers/13/tracing/node_trace_buffer.h +0 -83
  407. package/src/headers/13/tracing/node_trace_writer.h +0 -75
  408. package/src/headers/13/tracing/trace_event_common.h +0 -1109
  409. package/src/headers/13/tracing/traced_value.h +0 -70
  410. package/src/headers/13/v8abbr.h +0 -124
@@ -0,0 +1,156 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_DH_H_
2
+ #define SRC_CRYPTO_CRYPTO_DH_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "crypto/crypto_keys.h"
7
+ #include "crypto/crypto_keygen.h"
8
+ #include "crypto/crypto_util.h"
9
+ #include "env.h"
10
+ #include "memory_tracker.h"
11
+ #include "v8.h"
12
+
13
+ #include <variant>
14
+
15
+ namespace node {
16
+ namespace crypto {
17
+ class DiffieHellman : public BaseObject {
18
+ public:
19
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
20
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
21
+
22
+ bool Init(int primeLength, int g);
23
+ bool Init(const char* p, int p_len, int g);
24
+ bool Init(const char* p, int p_len, const char* g, int g_len);
25
+
26
+ static void Stateless(const v8::FunctionCallbackInfo<v8::Value>& args);
27
+
28
+ protected:
29
+ static void DiffieHellmanGroup(
30
+ const v8::FunctionCallbackInfo<v8::Value>& args);
31
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
32
+ static void GenerateKeys(const v8::FunctionCallbackInfo<v8::Value>& args);
33
+ static void GetPrime(const v8::FunctionCallbackInfo<v8::Value>& args);
34
+ static void GetGenerator(const v8::FunctionCallbackInfo<v8::Value>& args);
35
+ static void GetPublicKey(const v8::FunctionCallbackInfo<v8::Value>& args);
36
+ static void GetPrivateKey(const v8::FunctionCallbackInfo<v8::Value>& args);
37
+ static void ComputeSecret(const v8::FunctionCallbackInfo<v8::Value>& args);
38
+ static void SetPublicKey(const v8::FunctionCallbackInfo<v8::Value>& args);
39
+ static void SetPrivateKey(const v8::FunctionCallbackInfo<v8::Value>& args);
40
+ static void VerifyErrorGetter(
41
+ const v8::FunctionCallbackInfo<v8::Value>& args);
42
+
43
+ DiffieHellman(Environment* env, v8::Local<v8::Object> wrap);
44
+
45
+ void MemoryInfo(MemoryTracker* tracker) const override;
46
+ SET_MEMORY_INFO_NAME(DiffieHellman)
47
+ SET_SELF_SIZE(DiffieHellman)
48
+
49
+ private:
50
+ static void GetField(const v8::FunctionCallbackInfo<v8::Value>& args,
51
+ const BIGNUM* (*get_field)(const DH*),
52
+ const char* err_if_null);
53
+ static void SetKey(const v8::FunctionCallbackInfo<v8::Value>& args,
54
+ int (*set_field)(DH*, BIGNUM*), const char* what);
55
+ bool VerifyContext();
56
+
57
+ int verifyError_;
58
+ DHPointer dh_;
59
+ };
60
+
61
+ struct DhKeyPairParams final : public MemoryRetainer {
62
+ // Diffie-Hellman can either generate keys using a fixed prime, or by first
63
+ // generating a random prime of a given size (in bits). Only one of both
64
+ // options may be specified.
65
+ std::variant<BignumPointer, int> prime;
66
+ unsigned int generator;
67
+ SET_NO_MEMORY_INFO()
68
+ SET_MEMORY_INFO_NAME(DhKeyPairParams)
69
+ SET_SELF_SIZE(DhKeyPairParams)
70
+ };
71
+
72
+ using DhKeyPairGenConfig = KeyPairGenConfig<DhKeyPairParams>;
73
+
74
+ struct DhKeyGenTraits final {
75
+ using AdditionalParameters = DhKeyPairGenConfig;
76
+ static constexpr const char* JobName = "DhKeyPairGenJob";
77
+
78
+ static EVPKeyCtxPointer Setup(DhKeyPairGenConfig* params);
79
+
80
+ static v8::Maybe<bool> AdditionalConfig(
81
+ CryptoJobMode mode,
82
+ const v8::FunctionCallbackInfo<v8::Value>& args,
83
+ unsigned int* offset,
84
+ DhKeyPairGenConfig* params);
85
+ };
86
+
87
+ using DHKeyPairGenJob = KeyGenJob<KeyPairGenTraits<DhKeyGenTraits>>;
88
+
89
+ struct DHKeyExportConfig final : public MemoryRetainer {
90
+ SET_NO_MEMORY_INFO()
91
+ SET_MEMORY_INFO_NAME(DHKeyExportConfig)
92
+ SET_SELF_SIZE(DHKeyExportConfig)
93
+ };
94
+
95
+ struct DHKeyExportTraits final {
96
+ static constexpr const char* JobName = "DHKeyExportJob";
97
+ using AdditionalParameters = DHKeyExportConfig;
98
+
99
+ static v8::Maybe<bool> AdditionalConfig(
100
+ const v8::FunctionCallbackInfo<v8::Value>& args,
101
+ unsigned int offset,
102
+ DHKeyExportConfig* config);
103
+
104
+ static WebCryptoKeyExportStatus DoExport(
105
+ std::shared_ptr<KeyObjectData> key_data,
106
+ WebCryptoKeyFormat format,
107
+ const DHKeyExportConfig& params,
108
+ ByteSource* out);
109
+ };
110
+
111
+ using DHKeyExportJob = KeyExportJob<DHKeyExportTraits>;
112
+
113
+ struct DHBitsConfig final : public MemoryRetainer {
114
+ std::shared_ptr<KeyObjectData> private_key;
115
+ std::shared_ptr<KeyObjectData> public_key;
116
+ SET_NO_MEMORY_INFO()
117
+ SET_MEMORY_INFO_NAME(DHBitsConfig)
118
+ SET_SELF_SIZE(DHBitsConfig)
119
+ };
120
+
121
+ struct DHBitsTraits final {
122
+ using AdditionalParameters = DHBitsConfig;
123
+ static constexpr const char* JobName = "DHBitsJob";
124
+ static constexpr AsyncWrap::ProviderType Provider =
125
+ AsyncWrap::PROVIDER_DERIVEBITSREQUEST;
126
+
127
+ static v8::Maybe<bool> AdditionalConfig(
128
+ CryptoJobMode mode,
129
+ const v8::FunctionCallbackInfo<v8::Value>& args,
130
+ unsigned int offset,
131
+ DHBitsConfig* params);
132
+
133
+ static bool DeriveBits(
134
+ Environment* env,
135
+ const DHBitsConfig& params,
136
+ ByteSource* out_);
137
+
138
+ static v8::Maybe<bool> EncodeOutput(
139
+ Environment* env,
140
+ const DHBitsConfig& params,
141
+ ByteSource* out,
142
+ v8::Local<v8::Value>* result);
143
+ };
144
+
145
+ using DHBitsJob = DeriveBitsJob<DHBitsTraits>;
146
+
147
+ v8::Maybe<bool> GetDhKeyDetail(
148
+ Environment* env,
149
+ std::shared_ptr<KeyObjectData> key,
150
+ v8::Local<v8::Object> target);
151
+
152
+ } // namespace crypto
153
+ } // namespace node
154
+
155
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
156
+ #endif // SRC_CRYPTO_CRYPTO_DH_H_
@@ -0,0 +1,77 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_DSA_H_
2
+ #define SRC_CRYPTO_CRYPTO_DSA_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "crypto/crypto_keys.h"
7
+ #include "crypto/crypto_keygen.h"
8
+ #include "crypto/crypto_util.h"
9
+ #include "env.h"
10
+ #include "memory_tracker.h"
11
+ #include "v8.h"
12
+
13
+ namespace node {
14
+ namespace crypto {
15
+ struct DsaKeyPairParams final : public MemoryRetainer {
16
+ unsigned int modulus_bits;
17
+ int divisor_bits;
18
+ SET_NO_MEMORY_INFO()
19
+ SET_MEMORY_INFO_NAME(DsaKeyPairParams)
20
+ SET_SELF_SIZE(DsaKeyPairParams)
21
+ };
22
+
23
+ using DsaKeyPairGenConfig = KeyPairGenConfig<DsaKeyPairParams>;
24
+
25
+ struct DsaKeyGenTraits final {
26
+ using AdditionalParameters = DsaKeyPairGenConfig;
27
+ static constexpr const char* JobName = "DsaKeyPairGenJob";
28
+
29
+ static EVPKeyCtxPointer Setup(DsaKeyPairGenConfig* params);
30
+
31
+ static v8::Maybe<bool> AdditionalConfig(
32
+ CryptoJobMode mode,
33
+ const v8::FunctionCallbackInfo<v8::Value>& args,
34
+ unsigned int* offset,
35
+ DsaKeyPairGenConfig* params);
36
+ };
37
+
38
+ using DsaKeyPairGenJob = KeyGenJob<KeyPairGenTraits<DsaKeyGenTraits>>;
39
+
40
+ struct DSAKeyExportConfig final : public MemoryRetainer {
41
+ SET_NO_MEMORY_INFO()
42
+ SET_MEMORY_INFO_NAME(DSAKeyExportConfig)
43
+ SET_SELF_SIZE(DSAKeyExportConfig)
44
+ };
45
+
46
+ struct DSAKeyExportTraits final {
47
+ static constexpr const char* JobName = "DSAKeyExportJob";
48
+ using AdditionalParameters = DSAKeyExportConfig;
49
+
50
+ static v8::Maybe<bool> AdditionalConfig(
51
+ const v8::FunctionCallbackInfo<v8::Value>& args,
52
+ unsigned int offset,
53
+ DSAKeyExportConfig* config);
54
+
55
+ static WebCryptoKeyExportStatus DoExport(
56
+ std::shared_ptr<KeyObjectData> key_data,
57
+ WebCryptoKeyFormat format,
58
+ const DSAKeyExportConfig& params,
59
+ ByteSource* out);
60
+ };
61
+
62
+ using DSAKeyExportJob = KeyExportJob<DSAKeyExportTraits>;
63
+
64
+ v8::Maybe<bool> GetDsaKeyDetail(
65
+ Environment* env,
66
+ std::shared_ptr<KeyObjectData> key,
67
+ v8::Local<v8::Object> target);
68
+
69
+ namespace DSAAlg {
70
+ void Initialize(Environment* env, v8::Local<v8::Object> target);
71
+ void RegisterExternalReferences(ExternalReferenceRegistry* registry);
72
+ } // namespace DSAAlg
73
+ } // namespace crypto
74
+ } // namespace node
75
+
76
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
77
+ #endif // SRC_CRYPTO_CRYPTO_DSA_H_
@@ -0,0 +1,170 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_EC_H_
2
+ #define SRC_CRYPTO_CRYPTO_EC_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "async_wrap.h"
7
+ #include "base_object.h"
8
+ #include "crypto/crypto_keygen.h"
9
+ #include "crypto/crypto_keys.h"
10
+ #include "crypto/crypto_util.h"
11
+ #include "env.h"
12
+ #include "memory_tracker.h"
13
+ #include "node_internals.h"
14
+ #include "v8.h"
15
+
16
+ namespace node {
17
+ namespace crypto {
18
+ int GetCurveFromName(const char* name);
19
+ int GetOKPCurveFromName(const char* name);
20
+
21
+ class ECDH final : public BaseObject {
22
+ public:
23
+ ~ECDH() override;
24
+
25
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
26
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
27
+
28
+ static ECPointPointer BufferToPoint(Environment* env,
29
+ const EC_GROUP* group,
30
+ v8::Local<v8::Value> buf);
31
+
32
+ void MemoryInfo(MemoryTracker* tracker) const override;
33
+ SET_MEMORY_INFO_NAME(ECDH)
34
+ SET_SELF_SIZE(ECDH)
35
+
36
+ static void ConvertKey(const v8::FunctionCallbackInfo<v8::Value>& args);
37
+
38
+ static void GetCurves(const v8::FunctionCallbackInfo<v8::Value>& args);
39
+
40
+ protected:
41
+ ECDH(Environment* env, v8::Local<v8::Object> wrap, ECKeyPointer&& key);
42
+
43
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
44
+ static void GenerateKeys(const v8::FunctionCallbackInfo<v8::Value>& args);
45
+ static void ComputeSecret(const v8::FunctionCallbackInfo<v8::Value>& args);
46
+ static void GetPrivateKey(const v8::FunctionCallbackInfo<v8::Value>& args);
47
+ static void SetPrivateKey(const v8::FunctionCallbackInfo<v8::Value>& args);
48
+ static void GetPublicKey(const v8::FunctionCallbackInfo<v8::Value>& args);
49
+ static void SetPublicKey(const v8::FunctionCallbackInfo<v8::Value>& args);
50
+
51
+ bool IsKeyPairValid();
52
+ bool IsKeyValidForCurve(const BignumPointer& private_key);
53
+
54
+ ECKeyPointer key_;
55
+ const EC_GROUP* group_;
56
+ };
57
+
58
+ struct ECDHBitsConfig final : public MemoryRetainer {
59
+ int id_;
60
+ std::shared_ptr<KeyObjectData> private_;
61
+ std::shared_ptr<KeyObjectData> public_;
62
+
63
+ void MemoryInfo(MemoryTracker* tracker) const override;
64
+ SET_MEMORY_INFO_NAME(ECDHBitsConfig)
65
+ SET_SELF_SIZE(ECDHBitsConfig)
66
+ };
67
+
68
+ struct ECDHBitsTraits final {
69
+ using AdditionalParameters = ECDHBitsConfig;
70
+ static constexpr const char* JobName = "ECDHBitsJob";
71
+ static constexpr AsyncWrap::ProviderType Provider =
72
+ AsyncWrap::PROVIDER_DERIVEBITSREQUEST;
73
+
74
+ static v8::Maybe<bool> AdditionalConfig(
75
+ CryptoJobMode mode,
76
+ const v8::FunctionCallbackInfo<v8::Value>& args,
77
+ unsigned int offset,
78
+ ECDHBitsConfig* params);
79
+
80
+ static bool DeriveBits(
81
+ Environment* env,
82
+ const ECDHBitsConfig& params,
83
+ ByteSource* out_);
84
+
85
+ static v8::Maybe<bool> EncodeOutput(
86
+ Environment* env,
87
+ const ECDHBitsConfig& params,
88
+ ByteSource* out,
89
+ v8::Local<v8::Value>* result);
90
+ };
91
+
92
+ using ECDHBitsJob = DeriveBitsJob<ECDHBitsTraits>;
93
+
94
+ struct EcKeyPairParams final : public MemoryRetainer {
95
+ int curve_nid;
96
+ int param_encoding;
97
+ SET_NO_MEMORY_INFO()
98
+ SET_MEMORY_INFO_NAME(EcKeyPairParams)
99
+ SET_SELF_SIZE(EcKeyPairParams)
100
+ };
101
+
102
+ using EcKeyPairGenConfig = KeyPairGenConfig<EcKeyPairParams>;
103
+
104
+ struct EcKeyGenTraits final {
105
+ using AdditionalParameters = EcKeyPairGenConfig;
106
+ static constexpr const char* JobName = "EcKeyPairGenJob";
107
+
108
+ static EVPKeyCtxPointer Setup(EcKeyPairGenConfig* params);
109
+
110
+ static v8::Maybe<bool> AdditionalConfig(
111
+ CryptoJobMode mode,
112
+ const v8::FunctionCallbackInfo<v8::Value>& args,
113
+ unsigned int* offset,
114
+ EcKeyPairGenConfig* params);
115
+ };
116
+
117
+ using ECKeyPairGenJob = KeyGenJob<KeyPairGenTraits<EcKeyGenTraits>>;
118
+
119
+ // There is currently no additional information that the
120
+ // ECKeyExport needs to collect, but we need to provide
121
+ // the base struct anyway.
122
+ struct ECKeyExportConfig final : public MemoryRetainer {
123
+ SET_NO_MEMORY_INFO()
124
+ SET_MEMORY_INFO_NAME(ECKeyExportConfig)
125
+ SET_SELF_SIZE(ECKeyExportConfig)
126
+ };
127
+
128
+ struct ECKeyExportTraits final {
129
+ static constexpr const char* JobName = "ECKeyExportJob";
130
+ using AdditionalParameters = ECKeyExportConfig;
131
+
132
+ static v8::Maybe<bool> AdditionalConfig(
133
+ const v8::FunctionCallbackInfo<v8::Value>& args,
134
+ unsigned int offset,
135
+ ECKeyExportConfig* config);
136
+
137
+ static WebCryptoKeyExportStatus DoExport(
138
+ std::shared_ptr<KeyObjectData> key_data,
139
+ WebCryptoKeyFormat format,
140
+ const ECKeyExportConfig& params,
141
+ ByteSource* out);
142
+ };
143
+
144
+ using ECKeyExportJob = KeyExportJob<ECKeyExportTraits>;
145
+
146
+ v8::Maybe<void> ExportJWKEcKey(
147
+ Environment* env,
148
+ std::shared_ptr<KeyObjectData> key,
149
+ v8::Local<v8::Object> target);
150
+
151
+ v8::Maybe<bool> ExportJWKEdKey(
152
+ Environment* env,
153
+ std::shared_ptr<KeyObjectData> key,
154
+ v8::Local<v8::Object> target);
155
+
156
+ std::shared_ptr<KeyObjectData> ImportJWKEcKey(
157
+ Environment* env,
158
+ v8::Local<v8::Object> jwk,
159
+ const v8::FunctionCallbackInfo<v8::Value>& args,
160
+ unsigned int offset);
161
+
162
+ v8::Maybe<bool> GetEcKeyDetail(
163
+ Environment* env,
164
+ std::shared_ptr<KeyObjectData> key,
165
+ v8::Local<v8::Object> target);
166
+ } // namespace crypto
167
+ } // namespace node
168
+
169
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
170
+ #endif // SRC_CRYPTO_CRYPTO_EC_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_GROUPS_H_
23
- #define SRC_NODE_CRYPTO_GROUPS_H_
22
+ #ifndef SRC_CRYPTO_CRYPTO_GROUPS_H_
23
+ #define SRC_CRYPTO_CRYPTO_GROUPS_H_
24
24
 
25
25
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
26
26
 
@@ -412,4 +412,4 @@ static const modp_group modp_groups[] = {
412
412
 
413
413
  #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
414
414
 
415
- #endif // SRC_NODE_CRYPTO_GROUPS_H_
415
+ #endif // SRC_CRYPTO_CRYPTO_GROUPS_H_
@@ -0,0 +1,89 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_HASH_H_
2
+ #define SRC_CRYPTO_CRYPTO_HASH_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "base_object.h"
7
+ #include "crypto/crypto_keys.h"
8
+ #include "crypto/crypto_util.h"
9
+ #include "env.h"
10
+ #include "memory_tracker.h"
11
+ #include "v8.h"
12
+
13
+ namespace node {
14
+ namespace crypto {
15
+ class Hash final : public BaseObject {
16
+ public:
17
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
18
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
19
+
20
+ void MemoryInfo(MemoryTracker* tracker) const override;
21
+ SET_MEMORY_INFO_NAME(Hash)
22
+ SET_SELF_SIZE(Hash)
23
+
24
+ bool HashInit(const EVP_MD* md, v8::Maybe<unsigned int> xof_md_len);
25
+ bool HashUpdate(const char* data, size_t len);
26
+
27
+ static void GetHashes(const v8::FunctionCallbackInfo<v8::Value>& args);
28
+
29
+ protected:
30
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
31
+ static void HashUpdate(const v8::FunctionCallbackInfo<v8::Value>& args);
32
+ static void HashDigest(const v8::FunctionCallbackInfo<v8::Value>& args);
33
+
34
+ Hash(Environment* env, v8::Local<v8::Object> wrap);
35
+
36
+ private:
37
+ EVPMDPointer mdctx_ {};
38
+ unsigned int md_len_ = 0;
39
+ ByteSource digest_;
40
+ };
41
+
42
+ struct HashConfig final : public MemoryRetainer {
43
+ CryptoJobMode mode;
44
+ ByteSource in;
45
+ const EVP_MD* digest;
46
+ unsigned int length;
47
+
48
+ HashConfig() = default;
49
+
50
+ explicit HashConfig(HashConfig&& other) noexcept;
51
+
52
+ HashConfig& operator=(HashConfig&& other) noexcept;
53
+
54
+ void MemoryInfo(MemoryTracker* tracker) const override;
55
+ SET_MEMORY_INFO_NAME(HashConfig)
56
+ SET_SELF_SIZE(HashConfig)
57
+ };
58
+
59
+ struct HashTraits final {
60
+ using AdditionalParameters = HashConfig;
61
+ static constexpr const char* JobName = "HashJob";
62
+ static constexpr AsyncWrap::ProviderType Provider =
63
+ AsyncWrap::PROVIDER_HASHREQUEST;
64
+
65
+ static v8::Maybe<bool> AdditionalConfig(
66
+ CryptoJobMode mode,
67
+ const v8::FunctionCallbackInfo<v8::Value>& args,
68
+ unsigned int offset,
69
+ HashConfig* params);
70
+
71
+ static bool DeriveBits(
72
+ Environment* env,
73
+ const HashConfig& params,
74
+ ByteSource* out);
75
+
76
+ static v8::Maybe<bool> EncodeOutput(
77
+ Environment* env,
78
+ const HashConfig& params,
79
+ ByteSource* out,
80
+ v8::Local<v8::Value>* result);
81
+ };
82
+
83
+ using HashJob = DeriveBitsJob<HashTraits>;
84
+
85
+ } // namespace crypto
86
+ } // namespace node
87
+
88
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
89
+ #endif // SRC_CRYPTO_CRYPTO_HASH_H_
@@ -0,0 +1,65 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_HKDF_H_
2
+ #define SRC_CRYPTO_CRYPTO_HKDF_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "async_wrap.h"
7
+ #include "base_object.h"
8
+ #include "crypto/crypto_keys.h"
9
+ #include "crypto/crypto_util.h"
10
+ #include "v8.h"
11
+
12
+ namespace node {
13
+ namespace crypto {
14
+ static constexpr size_t kMaxDigestMultiplier = 255;
15
+
16
+ struct HKDFConfig final : public MemoryRetainer {
17
+ CryptoJobMode mode;
18
+ size_t length;
19
+ const EVP_MD* digest;
20
+ std::shared_ptr<KeyObjectData> key;
21
+ ByteSource salt;
22
+ ByteSource info;
23
+
24
+ HKDFConfig() = default;
25
+
26
+ explicit HKDFConfig(HKDFConfig&& other) noexcept;
27
+
28
+ HKDFConfig& operator=(HKDFConfig&& other) noexcept;
29
+
30
+ void MemoryInfo(MemoryTracker* tracker) const override;
31
+ SET_MEMORY_INFO_NAME(HKDFConfig)
32
+ SET_SELF_SIZE(HKDFConfig)
33
+ };
34
+
35
+ struct HKDFTraits final {
36
+ using AdditionalParameters = HKDFConfig;
37
+ static constexpr const char* JobName = "HKDFJob";
38
+ static constexpr AsyncWrap::ProviderType Provider =
39
+ AsyncWrap::PROVIDER_DERIVEBITSREQUEST;
40
+
41
+ static v8::Maybe<bool> AdditionalConfig(
42
+ CryptoJobMode mode,
43
+ const v8::FunctionCallbackInfo<v8::Value>& args,
44
+ unsigned int offset,
45
+ HKDFConfig* params);
46
+
47
+ static bool DeriveBits(
48
+ Environment* env,
49
+ const HKDFConfig& params,
50
+ ByteSource* out);
51
+
52
+ static v8::Maybe<bool> EncodeOutput(
53
+ Environment* env,
54
+ const HKDFConfig& params,
55
+ ByteSource* out,
56
+ v8::Local<v8::Value>* result);
57
+ };
58
+
59
+ using HKDFJob = DeriveBitsJob<HKDFTraits>;
60
+
61
+ } // namespace crypto
62
+ } // namespace node
63
+
64
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
65
+ #endif // SRC_CRYPTO_CRYPTO_HKDF_H_
@@ -0,0 +1,94 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_HMAC_H_
2
+ #define SRC_CRYPTO_CRYPTO_HMAC_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "base_object.h"
7
+ #include "crypto/crypto_keys.h"
8
+ #include "crypto/crypto_sig.h"
9
+ #include "crypto/crypto_util.h"
10
+ #include "env.h"
11
+ #include "memory_tracker.h"
12
+ #include "v8.h"
13
+
14
+ namespace node {
15
+ namespace crypto {
16
+ class Hmac : public BaseObject {
17
+ public:
18
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
19
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
20
+
21
+ void MemoryInfo(MemoryTracker* tracker) const override;
22
+ SET_MEMORY_INFO_NAME(Hmac)
23
+ SET_SELF_SIZE(Hmac)
24
+
25
+ protected:
26
+ void HmacInit(const char* hash_type, const char* key, int key_len);
27
+ bool HmacUpdate(const char* data, size_t len);
28
+
29
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
30
+ static void HmacInit(const v8::FunctionCallbackInfo<v8::Value>& args);
31
+ static void HmacUpdate(const v8::FunctionCallbackInfo<v8::Value>& args);
32
+ static void HmacDigest(const v8::FunctionCallbackInfo<v8::Value>& args);
33
+
34
+ Hmac(Environment* env, v8::Local<v8::Object> wrap);
35
+
36
+ static void Sign(const v8::FunctionCallbackInfo<v8::Value>& args);
37
+
38
+ private:
39
+ HMACCtxPointer ctx_;
40
+ };
41
+
42
+ struct HmacConfig final : public MemoryRetainer {
43
+ CryptoJobMode job_mode;
44
+ SignConfiguration::Mode mode;
45
+ std::shared_ptr<KeyObjectData> key;
46
+ ByteSource data;
47
+ ByteSource signature;
48
+ const EVP_MD* digest;
49
+
50
+ HmacConfig() = default;
51
+
52
+ explicit HmacConfig(HmacConfig&& other) noexcept;
53
+
54
+ HmacConfig& operator=(HmacConfig&& other) noexcept;
55
+
56
+ void MemoryInfo(MemoryTracker* tracker) const override;
57
+ SET_MEMORY_INFO_NAME(HmacConfig)
58
+ SET_SELF_SIZE(HmacConfig)
59
+ };
60
+
61
+ struct HmacTraits final {
62
+ using AdditionalParameters = HmacConfig;
63
+ static constexpr const char* JobName = "HmacJob";
64
+
65
+ // TODO(@jasnell): Sign request vs. Verify request
66
+
67
+ static constexpr AsyncWrap::ProviderType Provider =
68
+ AsyncWrap::PROVIDER_SIGNREQUEST;
69
+
70
+ static v8::Maybe<bool> AdditionalConfig(
71
+ CryptoJobMode mode,
72
+ const v8::FunctionCallbackInfo<v8::Value>& args,
73
+ unsigned int offset,
74
+ HmacConfig* params);
75
+
76
+ static bool DeriveBits(
77
+ Environment* env,
78
+ const HmacConfig& params,
79
+ ByteSource* out);
80
+
81
+ static v8::Maybe<bool> EncodeOutput(
82
+ Environment* env,
83
+ const HmacConfig& params,
84
+ ByteSource* out,
85
+ v8::Local<v8::Value>* result);
86
+ };
87
+
88
+ using HmacJob = DeriveBitsJob<HmacTraits>;
89
+
90
+ } // namespace crypto
91
+ } // namespace node
92
+
93
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
94
+ #endif // SRC_CRYPTO_CRYPTO_HMAC_H_