@kungfu-tech/libnode-win32-x64 0.0.0-bootstrap.0 → 22.22.3-kf.1

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 (343) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/dist/node/include/acorn_version.h +6 -0
  4. package/dist/node/include/aliased_buffer-inl.h +244 -0
  5. package/dist/node/include/aliased_buffer.h +206 -0
  6. package/dist/node/include/aliased_struct-inl.h +54 -0
  7. package/dist/node/include/aliased_struct.h +63 -0
  8. package/dist/node/include/amaro_version.h +6 -0
  9. package/dist/node/include/async_context_frame.h +33 -0
  10. package/dist/node/include/async_wrap-inl.h +96 -0
  11. package/dist/node/include/async_wrap.h +243 -0
  12. package/dist/node/include/base_object-inl.h +335 -0
  13. package/dist/node/include/base_object.h +342 -0
  14. package/dist/node/include/base_object_types.h +74 -0
  15. package/dist/node/include/blob_serializer_deserializer-inl.h +385 -0
  16. package/dist/node/include/blob_serializer_deserializer.h +132 -0
  17. package/dist/node/include/callback_queue-inl.h +97 -0
  18. package/dist/node/include/callback_queue.h +79 -0
  19. package/dist/node/include/cares_wrap.h +447 -0
  20. package/dist/node/include/cjs_module_lexer_version.h +6 -0
  21. package/dist/node/include/cleanup_queue-inl.h +36 -0
  22. package/dist/node/include/cleanup_queue.h +79 -0
  23. package/dist/node/include/compile_cache.h +104 -0
  24. package/dist/node/include/connect_wrap.h +26 -0
  25. package/dist/node/include/connection_wrap.h +30 -0
  26. package/dist/node/include/cppgc/allocation.h +310 -0
  27. package/dist/node/include/cppgc/common.h +28 -0
  28. package/dist/node/include/cppgc/cross-thread-persistent.h +466 -0
  29. package/dist/node/include/cppgc/custom-space.h +97 -0
  30. package/dist/node/include/cppgc/default-platform.h +67 -0
  31. package/dist/node/include/cppgc/ephemeron-pair.h +30 -0
  32. package/dist/node/include/cppgc/explicit-management.h +100 -0
  33. package/dist/node/include/cppgc/garbage-collected.h +106 -0
  34. package/dist/node/include/cppgc/heap-consistency.h +309 -0
  35. package/dist/node/include/cppgc/heap-handle.h +48 -0
  36. package/dist/node/include/cppgc/heap-state.h +82 -0
  37. package/dist/node/include/cppgc/heap-statistics.h +120 -0
  38. package/dist/node/include/cppgc/heap.h +202 -0
  39. package/dist/node/include/cppgc/internal/api-constants.h +87 -0
  40. package/dist/node/include/cppgc/internal/atomic-entry-flag.h +48 -0
  41. package/dist/node/include/cppgc/internal/base-page-handle.h +45 -0
  42. package/dist/node/include/cppgc/internal/caged-heap-local-data.h +121 -0
  43. package/dist/node/include/cppgc/internal/caged-heap.h +68 -0
  44. package/dist/node/include/cppgc/internal/compiler-specific.h +38 -0
  45. package/dist/node/include/cppgc/internal/finalizer-trait.h +93 -0
  46. package/dist/node/include/cppgc/internal/gc-info.h +148 -0
  47. package/dist/node/include/cppgc/internal/logging.h +50 -0
  48. package/dist/node/include/cppgc/internal/member-storage.h +256 -0
  49. package/dist/node/include/cppgc/internal/name-trait.h +137 -0
  50. package/dist/node/include/cppgc/internal/persistent-node.h +214 -0
  51. package/dist/node/include/cppgc/internal/pointer-policies.h +243 -0
  52. package/dist/node/include/cppgc/internal/write-barrier.h +487 -0
  53. package/dist/node/include/cppgc/liveness-broker.h +78 -0
  54. package/dist/node/include/cppgc/macros.h +35 -0
  55. package/dist/node/include/cppgc/member.h +629 -0
  56. package/dist/node/include/cppgc/name-provider.h +65 -0
  57. package/dist/node/include/cppgc/object-size-trait.h +58 -0
  58. package/dist/node/include/cppgc/persistent.h +377 -0
  59. package/dist/node/include/cppgc/platform.h +163 -0
  60. package/dist/node/include/cppgc/prefinalizer.h +75 -0
  61. package/dist/node/include/cppgc/process-heap-statistics.h +36 -0
  62. package/dist/node/include/cppgc/sentinel-pointer.h +39 -0
  63. package/dist/node/include/cppgc/source-location.h +16 -0
  64. package/dist/node/include/cppgc/testing.h +106 -0
  65. package/dist/node/include/cppgc/trace-trait.h +128 -0
  66. package/dist/node/include/cppgc/type-traits.h +271 -0
  67. package/dist/node/include/cppgc/visitor.h +504 -0
  68. package/dist/node/include/crypto/crypto_aes.h +88 -0
  69. package/dist/node/include/crypto/crypto_bio.h +193 -0
  70. package/dist/node/include/crypto/crypto_cipher.h +293 -0
  71. package/dist/node/include/crypto/crypto_clienthello-inl.h +90 -0
  72. package/dist/node/include/crypto/crypto_clienthello.h +131 -0
  73. package/dist/node/include/crypto/crypto_common.h +64 -0
  74. package/dist/node/include/crypto/crypto_context.h +171 -0
  75. package/dist/node/include/crypto/crypto_dh.h +126 -0
  76. package/dist/node/include/crypto/crypto_dsa.h +52 -0
  77. package/dist/node/include/crypto/crypto_ec.h +164 -0
  78. package/dist/node/include/crypto/crypto_hash.h +91 -0
  79. package/dist/node/include/crypto/crypto_hkdf.h +61 -0
  80. package/dist/node/include/crypto/crypto_hmac.h +92 -0
  81. package/dist/node/include/crypto/crypto_keygen.h +299 -0
  82. package/dist/node/include/crypto/crypto_keys.h +392 -0
  83. package/dist/node/include/crypto/crypto_pbkdf2.h +74 -0
  84. package/dist/node/include/crypto/crypto_random.h +124 -0
  85. package/dist/node/include/crypto/crypto_rsa.h +136 -0
  86. package/dist/node/include/crypto/crypto_scrypt.h +85 -0
  87. package/dist/node/include/crypto/crypto_sig.h +165 -0
  88. package/dist/node/include/crypto/crypto_spkac.h +21 -0
  89. package/dist/node/include/crypto/crypto_timing.h +20 -0
  90. package/dist/node/include/crypto/crypto_tls.h +305 -0
  91. package/dist/node/include/crypto/crypto_util.h +725 -0
  92. package/dist/node/include/crypto/crypto_x509.h +140 -0
  93. package/dist/node/include/dataqueue/queue.h +306 -0
  94. package/dist/node/include/debug_utils-inl.h +278 -0
  95. package/dist/node/include/debug_utils.h +196 -0
  96. package/dist/node/include/diagnosticfilename-inl.h +33 -0
  97. package/dist/node/include/embedded_data.h +17 -0
  98. package/dist/node/include/encoding_binding.h +61 -0
  99. package/dist/node/include/env-inl.h +984 -0
  100. package/dist/node/include/env.h +1287 -0
  101. package/dist/node/include/env_properties.h +540 -0
  102. package/dist/node/include/handle_wrap.h +123 -0
  103. package/dist/node/include/histogram-inl.h +107 -0
  104. package/dist/node/include/histogram.h +279 -0
  105. package/dist/node/include/inspector/io_agent.h +30 -0
  106. package/dist/node/include/inspector/main_thread_interface.h +116 -0
  107. package/dist/node/include/inspector/network_agent.h +94 -0
  108. package/dist/node/include/inspector/network_inspector.h +45 -0
  109. package/dist/node/include/inspector/network_requests_buffer.h +195 -0
  110. package/dist/node/include/inspector/network_resource_manager.h +29 -0
  111. package/dist/node/include/inspector/node_json.h +24 -0
  112. package/dist/node/include/inspector/node_string.h +101 -0
  113. package/dist/node/include/inspector/protocol_helper.h +27 -0
  114. package/dist/node/include/inspector/runtime_agent.h +41 -0
  115. package/dist/node/include/inspector/target_agent.h +75 -0
  116. package/dist/node/include/inspector/tracing_agent.h +43 -0
  117. package/dist/node/include/inspector/worker_agent.h +40 -0
  118. package/dist/node/include/inspector/worker_inspector.h +124 -0
  119. package/dist/node/include/inspector_agent.h +165 -0
  120. package/dist/node/include/inspector_io.h +78 -0
  121. package/dist/node/include/inspector_profiler.h +149 -0
  122. package/dist/node/include/inspector_socket.h +60 -0
  123. package/dist/node/include/inspector_socket_server.h +110 -0
  124. package/dist/node/include/js_native_api.h +607 -0
  125. package/dist/node/include/js_native_api_types.h +226 -0
  126. package/dist/node/include/js_native_api_v8.h +485 -0
  127. package/dist/node/include/js_native_api_v8_internals.h +45 -0
  128. package/dist/node/include/js_stream.h +52 -0
  129. package/dist/node/include/json_utils.h +172 -0
  130. package/dist/node/include/large_pages/node_large_page.h +34 -0
  131. package/dist/node/include/libplatform/libplatform-export.h +29 -0
  132. package/dist/node/include/libplatform/libplatform.h +112 -0
  133. package/dist/node/include/libplatform/v8-tracing.h +333 -0
  134. package/dist/node/include/memory_tracker-inl.h +359 -0
  135. package/dist/node/include/memory_tracker.h +289 -0
  136. package/dist/node/include/module_wrap.h +216 -0
  137. package/dist/node/include/node.h +1593 -0
  138. package/dist/node/include/node_api.h +265 -0
  139. package/dist/node/include/node_api_internals.h +48 -0
  140. package/dist/node/include/node_api_types.h +56 -0
  141. package/dist/node/include/node_binding.h +161 -0
  142. package/dist/node/include/node_blob.h +159 -0
  143. package/dist/node/include/node_bob-inl.h +36 -0
  144. package/dist/node/include/node_bob.h +107 -0
  145. package/dist/node/include/node_buffer.h +92 -0
  146. package/dist/node/include/node_builtins.h +220 -0
  147. package/dist/node/include/node_config_file.h +46 -0
  148. package/dist/node/include/node_constants.h +82 -0
  149. package/dist/node/include/node_context_data.h +168 -0
  150. package/dist/node/include/node_contextify.h +204 -0
  151. package/dist/node/include/node_crypto.h +56 -0
  152. package/dist/node/include/node_debug.h +30 -0
  153. package/dist/node/include/node_dir.h +52 -0
  154. package/dist/node/include/node_dotenv.h +45 -0
  155. package/dist/node/include/node_errors.h +380 -0
  156. package/dist/node/include/node_exit_code.h +54 -0
  157. package/dist/node/include/node_external_reference.h +165 -0
  158. package/dist/node/include/node_file-inl.h +406 -0
  159. package/dist/node/include/node_file.h +537 -0
  160. package/dist/node/include/node_http2.h +1177 -0
  161. package/dist/node/include/node_http2_state.h +159 -0
  162. package/dist/node/include/node_http_common-inl.h +202 -0
  163. package/dist/node/include/node_http_common.h +535 -0
  164. package/dist/node/include/node_i18n.h +132 -0
  165. package/dist/node/include/node_internals.h +483 -0
  166. package/dist/node/include/node_main_instance.h +67 -0
  167. package/dist/node/include/node_mem-inl.h +113 -0
  168. package/dist/node/include/node_mem.h +45 -0
  169. package/dist/node/include/node_messaging.h +389 -0
  170. package/dist/node/include/node_metadata.h +164 -0
  171. package/dist/node/include/node_modules.h +91 -0
  172. package/dist/node/include/node_mutex.h +323 -0
  173. package/dist/node/include/node_object_wrap.h +132 -0
  174. package/dist/node/include/node_options-inl.h +490 -0
  175. package/dist/node/include/node_options.h +615 -0
  176. package/dist/node/include/node_perf.h +166 -0
  177. package/dist/node/include/node_perf_common.h +102 -0
  178. package/dist/node/include/node_platform.h +238 -0
  179. package/dist/node/include/node_process-inl.h +26 -0
  180. package/dist/node/include/node_process.h +112 -0
  181. package/dist/node/include/node_realm-inl.h +151 -0
  182. package/dist/node/include/node_realm.h +183 -0
  183. package/dist/node/include/node_report.h +43 -0
  184. package/dist/node/include/node_revert.h +82 -0
  185. package/dist/node/include/node_root_certs.h +3520 -0
  186. package/dist/node/include/node_sea.h +74 -0
  187. package/dist/node/include/node_shadow_realm.h +46 -0
  188. package/dist/node/include/node_snapshot_builder.h +57 -0
  189. package/dist/node/include/node_snapshotable.h +174 -0
  190. package/dist/node/include/node_sockaddr-inl.h +257 -0
  191. package/dist/node/include/node_sockaddr.h +394 -0
  192. package/dist/node/include/node_sqlite.h +270 -0
  193. package/dist/node/include/node_stat_watcher.h +73 -0
  194. package/dist/node/include/node_task_runner.h +92 -0
  195. package/dist/node/include/node_threadsafe_cow-inl.h +54 -0
  196. package/dist/node/include/node_threadsafe_cow.h +105 -0
  197. package/dist/node/include/node_union_bytes.h +81 -0
  198. package/dist/node/include/node_url.h +96 -0
  199. package/dist/node/include/node_v8.h +77 -0
  200. package/dist/node/include/node_v8_platform-inl.h +185 -0
  201. package/dist/node/include/node_version.h +110 -0
  202. package/dist/node/include/node_wasi.h +184 -0
  203. package/dist/node/include/node_wasm_web_api.h +55 -0
  204. package/dist/node/include/node_watchdog.h +154 -0
  205. package/dist/node/include/node_webstorage.h +60 -0
  206. package/dist/node/include/node_worker.h +158 -0
  207. package/dist/node/include/path.h +33 -0
  208. package/dist/node/include/permission/addon_permission.h +31 -0
  209. package/dist/node/include/permission/child_process_permission.h +31 -0
  210. package/dist/node/include/permission/fs_permission.h +167 -0
  211. package/dist/node/include/permission/inspector_permission.h +31 -0
  212. package/dist/node/include/permission/permission.h +138 -0
  213. package/dist/node/include/permission/permission_base.h +65 -0
  214. package/dist/node/include/permission/wasi_permission.h +31 -0
  215. package/dist/node/include/permission/worker_permission.h +31 -0
  216. package/dist/node/include/pipe_wrap.h +80 -0
  217. package/dist/node/include/quic/application.h +159 -0
  218. package/dist/node/include/quic/bindingdata.h +272 -0
  219. package/dist/node/include/quic/cid.h +127 -0
  220. package/dist/node/include/quic/data.h +148 -0
  221. package/dist/node/include/quic/defs.h +245 -0
  222. package/dist/node/include/quic/endpoint.h +458 -0
  223. package/dist/node/include/quic/http3.h +15 -0
  224. package/dist/node/include/quic/logstream.h +81 -0
  225. package/dist/node/include/quic/packet.h +152 -0
  226. package/dist/node/include/quic/preferredaddress.h +72 -0
  227. package/dist/node/include/quic/session.h +443 -0
  228. package/dist/node/include/quic/sessionticket.h +108 -0
  229. package/dist/node/include/quic/streams.h +232 -0
  230. package/dist/node/include/quic/tlscontext.h +227 -0
  231. package/dist/node/include/quic/tokens.h +256 -0
  232. package/dist/node/include/quic/transportparams.h +165 -0
  233. package/dist/node/include/req_wrap-inl.h +171 -0
  234. package/dist/node/include/req_wrap.h +77 -0
  235. package/dist/node/include/spawn_sync.h +243 -0
  236. package/dist/node/include/stream_base-inl.h +173 -0
  237. package/dist/node/include/stream_base.h +478 -0
  238. package/dist/node/include/stream_pipe.h +76 -0
  239. package/dist/node/include/stream_wrap.h +132 -0
  240. package/dist/node/include/string_bytes.h +113 -0
  241. package/dist/node/include/string_decoder-inl.h +31 -0
  242. package/dist/node/include/string_decoder.h +49 -0
  243. package/dist/node/include/tcp_wrap.h +105 -0
  244. package/dist/node/include/threadpoolwork-inl.h +70 -0
  245. package/dist/node/include/timer_wrap-inl.h +32 -0
  246. package/dist/node/include/timer_wrap.h +85 -0
  247. package/dist/node/include/timers.h +70 -0
  248. package/dist/node/include/tracing/agent.h +195 -0
  249. package/dist/node/include/tracing/node_trace_buffer.h +83 -0
  250. package/dist/node/include/tracing/node_trace_writer.h +75 -0
  251. package/dist/node/include/tracing/trace_event.h +722 -0
  252. package/dist/node/include/tracing/trace_event_common.h +1109 -0
  253. package/dist/node/include/tracing/traced_value.h +129 -0
  254. package/dist/node/include/tty_wrap.h +65 -0
  255. package/dist/node/include/udp_wrap.h +230 -0
  256. package/dist/node/include/undici_version.h +6 -0
  257. package/dist/node/include/util-inl.h +700 -0
  258. package/dist/node/include/util.h +1021 -0
  259. package/dist/node/include/uv/aix.h +32 -0
  260. package/dist/node/include/uv/bsd.h +34 -0
  261. package/dist/node/include/uv/darwin.h +61 -0
  262. package/dist/node/include/uv/errno.h +483 -0
  263. package/dist/node/include/uv/linux.h +34 -0
  264. package/dist/node/include/uv/os390.h +33 -0
  265. package/dist/node/include/uv/posix.h +31 -0
  266. package/dist/node/include/uv/sunos.h +44 -0
  267. package/dist/node/include/uv/threadpool.h +37 -0
  268. package/dist/node/include/uv/tree.h +521 -0
  269. package/dist/node/include/uv/unix.h +512 -0
  270. package/dist/node/include/uv/version.h +43 -0
  271. package/dist/node/include/uv/win.h +698 -0
  272. package/dist/node/include/uv.h +1990 -0
  273. package/dist/node/include/v8-array-buffer.h +525 -0
  274. package/dist/node/include/v8-callbacks.h +462 -0
  275. package/dist/node/include/v8-container.h +183 -0
  276. package/dist/node/include/v8-context.h +485 -0
  277. package/dist/node/include/v8-cppgc.h +245 -0
  278. package/dist/node/include/v8-data.h +80 -0
  279. package/dist/node/include/v8-date.h +48 -0
  280. package/dist/node/include/v8-debug.h +168 -0
  281. package/dist/node/include/v8-embedder-heap.h +82 -0
  282. package/dist/node/include/v8-embedder-state-scope.h +52 -0
  283. package/dist/node/include/v8-exception.h +223 -0
  284. package/dist/node/include/v8-extension.h +62 -0
  285. package/dist/node/include/v8-external.h +37 -0
  286. package/dist/node/include/v8-fast-api-calls.h +984 -0
  287. package/dist/node/include/v8-forward.h +82 -0
  288. package/dist/node/include/v8-function-callback.h +607 -0
  289. package/dist/node/include/v8-function.h +140 -0
  290. package/dist/node/include/v8-handle-base.h +137 -0
  291. package/dist/node/include/v8-initialization.h +289 -0
  292. package/dist/node/include/v8-inspector-protocol.h +13 -0
  293. package/dist/node/include/v8-inspector.h +419 -0
  294. package/dist/node/include/v8-internal.h +1397 -0
  295. package/dist/node/include/v8-isolate.h +1767 -0
  296. package/dist/node/include/v8-json.h +47 -0
  297. package/dist/node/include/v8-local-handle.h +758 -0
  298. package/dist/node/include/v8-locker.h +138 -0
  299. package/dist/node/include/v8-maybe.h +160 -0
  300. package/dist/node/include/v8-memory-span.h +198 -0
  301. package/dist/node/include/v8-message.h +233 -0
  302. package/dist/node/include/v8-metrics.h +264 -0
  303. package/dist/node/include/v8-microtask-queue.h +157 -0
  304. package/dist/node/include/v8-microtask.h +28 -0
  305. package/dist/node/include/v8-object.h +824 -0
  306. package/dist/node/include/v8-persistent-handle.h +582 -0
  307. package/dist/node/include/v8-platform.h +1358 -0
  308. package/dist/node/include/v8-primitive-object.h +118 -0
  309. package/dist/node/include/v8-primitive.h +877 -0
  310. package/dist/node/include/v8-profiler.h +1302 -0
  311. package/dist/node/include/v8-promise.h +174 -0
  312. package/dist/node/include/v8-proxy.h +50 -0
  313. package/dist/node/include/v8-regexp.h +106 -0
  314. package/dist/node/include/v8-script.h +904 -0
  315. package/dist/node/include/v8-snapshot.h +266 -0
  316. package/dist/node/include/v8-source-location.h +92 -0
  317. package/dist/node/include/v8-statistics.h +238 -0
  318. package/dist/node/include/v8-template.h +1297 -0
  319. package/dist/node/include/v8-traced-handle.h +432 -0
  320. package/dist/node/include/v8-typed-array.h +390 -0
  321. package/dist/node/include/v8-unwinder-state.h +31 -0
  322. package/dist/node/include/v8-unwinder.h +132 -0
  323. package/dist/node/include/v8-util.h +665 -0
  324. package/dist/node/include/v8-value-serializer-version.h +24 -0
  325. package/dist/node/include/v8-value-serializer.h +316 -0
  326. package/dist/node/include/v8-value.h +655 -0
  327. package/dist/node/include/v8-version-string.h +38 -0
  328. package/dist/node/include/v8-version.h +20 -0
  329. package/dist/node/include/v8-wasm-trap-handler-posix.h +31 -0
  330. package/dist/node/include/v8-wasm-trap-handler-win.h +28 -0
  331. package/dist/node/include/v8-wasm.h +201 -0
  332. package/dist/node/include/v8-weak-callback-info.h +80 -0
  333. package/dist/node/include/v8.h +88 -0
  334. package/dist/node/include/v8config.h +981 -0
  335. package/dist/node/include/zlib_version.h +6 -0
  336. package/dist/node/libnode.dll +0 -0
  337. package/dist/node/libnode.lib +0 -0
  338. package/dist/node/libnodebuildinfo.json +10 -0
  339. package/dist/node/link_node.lib +0 -0
  340. package/dist/node/link_node.node +0 -0
  341. package/index.js +5 -0
  342. package/libnode.release.json +8 -0
  343. package/package.json +29 -1
@@ -0,0 +1,136 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_RSA_H_
2
+ #define SRC_CRYPTO_CRYPTO_RSA_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "crypto/crypto_cipher.h"
7
+ #include "crypto/crypto_keygen.h"
8
+ #include "crypto/crypto_keys.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
+ enum RSAKeyVariant {
17
+ kKeyVariantRSA_SSA_PKCS1_v1_5,
18
+ kKeyVariantRSA_PSS,
19
+ kKeyVariantRSA_OAEP
20
+ };
21
+
22
+ struct RsaKeyPairParams final : public MemoryRetainer {
23
+ RSAKeyVariant variant;
24
+ unsigned int modulus_bits;
25
+ unsigned int exponent;
26
+
27
+ // The following options are used for RSA-PSS. If any of them are set, a
28
+ // RSASSA-PSS-params sequence will be added to the key.
29
+ const EVP_MD* md = nullptr;
30
+ const EVP_MD* mgf1_md = nullptr;
31
+ int saltlen = -1;
32
+
33
+ SET_NO_MEMORY_INFO()
34
+ SET_MEMORY_INFO_NAME(RsaKeyPairParams)
35
+ SET_SELF_SIZE(RsaKeyPairParams)
36
+ };
37
+
38
+ using RsaKeyPairGenConfig = KeyPairGenConfig<RsaKeyPairParams>;
39
+
40
+ struct RsaKeyGenTraits final {
41
+ using AdditionalParameters = RsaKeyPairGenConfig;
42
+ static constexpr const char* JobName = "RsaKeyPairGenJob";
43
+
44
+ static ncrypto::EVPKeyCtxPointer Setup(RsaKeyPairGenConfig* params);
45
+
46
+ static v8::Maybe<void> AdditionalConfig(
47
+ CryptoJobMode mode,
48
+ const v8::FunctionCallbackInfo<v8::Value>& args,
49
+ unsigned int* offset,
50
+ RsaKeyPairGenConfig* params);
51
+ };
52
+
53
+ using RSAKeyPairGenJob = KeyGenJob<KeyPairGenTraits<RsaKeyGenTraits>>;
54
+
55
+ struct RSAKeyExportConfig final : public MemoryRetainer {
56
+ RSAKeyVariant variant = kKeyVariantRSA_SSA_PKCS1_v1_5;
57
+ SET_NO_MEMORY_INFO()
58
+ SET_MEMORY_INFO_NAME(RSAKeyExportConfig)
59
+ SET_SELF_SIZE(RSAKeyExportConfig)
60
+ };
61
+
62
+ struct RSAKeyExportTraits final {
63
+ static constexpr const char* JobName = "RSAKeyExportJob";
64
+ using AdditionalParameters = RSAKeyExportConfig;
65
+
66
+ static v8::Maybe<void> AdditionalConfig(
67
+ const v8::FunctionCallbackInfo<v8::Value>& args,
68
+ unsigned int offset,
69
+ RSAKeyExportConfig* config);
70
+
71
+ static WebCryptoKeyExportStatus DoExport(const KeyObjectData& key_data,
72
+ WebCryptoKeyFormat format,
73
+ const RSAKeyExportConfig& params,
74
+ ByteSource* out);
75
+ };
76
+
77
+ using RSAKeyExportJob = KeyExportJob<RSAKeyExportTraits>;
78
+
79
+ struct RSACipherConfig final : public MemoryRetainer {
80
+ CryptoJobMode mode = kCryptoJobAsync;
81
+ ByteSource label;
82
+ int padding = 0;
83
+ const EVP_MD* digest = nullptr;
84
+
85
+ RSACipherConfig() = default;
86
+
87
+ RSACipherConfig(RSACipherConfig&& other) noexcept;
88
+
89
+ void MemoryInfo(MemoryTracker* tracker) const override;
90
+ SET_MEMORY_INFO_NAME(RSACipherConfig)
91
+ SET_SELF_SIZE(RSACipherConfig)
92
+ };
93
+
94
+ struct RSACipherTraits final {
95
+ static constexpr const char* JobName = "RSACipherJob";
96
+ using AdditionalParameters = RSACipherConfig;
97
+
98
+ static v8::Maybe<void> AdditionalConfig(
99
+ CryptoJobMode mode,
100
+ const v8::FunctionCallbackInfo<v8::Value>& args,
101
+ unsigned int offset,
102
+ WebCryptoCipherMode cipher_mode,
103
+ RSACipherConfig* config);
104
+
105
+ static WebCryptoCipherStatus DoCipher(Environment* env,
106
+ const KeyObjectData& key_data,
107
+ WebCryptoCipherMode cipher_mode,
108
+ const RSACipherConfig& params,
109
+ const ByteSource& in,
110
+ ByteSource* out);
111
+ };
112
+
113
+ using RSACipherJob = CipherJob<RSACipherTraits>;
114
+
115
+ v8::Maybe<void> ExportJWKRsaKey(Environment* env,
116
+ const KeyObjectData& key,
117
+ v8::Local<v8::Object> target);
118
+
119
+ KeyObjectData ImportJWKRsaKey(Environment* env,
120
+ v8::Local<v8::Object> jwk,
121
+ const v8::FunctionCallbackInfo<v8::Value>& args,
122
+ unsigned int offset);
123
+
124
+ v8::Maybe<void> GetRsaKeyDetail(Environment* env,
125
+ const KeyObjectData& key,
126
+ v8::Local<v8::Object> target);
127
+
128
+ namespace RSAAlg {
129
+ void Initialize(Environment* env, v8::Local<v8::Object> target);
130
+ void RegisterExternalReferences(ExternalReferenceRegistry* registry);
131
+ } // namespace RSAAlg
132
+ } // namespace crypto
133
+ } // namespace node
134
+
135
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
136
+ #endif // SRC_CRYPTO_CRYPTO_RSA_H_
@@ -0,0 +1,85 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_SCRYPT_H_
2
+ #define SRC_CRYPTO_CRYPTO_SCRYPT_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "crypto/crypto_util.h"
7
+ #include "env.h"
8
+ #include "memory_tracker.h"
9
+ #include "v8.h"
10
+
11
+ namespace node {
12
+ namespace crypto {
13
+ #ifndef OPENSSL_NO_SCRYPT
14
+
15
+ // Scrypt is a password-based key derivation algorithm
16
+ // defined in https://tools.ietf.org/html/rfc7914
17
+
18
+ // It takes as input a password, a salt value, and a
19
+ // handful of additional parameters that control the
20
+ // cost of the operation. In this case, the higher
21
+ // the cost, the better the result. The length parameter
22
+ // defines the number of bytes that are generated.
23
+
24
+ // The salt must be as random as possible and should be
25
+ // at least 16 bytes in length.
26
+
27
+ struct ScryptConfig final : public MemoryRetainer {
28
+ CryptoJobMode mode;
29
+ ByteSource pass;
30
+ ByteSource salt;
31
+ uint32_t N;
32
+ uint32_t r;
33
+ uint32_t p;
34
+ uint64_t maxmem;
35
+ int32_t length;
36
+
37
+ ScryptConfig() = default;
38
+
39
+ explicit ScryptConfig(ScryptConfig&& other) noexcept;
40
+
41
+ ScryptConfig& operator=(ScryptConfig&& other) noexcept;
42
+
43
+ void MemoryInfo(MemoryTracker* tracker) const override;
44
+ SET_MEMORY_INFO_NAME(ScryptConfig)
45
+ SET_SELF_SIZE(ScryptConfig)
46
+ };
47
+
48
+ struct ScryptTraits final {
49
+ using AdditionalParameters = ScryptConfig;
50
+ static constexpr const char* JobName = "ScryptJob";
51
+ static constexpr AsyncWrap::ProviderType Provider =
52
+ AsyncWrap::PROVIDER_SCRYPTREQUEST;
53
+
54
+ static v8::Maybe<void> AdditionalConfig(
55
+ CryptoJobMode mode,
56
+ const v8::FunctionCallbackInfo<v8::Value>& args,
57
+ unsigned int offset,
58
+ ScryptConfig* params);
59
+
60
+ static bool DeriveBits(Environment* env,
61
+ const ScryptConfig& params,
62
+ ByteSource* out,
63
+ CryptoJobMode mode);
64
+
65
+ static v8::MaybeLocal<v8::Value> EncodeOutput(Environment* env,
66
+ const ScryptConfig& params,
67
+ ByteSource* out);
68
+ };
69
+
70
+ using ScryptJob = DeriveBitsJob<ScryptTraits>;
71
+
72
+ #else
73
+ // If there is no Scrypt support, ScryptJob becomes a non-op
74
+ struct ScryptJob {
75
+ static void Initialize(
76
+ Environment* env,
77
+ v8::Local<v8::Object> target) {}
78
+ };
79
+ #endif // !OPENSSL_NO_SCRYPT
80
+
81
+ } // namespace crypto
82
+ } // namespace node
83
+
84
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
85
+ #endif // SRC_CRYPTO_CRYPTO_SCRYPT_H_
@@ -0,0 +1,165 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_SIG_H_
2
+ #define SRC_CRYPTO_CRYPTO_SIG_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
+
12
+ namespace node {
13
+ namespace crypto {
14
+ static const unsigned int kNoDsaSignature = static_cast<unsigned int>(-1);
15
+
16
+ enum DSASigEnc {
17
+ kSigEncDER,
18
+ kSigEncP1363
19
+ };
20
+
21
+ class SignBase : public BaseObject {
22
+ public:
23
+ enum Error {
24
+ kSignOk,
25
+ kSignUnknownDigest,
26
+ kSignInit,
27
+ kSignNotInitialised,
28
+ kSignUpdate,
29
+ kSignPrivateKey,
30
+ kSignPublicKey,
31
+ kSignMalformedSignature
32
+ };
33
+
34
+ SignBase(Environment* env, v8::Local<v8::Object> wrap);
35
+
36
+ Error Init(const char* sign_type);
37
+ Error Update(const char* data, size_t len);
38
+
39
+ // TODO(joyeecheung): track the memory used by OpenSSL types
40
+ void MemoryInfo(MemoryTracker* tracker) const override;
41
+ SET_MEMORY_INFO_NAME(SignBase)
42
+ SET_SELF_SIZE(SignBase)
43
+
44
+ protected:
45
+ ncrypto::EVPMDCtxPointer mdctx_;
46
+ };
47
+
48
+ class Sign : public SignBase {
49
+ public:
50
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
51
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
52
+
53
+ struct SignResult {
54
+ Error error;
55
+ std::unique_ptr<v8::BackingStore> signature;
56
+
57
+ explicit SignResult(
58
+ Error err,
59
+ std::unique_ptr<v8::BackingStore>&& sig = nullptr)
60
+ : error(err), signature(std::move(sig)) {}
61
+ };
62
+
63
+ SignResult SignFinal(const ncrypto::EVPKeyPointer& pkey,
64
+ int padding,
65
+ const v8::Maybe<int>& saltlen,
66
+ DSASigEnc dsa_sig_enc);
67
+
68
+ static void SignSync(const v8::FunctionCallbackInfo<v8::Value>& args);
69
+
70
+ protected:
71
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
72
+ static void SignInit(const v8::FunctionCallbackInfo<v8::Value>& args);
73
+ static void SignUpdate(const v8::FunctionCallbackInfo<v8::Value>& args);
74
+ static void SignFinal(const v8::FunctionCallbackInfo<v8::Value>& args);
75
+
76
+ Sign(Environment* env, v8::Local<v8::Object> wrap);
77
+ };
78
+
79
+ class Verify : public SignBase {
80
+ public:
81
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
82
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
83
+
84
+ Error VerifyFinal(const ncrypto::EVPKeyPointer& key,
85
+ const ByteSource& sig,
86
+ int padding,
87
+ const v8::Maybe<int>& saltlen,
88
+ bool* verify_result);
89
+
90
+ static void VerifySync(const v8::FunctionCallbackInfo<v8::Value>& args);
91
+
92
+ protected:
93
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
94
+ static void VerifyInit(const v8::FunctionCallbackInfo<v8::Value>& args);
95
+ static void VerifyUpdate(const v8::FunctionCallbackInfo<v8::Value>& args);
96
+ static void VerifyFinal(const v8::FunctionCallbackInfo<v8::Value>& args);
97
+
98
+ Verify(Environment* env, v8::Local<v8::Object> wrap);
99
+ };
100
+
101
+ struct SignConfiguration final : public MemoryRetainer {
102
+ enum Mode {
103
+ kSign,
104
+ kVerify
105
+ };
106
+ enum Flags {
107
+ kHasNone = 0,
108
+ kHasSaltLength = 1,
109
+ kHasPadding = 2
110
+ };
111
+
112
+ CryptoJobMode job_mode;
113
+ Mode mode;
114
+ KeyObjectData key;
115
+ ByteSource data;
116
+ ByteSource signature;
117
+ const EVP_MD* digest = nullptr;
118
+ int flags = SignConfiguration::kHasNone;
119
+ int padding = 0;
120
+ int salt_length = 0;
121
+ DSASigEnc dsa_encoding = kSigEncDER;
122
+
123
+ SignConfiguration() = default;
124
+
125
+ explicit SignConfiguration(SignConfiguration&& other) noexcept;
126
+
127
+ SignConfiguration& operator=(SignConfiguration&& other) noexcept;
128
+
129
+ void MemoryInfo(MemoryTracker* tracker) const override;
130
+ SET_MEMORY_INFO_NAME(SignConfiguration)
131
+ SET_SELF_SIZE(SignConfiguration)
132
+ };
133
+
134
+ struct SignTraits final {
135
+ using AdditionalParameters = SignConfiguration;
136
+ static constexpr const char* JobName = "SignJob";
137
+
138
+ // TODO(@jasnell): Sign request vs. Verify request
139
+
140
+ static constexpr AsyncWrap::ProviderType Provider =
141
+ AsyncWrap::PROVIDER_SIGNREQUEST;
142
+
143
+ static v8::Maybe<void> AdditionalConfig(
144
+ CryptoJobMode mode,
145
+ const v8::FunctionCallbackInfo<v8::Value>& args,
146
+ unsigned int offset,
147
+ SignConfiguration* params);
148
+
149
+ static bool DeriveBits(Environment* env,
150
+ const SignConfiguration& params,
151
+ ByteSource* out,
152
+ CryptoJobMode mode);
153
+
154
+ static v8::MaybeLocal<v8::Value> EncodeOutput(Environment* env,
155
+ const SignConfiguration& params,
156
+ ByteSource* out);
157
+ };
158
+
159
+ using SignJob = DeriveBitsJob<SignTraits>;
160
+
161
+ } // namespace crypto
162
+ } // namespace node
163
+
164
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
165
+ #endif // SRC_CRYPTO_CRYPTO_SIG_H_
@@ -0,0 +1,21 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_SPKAC_H_
2
+ #define SRC_CRYPTO_CRYPTO_SPKAC_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "env.h"
7
+ #include "v8.h"
8
+
9
+ #include <openssl/evp.h>
10
+
11
+ namespace node {
12
+ namespace crypto {
13
+ namespace SPKAC {
14
+ void Initialize(Environment* env, v8::Local<v8::Object>);
15
+ void RegisterExternalReferences(ExternalReferenceRegistry* registry);
16
+ } // namespace SPKAC
17
+ } // namespace crypto
18
+ } // namespace node
19
+
20
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
21
+ #endif // SRC_CRYPTO_CRYPTO_SPKAC_H_
@@ -0,0 +1,20 @@
1
+ #ifndef SRC_CRYPTO_CRYPTO_TIMING_H_
2
+ #define SRC_CRYPTO_CRYPTO_TIMING_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "env.h"
7
+ #include "v8.h"
8
+
9
+ namespace node {
10
+ namespace crypto {
11
+ namespace Timing {
12
+ void Initialize(Environment* env, v8::Local<v8::Object> target);
13
+ void RegisterExternalReferences(ExternalReferenceRegistry* registry);
14
+ } // namespace Timing
15
+ } // namespace crypto
16
+ } // namespace node
17
+
18
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
19
+
20
+ #endif // SRC_CRYPTO_CRYPTO_TIMING_H_