@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
@@ -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_