visaljs 0.0.2 → 0.0.4

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 (1243) hide show
  1. package/README.md +3 -1
  2. package/cli.js +545 -86
  3. package/node/include/js_node.h +30 -5
  4. package/node/include/js_uv.h +36 -0
  5. package/node/prelude/async_hooks.js +0 -0
  6. package/node/prelude/buffer.js +0 -0
  7. package/node/prelude/crypto.js +7 -10
  8. package/node/prelude/dns.js +99 -0
  9. package/node/prelude/dns_promises.js +10 -0
  10. package/node/prelude/events.js +0 -0
  11. package/node/prelude/fs.js +0 -0
  12. package/node/prelude/http.js +1039 -195
  13. package/node/prelude/http2.js +0 -0
  14. package/node/prelude/internal/crypto/asym.js +39 -12
  15. package/node/prelude/internal/crypto/cipher.js +0 -0
  16. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  17. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  18. package/node/prelude/internal/crypto/hash.js +1 -1
  19. package/node/prelude/internal/crypto/kdf.js +0 -0
  20. package/node/prelude/internal/crypto/key_type.js +3 -0
  21. package/node/prelude/internal/crypto/keys.js +39 -9
  22. package/node/prelude/internal/crypto/random.js +0 -0
  23. package/node/prelude/internal/crypto/util.js +0 -0
  24. package/node/prelude/internal/errors.js +0 -0
  25. package/node/prelude/internal/http_agent.js +249 -0
  26. package/node/prelude/internal/net.js +33 -0
  27. package/node/prelude/internal/querystring.js +0 -0
  28. package/node/prelude/internal/socketaddress.js +249 -0
  29. package/node/prelude/internal/tls/common.js +306 -0
  30. package/node/prelude/internal/tls/wrap.js +1220 -0
  31. package/node/prelude/internal/tls/x509.js +394 -0
  32. package/node/prelude/module.js +0 -0
  33. package/node/prelude/net.js +1082 -50
  34. package/node/prelude/os.js +2 -2
  35. package/node/prelude/path.js +0 -0
  36. package/node/prelude/process.js +0 -0
  37. package/node/prelude/querystring.js +0 -0
  38. package/node/prelude/stream.js +6 -0
  39. package/node/prelude/stream_promises.js +0 -0
  40. package/node/prelude/stream_web.js +0 -0
  41. package/node/prelude/string_decoder.js +0 -0
  42. package/node/prelude/tls.js +141 -0
  43. package/node/prelude/tty.js +0 -0
  44. package/node/prelude/url.js +0 -0
  45. package/node/prelude/util.js +5 -2
  46. package/node/prelude/util_types.js +85 -0
  47. package/node/prelude/zlib.js +0 -0
  48. package/node/src/host_fs.c +10 -2
  49. package/node/src/host_http.c +268 -270
  50. package/node/src/host_loop.c +84 -0
  51. package/node/src/host_net.c +495 -0
  52. package/node/src/host_os.c +0 -0
  53. package/node/src/host_sys.c +54 -26
  54. package/node/third_party/libuv/LICENSE +0 -0
  55. package/node/third_party/libuv/include/uv/aix.h +0 -0
  56. package/node/third_party/libuv/include/uv/bsd.h +0 -0
  57. package/node/third_party/libuv/include/uv/darwin.h +0 -0
  58. package/node/third_party/libuv/include/uv/errno.h +0 -0
  59. package/node/third_party/libuv/include/uv/linux.h +0 -0
  60. package/node/third_party/libuv/include/uv/os390.h +0 -0
  61. package/node/third_party/libuv/include/uv/posix.h +0 -0
  62. package/node/third_party/libuv/include/uv/sunos.h +0 -0
  63. package/node/third_party/libuv/include/uv/threadpool.h +0 -0
  64. package/node/third_party/libuv/include/uv/tree.h +0 -0
  65. package/node/third_party/libuv/include/uv/unix.h +0 -0
  66. package/node/third_party/libuv/include/uv/version.h +0 -0
  67. package/node/third_party/libuv/include/uv/win.h +0 -0
  68. package/node/third_party/libuv/include/uv.h +0 -0
  69. package/node/third_party/libuv/src/fs-poll.c +0 -0
  70. package/node/third_party/libuv/src/heap-inl.h +0 -0
  71. package/node/third_party/libuv/src/idna.c +0 -0
  72. package/node/third_party/libuv/src/idna.h +0 -0
  73. package/node/third_party/libuv/src/inet.c +0 -0
  74. package/node/third_party/libuv/src/queue.h +0 -0
  75. package/node/third_party/libuv/src/random.c +0 -0
  76. package/node/third_party/libuv/src/strscpy.c +0 -0
  77. package/node/third_party/libuv/src/strscpy.h +0 -0
  78. package/node/third_party/libuv/src/strtok.c +0 -0
  79. package/node/third_party/libuv/src/strtok.h +0 -0
  80. package/node/third_party/libuv/src/thread-common.c +0 -0
  81. package/node/third_party/libuv/src/threadpool.c +0 -0
  82. package/node/third_party/libuv/src/timer.c +0 -0
  83. package/node/third_party/libuv/src/unix/async.c +0 -0
  84. package/node/third_party/libuv/src/unix/bsd-ifaddrs.c +0 -0
  85. package/node/third_party/libuv/src/unix/core.c +0 -0
  86. package/node/third_party/libuv/src/unix/darwin-proctitle.c +0 -0
  87. package/node/third_party/libuv/src/unix/darwin-stub.h +0 -0
  88. package/node/third_party/libuv/src/unix/darwin-syscalls.h +0 -0
  89. package/node/third_party/libuv/src/unix/darwin.c +0 -0
  90. package/node/third_party/libuv/src/unix/dl.c +0 -0
  91. package/node/third_party/libuv/src/unix/fs.c +0 -0
  92. package/node/third_party/libuv/src/unix/fsevents.c +0 -0
  93. package/node/third_party/libuv/src/unix/getaddrinfo.c +0 -0
  94. package/node/third_party/libuv/src/unix/getnameinfo.c +0 -0
  95. package/node/third_party/libuv/src/unix/internal.h +0 -0
  96. package/node/third_party/libuv/src/unix/kqueue.c +0 -0
  97. package/node/third_party/libuv/src/unix/linux.c +0 -0
  98. package/node/third_party/libuv/src/unix/loop-watcher.c +0 -0
  99. package/node/third_party/libuv/src/unix/loop.c +0 -0
  100. package/node/third_party/libuv/src/unix/pipe.c +0 -0
  101. package/node/third_party/libuv/src/unix/poll.c +0 -0
  102. package/node/third_party/libuv/src/unix/process.c +0 -0
  103. package/node/third_party/libuv/src/unix/procfs-exepath.c +0 -0
  104. package/node/third_party/libuv/src/unix/proctitle.c +0 -0
  105. package/node/third_party/libuv/src/unix/random-devurandom.c +0 -0
  106. package/node/third_party/libuv/src/unix/random-getentropy.c +0 -0
  107. package/node/third_party/libuv/src/unix/random-getrandom.c +0 -0
  108. package/node/third_party/libuv/src/unix/random-sysctl-linux.c +0 -0
  109. package/node/third_party/libuv/src/unix/signal.c +0 -0
  110. package/node/third_party/libuv/src/unix/stream.c +0 -0
  111. package/node/third_party/libuv/src/unix/tcp.c +0 -0
  112. package/node/third_party/libuv/src/unix/thread.c +0 -0
  113. package/node/third_party/libuv/src/unix/tty.c +0 -0
  114. package/node/third_party/libuv/src/unix/udp.c +0 -0
  115. package/node/third_party/libuv/src/uv-common.c +0 -0
  116. package/node/third_party/libuv/src/uv-common.h +0 -0
  117. package/node/third_party/libuv/src/uv-data-getter-setters.c +0 -0
  118. package/node/third_party/libuv/src/version.c +0 -0
  119. package/node/third_party/libuv/src/win/async.c +98 -0
  120. package/node/third_party/libuv/src/win/atomicops-inl.h +61 -0
  121. package/node/third_party/libuv/src/win/core.c +683 -0
  122. package/node/third_party/libuv/src/win/detect-wakeup.c +56 -0
  123. package/node/third_party/libuv/src/win/dl.c +135 -0
  124. package/node/third_party/libuv/src/win/error.c +183 -0
  125. package/node/third_party/libuv/src/win/fs-event.c +620 -0
  126. package/node/third_party/libuv/src/win/fs-fd-hash-inl.h +200 -0
  127. package/node/third_party/libuv/src/win/fs.c +3774 -0
  128. package/node/third_party/libuv/src/win/getaddrinfo.c +388 -0
  129. package/node/third_party/libuv/src/win/getnameinfo.c +146 -0
  130. package/node/third_party/libuv/src/win/handle-inl.h +180 -0
  131. package/node/third_party/libuv/src/win/handle.c +162 -0
  132. package/node/third_party/libuv/src/win/internal.h +335 -0
  133. package/node/third_party/libuv/src/win/loop-watcher.c +122 -0
  134. package/node/third_party/libuv/src/win/pipe.c +2725 -0
  135. package/node/third_party/libuv/src/win/poll.c +586 -0
  136. package/node/third_party/libuv/src/win/process-stdio.c +419 -0
  137. package/node/third_party/libuv/src/win/process.c +1407 -0
  138. package/node/third_party/libuv/src/win/req-inl.h +214 -0
  139. package/node/third_party/libuv/src/win/signal.c +282 -0
  140. package/node/third_party/libuv/src/win/snprintf.c +42 -0
  141. package/node/third_party/libuv/src/win/stream-inl.h +54 -0
  142. package/node/third_party/libuv/src/win/stream.c +252 -0
  143. package/node/third_party/libuv/src/win/tcp.c +1674 -0
  144. package/node/third_party/libuv/src/win/thread.c +568 -0
  145. package/node/third_party/libuv/src/win/tty.c +2460 -0
  146. package/node/third_party/libuv/src/win/udp.c +1162 -0
  147. package/node/third_party/libuv/src/win/util.c +1750 -0
  148. package/node/third_party/libuv/src/win/winapi.c +144 -0
  149. package/node/third_party/libuv/src/win/winapi.h +4831 -0
  150. package/node/third_party/libuv/src/win/winsock.c +575 -0
  151. package/node/third_party/libuv/src/win/winsock.h +160 -0
  152. package/node/third_party/llhttp/LICENSE +0 -0
  153. package/node/third_party/llhttp/api.c +0 -0
  154. package/node/third_party/llhttp/http.c +0 -0
  155. package/node/third_party/llhttp/llhttp.c +0 -0
  156. package/node/third_party/llhttp/llhttp.h +0 -0
  157. package/package.json +1 -1
  158. package/runtime/include/js_atoms.gen.h +0 -0
  159. package/runtime/include/js_atoms.h +0 -0
  160. package/runtime/include/js_bigint.h +0 -0
  161. package/runtime/include/js_buffer.h +0 -0
  162. package/runtime/include/js_builtins.h +16 -0
  163. package/runtime/include/js_console.h +2 -0
  164. package/runtime/include/js_convert.h +0 -0
  165. package/runtime/include/js_core.def +23 -0
  166. package/runtime/include/js_crypto.h +23 -0
  167. package/runtime/include/js_error.h +0 -0
  168. package/runtime/include/js_exception.h +0 -0
  169. package/runtime/include/js_function.h +0 -0
  170. package/runtime/include/js_gc.h +0 -0
  171. package/runtime/include/js_generator.h +2 -3
  172. package/runtime/include/js_host.h +0 -0
  173. package/runtime/include/js_jobs.h +0 -0
  174. package/runtime/include/js_module.h +0 -0
  175. package/runtime/include/js_object.h +0 -0
  176. package/runtime/include/js_ops.h +0 -0
  177. package/runtime/include/js_promise.h +0 -2
  178. package/runtime/include/js_regexp.h +0 -0
  179. package/runtime/include/js_runtime.h +0 -0
  180. package/runtime/include/js_symbol.h +0 -0
  181. package/runtime/include/js_web.h +0 -0
  182. package/runtime/include/jscell.h +0 -0
  183. package/runtime/include/jscontext.h +0 -0
  184. package/runtime/include/jsnum.h +0 -0
  185. package/runtime/include/jsstring.h +0 -0
  186. package/runtime/include/jsvalue.h +0 -0
  187. package/runtime/src/arguments.c +0 -0
  188. package/runtime/src/array.c +0 -0
  189. package/runtime/src/arraybuffer.c +0 -0
  190. package/runtime/src/async_iter.c +4 -1
  191. package/runtime/src/atoms.c +0 -0
  192. package/runtime/src/base64.c +0 -0
  193. package/runtime/src/bigint.c +0 -0
  194. package/runtime/src/blob.c +0 -0
  195. package/runtime/src/boringssl_support.cc +37 -0
  196. package/runtime/src/buffer.c +0 -0
  197. package/runtime/src/builtin_table.c +8 -0
  198. package/runtime/src/builtins.c +0 -0
  199. package/runtime/src/builtins_util.h +0 -0
  200. package/runtime/src/collections.c +0 -0
  201. package/runtime/src/components.c +10 -0
  202. package/runtime/src/console.c +6 -18
  203. package/runtime/src/convert.c +0 -0
  204. package/runtime/src/core_all.c +1 -0
  205. package/runtime/src/crypto.c +0 -0
  206. package/runtime/src/crypto_asym.c +450 -241
  207. package/runtime/src/crypto_bn.c +91 -0
  208. package/runtime/src/crypto_cipher.c +153 -75
  209. package/runtime/src/crypto_hash.c +68 -53
  210. package/runtime/src/crypto_host.c +0 -0
  211. package/runtime/src/crypto_internal.h +55 -26
  212. package/runtime/src/crypto_kdf.c +0 -0
  213. package/runtime/src/crypto_key.c +0 -0
  214. package/runtime/src/crypto_pkey.c +198 -61
  215. package/runtime/src/crypto_subtle.c +42 -16
  216. package/runtime/src/crypto_tls.c +678 -0
  217. package/runtime/src/date.c +0 -0
  218. package/runtime/src/domexception.c +0 -0
  219. package/runtime/src/elements.c +0 -0
  220. package/runtime/src/elements.h +0 -0
  221. package/runtime/src/encoding.c +0 -0
  222. package/runtime/src/error.c +0 -0
  223. package/runtime/src/events.c +0 -0
  224. package/runtime/src/exception.c +0 -0
  225. package/runtime/src/fetch.c +0 -0
  226. package/runtime/src/function.c +0 -0
  227. package/runtime/src/gc.c +0 -0
  228. package/runtime/src/generator.c +8 -1
  229. package/runtime/src/global.c +2 -4
  230. package/runtime/src/headers.c +0 -0
  231. package/runtime/src/inspect.c +0 -0
  232. package/runtime/src/internal.h +0 -1
  233. package/runtime/src/iterate.c +0 -0
  234. package/runtime/src/iterator.c +0 -0
  235. package/runtime/src/jobs.c +2 -1
  236. package/runtime/src/jsnum.c +0 -0
  237. package/runtime/src/json.c +0 -0
  238. package/runtime/src/math.c +0 -0
  239. package/runtime/src/module.c +0 -0
  240. package/runtime/src/number.c +0 -0
  241. package/runtime/src/object.c +0 -0
  242. package/runtime/src/ops.c +0 -0
  243. package/runtime/src/os.c +0 -0
  244. package/runtime/src/os.h +0 -0
  245. package/runtime/src/process.c +7 -0
  246. package/runtime/src/promise.c +4 -1
  247. package/runtime/src/proxy.c +0 -0
  248. package/runtime/src/reflect.c +0 -0
  249. package/runtime/src/regexp.c +0 -0
  250. package/runtime/src/regexp_anchor.h +0 -0
  251. package/runtime/src/regexp_message.h +0 -0
  252. package/runtime/src/shape.c +0 -0
  253. package/runtime/src/shape.h +0 -0
  254. package/runtime/src/streams.c +0 -0
  255. package/runtime/src/streams.h +0 -0
  256. package/runtime/src/string.c +0 -0
  257. package/runtime/src/string_builtins.c +0 -0
  258. package/runtime/src/symbol.c +0 -0
  259. package/runtime/src/test_host.c +0 -0
  260. package/runtime/src/tls_roots.gen.h +3215 -0
  261. package/runtime/src/typedarray.c +0 -0
  262. package/runtime/src/tznames.gen.h +0 -0
  263. package/runtime/src/uri.c +0 -0
  264. package/runtime/src/url.c +0 -0
  265. package/runtime/src/util_types.c +52 -0
  266. package/runtime/src/weak.c +2 -1
  267. package/runtime/src/web.c +0 -0
  268. package/runtime/src/wrapper.c +0 -0
  269. package/runtime/src/writable.c +0 -0
  270. package/runtime/third_party/ada-idna/LICENSE-MIT +0 -0
  271. package/runtime/third_party/ada-idna/README.md +0 -0
  272. package/runtime/third_party/ada-idna/convert.mjs +0 -0
  273. package/runtime/third_party/ada-idna/idna.c +0 -0
  274. package/runtime/third_party/ada-idna/idna.h +0 -0
  275. package/runtime/third_party/ada-idna/idna_tables.h +0 -0
  276. package/runtime/third_party/boringssl/LICENSE +238 -0
  277. package/runtime/third_party/boringssl/README.md +46 -0
  278. package/runtime/third_party/boringssl/VERSION +1 -0
  279. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  280. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  281. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  282. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  283. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  284. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  285. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  286. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  287. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  288. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  289. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  290. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  291. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  292. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  293. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  294. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  295. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  296. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  297. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  298. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  299. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  300. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  301. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  302. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  303. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  304. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  305. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  306. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  307. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  308. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  309. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  310. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  311. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  312. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  313. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  314. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  315. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  316. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  317. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  318. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  319. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  320. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  321. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  322. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  323. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  324. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  325. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  326. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  327. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  328. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  329. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  330. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  331. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  332. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  333. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  334. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  335. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  336. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  337. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  338. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  339. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  340. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  341. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  342. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  343. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  344. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  345. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  346. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  347. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  348. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  349. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  350. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  351. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  352. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  353. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  354. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  355. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  356. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  357. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  358. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  359. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  360. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  361. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  362. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  363. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  364. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  365. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  366. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  367. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  368. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  369. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  370. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  371. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  372. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  373. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  374. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  375. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  376. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  377. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  378. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  379. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  380. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  381. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  382. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  383. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  384. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  385. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  386. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  387. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  388. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  389. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  390. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  391. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  392. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  393. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  394. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  395. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  396. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  397. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  398. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  399. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  400. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  401. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  402. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  403. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  404. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  405. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  406. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  407. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  408. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  409. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  410. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  411. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  412. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  413. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  414. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  415. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  416. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  417. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  418. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  419. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  420. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  421. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  422. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  423. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  424. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  425. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  426. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  427. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  428. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  429. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  430. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  431. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  432. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  433. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  434. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  435. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  436. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  437. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  438. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  439. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  440. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  441. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  442. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  443. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  444. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  445. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  446. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  447. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  448. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  449. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  450. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  451. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  452. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  453. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  454. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  455. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  456. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  457. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  458. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  459. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  460. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  461. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  462. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  463. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  464. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  465. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  466. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  467. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  468. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  469. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  470. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  471. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  472. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  473. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  474. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  475. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  476. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  477. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  478. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  479. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  480. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  481. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  482. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  483. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  484. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  485. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  486. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  487. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  488. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  489. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  490. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  491. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  492. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  493. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  494. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  495. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  496. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  497. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  498. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  499. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  500. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  501. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  502. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  503. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  504. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  505. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  506. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  507. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  508. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  509. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  510. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  511. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  512. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  513. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  514. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  515. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  516. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  517. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  518. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  519. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  520. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  521. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  522. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  523. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  524. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  525. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  526. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  527. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  528. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  529. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  530. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  531. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  532. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  533. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  534. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  535. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  536. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  537. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  538. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  539. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  540. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  541. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  542. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  543. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  544. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  545. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  546. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  547. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  548. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  549. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  550. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  551. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  552. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  553. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  554. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  555. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  556. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  557. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  558. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  559. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  560. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  561. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  562. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  563. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  564. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  565. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  566. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  567. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  568. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  569. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  570. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  571. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  572. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  573. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  574. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  575. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  576. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  577. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  578. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  579. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  580. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  581. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  582. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  583. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  584. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  585. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  586. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  587. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  588. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  589. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  590. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  591. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  592. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  593. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  594. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  595. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  596. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  597. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  598. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  599. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  600. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  601. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  602. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  603. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  604. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  605. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  606. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  607. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  608. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  609. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  610. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  611. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  612. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  613. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  614. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  615. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  616. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  617. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  618. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  619. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  620. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  621. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  622. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  623. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  624. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  625. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  626. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  627. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  628. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  629. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  630. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  631. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  632. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  633. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  634. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  635. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  636. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  637. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  638. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  639. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  640. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  641. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  642. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  643. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  644. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  645. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  646. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  647. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  648. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  649. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  650. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  651. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  652. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  653. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  654. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  655. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  656. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  657. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  658. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  659. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  660. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  661. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  662. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  663. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  664. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  665. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  666. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  667. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  668. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  669. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  670. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  671. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  672. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  673. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  674. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  675. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  676. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  677. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  678. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  679. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  680. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  681. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  682. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  683. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  684. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  685. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  686. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  687. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  688. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  689. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  690. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  691. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  692. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  693. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  694. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  695. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  696. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  697. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  698. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  699. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  700. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  701. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  702. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  703. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  704. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  705. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  706. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  707. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  708. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  709. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  710. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  711. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  712. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  713. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  714. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  715. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  716. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  717. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  718. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  719. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  720. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  721. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  722. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  723. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  724. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  725. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  726. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  727. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  728. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  729. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  730. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  731. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  732. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  733. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  734. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  735. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  736. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  737. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  738. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  739. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  740. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  741. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  742. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  743. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  744. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  745. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  746. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  747. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  748. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  749. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  750. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  751. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  752. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  753. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  754. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  755. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  756. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  757. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  758. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  759. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  760. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  761. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  762. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  763. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  764. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  765. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  766. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  767. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  768. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  769. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  770. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  771. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  772. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  773. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  774. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  775. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  776. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  777. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  778. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  779. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  780. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  781. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  782. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  783. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  784. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  785. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  786. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  787. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  788. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  789. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  790. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  791. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  792. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  793. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  794. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  795. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  796. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  797. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  798. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  799. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  800. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  801. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  802. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  803. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  804. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  805. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  806. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  807. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  808. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  809. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  810. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  811. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  812. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  813. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  814. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  815. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  816. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  817. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  818. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  819. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  820. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  821. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  822. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  823. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  824. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  825. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  826. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  827. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  828. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  829. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  830. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  831. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  832. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  833. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  834. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  835. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  836. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  837. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  838. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  839. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  840. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  841. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  842. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  843. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  844. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  845. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  846. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  847. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  848. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  849. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  850. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  851. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  852. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  853. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  854. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  855. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  856. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  857. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  858. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  859. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  860. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  861. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  862. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  863. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  864. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  865. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  866. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  867. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  868. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  869. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  870. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  871. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  872. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  873. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  874. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  875. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  876. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  877. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  878. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  879. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  880. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  881. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  882. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  883. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  884. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  885. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  886. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  887. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  888. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  889. package/runtime/third_party/boringssl/sources.json +696 -0
  890. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  891. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  892. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  893. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  894. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  895. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  896. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  897. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  898. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  899. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  900. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  901. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  902. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  903. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  904. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  905. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  906. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  907. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  908. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  909. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  910. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  911. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  912. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  913. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  914. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  915. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  916. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  917. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  918. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  919. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  920. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  921. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  922. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  923. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  924. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  925. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  926. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  927. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  928. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  929. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  930. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  931. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  932. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  933. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  934. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  935. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  936. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  937. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  938. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  939. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  940. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  941. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  942. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  943. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  944. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  945. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  946. package/runtime/third_party/quickjs-dtoa/LICENSE +0 -0
  947. package/runtime/third_party/quickjs-dtoa/README.md +0 -0
  948. package/runtime/third_party/quickjs-dtoa/dtoa.c +0 -0
  949. package/runtime/third_party/quickjs-dtoa/dtoa.h +0 -0
  950. package/runtime/third_party/quickjs-dtoa/dtoa_compat.h +0 -0
  951. package/runtime/third_party/quickjs-regexp/LICENSE +0 -0
  952. package/runtime/third_party/quickjs-regexp/README.md +0 -0
  953. package/runtime/third_party/quickjs-regexp/cutils.c +0 -0
  954. package/runtime/third_party/quickjs-regexp/cutils.h +0 -0
  955. package/runtime/third_party/quickjs-regexp/libregexp-opcode.h +0 -0
  956. package/runtime/third_party/quickjs-regexp/libregexp.c +0 -0
  957. package/runtime/third_party/quickjs-regexp/libregexp.h +0 -0
  958. package/runtime/third_party/quickjs-regexp/libunicode-table.h +0 -0
  959. package/runtime/third_party/quickjs-regexp/libunicode.c +0 -0
  960. package/runtime/third_party/quickjs-regexp/libunicode.h +0 -0
  961. package/runtime/third_party/v8-ieee754/LICENSE +0 -0
  962. package/runtime/third_party/v8-ieee754/README.md +2 -1
  963. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  964. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  965. package/runtime/third_party/v8-ieee754/ieee754.h +0 -0
  966. package/runtime/tools/regexp_compile.c +0 -0
  967. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  968. package/runtime/third_party/bearssl/README.txt +0 -136
  969. package/runtime/third_party/bearssl/VERSION +0 -1
  970. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  971. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  972. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  973. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  974. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  975. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  976. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  977. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  978. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  979. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  980. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  981. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  982. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  983. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  984. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  985. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  986. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  987. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  988. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  989. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  990. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  991. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  992. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  993. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  994. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  995. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  996. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  997. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  998. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  999. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  1000. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  1001. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  1002. package/runtime/third_party/bearssl/src/config.h +0 -247
  1003. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  1004. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  1005. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  1006. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  1007. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  1008. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  1009. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  1010. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  1011. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  1012. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  1013. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  1014. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  1015. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  1016. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  1017. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  1018. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  1019. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  1020. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  1021. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  1022. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  1023. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  1024. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  1025. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  1026. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  1027. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  1028. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  1029. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  1030. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  1031. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  1032. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  1033. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  1034. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  1035. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  1036. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  1037. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  1038. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  1039. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  1040. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  1041. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  1042. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  1043. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  1044. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  1045. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  1046. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  1047. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  1048. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  1049. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  1050. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  1051. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  1052. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  1053. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  1054. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  1055. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  1056. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  1057. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  1058. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  1059. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  1060. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  1061. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  1062. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  1063. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  1064. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  1065. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  1066. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  1067. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  1068. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  1069. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  1070. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  1071. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  1072. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  1073. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  1074. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  1075. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  1076. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  1077. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  1078. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  1079. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  1080. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  1081. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  1082. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  1083. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  1084. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  1085. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  1086. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  1087. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  1088. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  1089. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  1090. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  1091. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  1092. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  1093. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  1094. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  1095. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  1096. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  1097. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  1098. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  1099. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  1100. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  1101. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  1102. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  1103. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  1104. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  1105. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  1106. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  1107. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  1108. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  1109. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  1110. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  1111. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  1112. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  1113. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  1114. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  1115. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  1116. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  1117. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  1118. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  1119. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  1120. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  1121. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  1122. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  1123. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  1124. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  1125. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  1126. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  1127. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  1128. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  1129. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  1130. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  1131. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  1132. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  1133. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  1134. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  1135. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  1136. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  1137. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  1138. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  1139. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  1140. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  1141. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  1142. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  1143. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  1144. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  1145. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  1146. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  1147. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  1148. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  1149. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  1150. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  1151. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  1152. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  1153. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  1154. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  1155. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  1156. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  1157. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  1158. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  1159. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  1160. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  1161. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  1162. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  1163. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  1164. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  1165. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  1166. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  1167. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  1168. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  1169. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  1170. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  1171. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  1172. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  1173. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  1174. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  1175. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  1176. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  1177. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  1178. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  1179. package/runtime/third_party/bearssl/src/settings.c +0 -306
  1180. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  1181. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  1182. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  1183. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  1184. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  1185. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  1186. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  1187. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  1188. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  1189. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  1190. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  1191. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  1192. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  1193. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  1194. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  1195. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  1196. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  1197. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  1198. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  1199. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  1200. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  1201. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  1202. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  1203. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  1204. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  1205. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  1206. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  1207. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  1208. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  1209. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  1210. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  1211. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  1212. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  1213. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  1214. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  1215. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  1216. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  1217. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  1218. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  1219. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  1220. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  1221. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  1222. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  1223. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  1224. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  1225. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  1226. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  1227. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  1228. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  1229. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  1230. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  1231. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  1232. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  1233. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  1234. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  1235. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1236. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1237. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1238. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1239. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1240. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1241. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1242. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1243. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,1407 @@
1
+ /* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ * of this software and associated documentation files (the "Software"), to
5
+ * deal in the Software without restriction, including without limitation the
6
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
+ * sell copies of the Software, and to permit persons to whom the Software is
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
+ * IN THE SOFTWARE.
20
+ */
21
+
22
+ #include <assert.h>
23
+ #include <io.h>
24
+ #include <stdio.h>
25
+ #include <stdlib.h>
26
+ #include <signal.h>
27
+ #include <limits.h>
28
+ #include <wchar.h>
29
+
30
+ #include "uv.h"
31
+ #include "internal.h"
32
+ #include "handle-inl.h"
33
+ #include "req-inl.h"
34
+ #include <dbghelp.h>
35
+ #include <shlobj.h>
36
+ #include <psapi.h> /* GetModuleBaseNameW */
37
+
38
+
39
+ #define SIGKILL 9
40
+
41
+
42
+ typedef struct env_var {
43
+ const WCHAR* const wide;
44
+ const WCHAR* const wide_eq;
45
+ const size_t len; /* including null or '=' */
46
+ } env_var_t;
47
+
48
+ #define E_V(str) { L##str, L##str L"=", sizeof(str) }
49
+
50
+ static const env_var_t required_vars[] = { /* keep me sorted */
51
+ E_V("HOMEDRIVE"),
52
+ E_V("HOMEPATH"),
53
+ E_V("LOGONSERVER"),
54
+ E_V("PATH"),
55
+ E_V("SYSTEMDRIVE"),
56
+ E_V("SYSTEMROOT"),
57
+ E_V("TEMP"),
58
+ E_V("USERDOMAIN"),
59
+ E_V("USERNAME"),
60
+ E_V("USERPROFILE"),
61
+ E_V("WINDIR"),
62
+ };
63
+
64
+
65
+ static HANDLE uv_global_job_handle_;
66
+ static uv_once_t uv_global_job_handle_init_guard_ = UV_ONCE_INIT;
67
+
68
+
69
+ static void uv__init_global_job_handle(void) {
70
+ /* Create a job object and set it up to kill all contained processes when
71
+ * it's closed. Since this handle is made non-inheritable and we're not
72
+ * giving it to anyone, we're the only process holding a reference to it.
73
+ * That means that if this process exits it is closed and all the processes
74
+ * it contains are killed. All processes created with uv_spawn that are not
75
+ * spawned with the UV_PROCESS_DETACHED flag are assigned to this job.
76
+ *
77
+ * We're setting the JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK flag so only the
78
+ * processes that we explicitly add are affected, and *their* subprocesses
79
+ * are not. This ensures that our child processes are not limited in their
80
+ * ability to use job control on Windows versions that don't deal with
81
+ * nested jobs (prior to Windows 8 / Server 2012). It also lets our child
82
+ * processes created detached processes without explicitly breaking away
83
+ * from job control (which uv_spawn doesn't, either).
84
+ */
85
+ SECURITY_ATTRIBUTES attr;
86
+ JOBOBJECT_EXTENDED_LIMIT_INFORMATION info;
87
+
88
+ memset(&attr, 0, sizeof attr);
89
+ attr.bInheritHandle = FALSE;
90
+
91
+ memset(&info, 0, sizeof info);
92
+ info.BasicLimitInformation.LimitFlags =
93
+ JOB_OBJECT_LIMIT_BREAKAWAY_OK |
94
+ JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK |
95
+ JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION |
96
+ JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
97
+
98
+ uv_global_job_handle_ = CreateJobObjectW(&attr, NULL);
99
+ if (uv_global_job_handle_ == NULL)
100
+ uv_fatal_error(GetLastError(), "CreateJobObjectW");
101
+
102
+ if (!SetInformationJobObject(uv_global_job_handle_,
103
+ JobObjectExtendedLimitInformation,
104
+ &info,
105
+ sizeof info))
106
+ uv_fatal_error(GetLastError(), "SetInformationJobObject");
107
+
108
+
109
+ if (!AssignProcessToJobObject(uv_global_job_handle_, GetCurrentProcess())) {
110
+ /* Make sure this handle is functional. The Windows kernel has a bug that
111
+ * if the first use of AssignProcessToJobObject is for a Windows Store
112
+ * program, subsequent attempts to use the handle with fail with
113
+ * INVALID_PARAMETER (87). This is possibly because all uses of the handle
114
+ * must be for the same Terminal Services session. We can ensure it is tied
115
+ * to our current session now by adding ourself to it. We could remove
116
+ * ourself afterwards, but there doesn't seem to be a reason to.
117
+ */
118
+ DWORD err = GetLastError();
119
+ if (err != ERROR_ACCESS_DENIED)
120
+ uv_fatal_error(err, "AssignProcessToJobObject");
121
+ }
122
+ }
123
+
124
+
125
+ static int uv__utf8_to_utf16_alloc(const char* s, WCHAR** ws_ptr) {
126
+ return uv__convert_utf8_to_utf16(s, ws_ptr);
127
+ }
128
+
129
+
130
+ static void uv__process_init(uv_loop_t* loop, uv_process_t* handle) {
131
+ uv__handle_init(loop, (uv_handle_t*) handle, UV_PROCESS);
132
+ handle->exit_cb = NULL;
133
+ handle->pid = 0;
134
+ handle->exit_signal = 0;
135
+ handle->wait_handle = INVALID_HANDLE_VALUE;
136
+ handle->process_handle = INVALID_HANDLE_VALUE;
137
+ handle->exit_cb_pending = 0;
138
+
139
+ UV_REQ_INIT(&handle->exit_req, UV_PROCESS_EXIT);
140
+ handle->exit_req.data = handle;
141
+ }
142
+
143
+
144
+ /*
145
+ * Path search functions
146
+ */
147
+
148
+ /*
149
+ * Helper function for search_path
150
+ */
151
+ static WCHAR* search_path_join_test(const WCHAR* dir,
152
+ size_t dir_len,
153
+ const WCHAR* name,
154
+ size_t name_len,
155
+ const WCHAR* ext,
156
+ size_t ext_len,
157
+ const WCHAR* cwd,
158
+ size_t cwd_len) {
159
+ WCHAR *result, *result_pos;
160
+ DWORD attrs;
161
+ if (dir_len > 2 &&
162
+ ((dir[0] == L'\\' || dir[0] == L'/') &&
163
+ (dir[1] == L'\\' || dir[1] == L'/'))) {
164
+ /* It's a UNC path so ignore cwd */
165
+ cwd_len = 0;
166
+ } else if (dir_len >= 1 && (dir[0] == L'/' || dir[0] == L'\\')) {
167
+ /* It's a full path without drive letter, use cwd's drive letter only */
168
+ cwd_len = 2;
169
+ } else if (dir_len >= 2 && dir[1] == L':' &&
170
+ (dir_len < 3 || (dir[2] != L'/' && dir[2] != L'\\'))) {
171
+ /* It's a relative path with drive letter (ext.g. D:../some/file)
172
+ * Replace drive letter in dir by full cwd if it points to the same drive,
173
+ * otherwise use the dir only.
174
+ */
175
+ if (cwd_len < 2 || _wcsnicmp(cwd, dir, 2) != 0) {
176
+ cwd_len = 0;
177
+ } else {
178
+ dir += 2;
179
+ dir_len -= 2;
180
+ }
181
+ } else if (dir_len > 2 && dir[1] == L':') {
182
+ /* It's an absolute path with drive letter
183
+ * Don't use the cwd at all
184
+ */
185
+ cwd_len = 0;
186
+ }
187
+
188
+ /* Allocate buffer for output */
189
+ result = result_pos = (WCHAR*)uv__malloc(sizeof(WCHAR) *
190
+ (cwd_len + 1 + dir_len + 1 + name_len + 1 + ext_len + 1));
191
+
192
+ /* Copy cwd */
193
+ wcsncpy(result_pos, cwd, cwd_len);
194
+ result_pos += cwd_len;
195
+
196
+ /* Add a path separator if cwd didn't end with one */
197
+ if (cwd_len && wcsrchr(L"\\/:", result_pos[-1]) == NULL) {
198
+ result_pos[0] = L'\\';
199
+ result_pos++;
200
+ }
201
+
202
+ /* Copy dir */
203
+ wcsncpy(result_pos, dir, dir_len);
204
+ result_pos += dir_len;
205
+
206
+ /* Add a separator if the dir didn't end with one */
207
+ if (dir_len && wcsrchr(L"\\/:", result_pos[-1]) == NULL) {
208
+ result_pos[0] = L'\\';
209
+ result_pos++;
210
+ }
211
+
212
+ /* Copy filename */
213
+ wcsncpy(result_pos, name, name_len);
214
+ result_pos += name_len;
215
+
216
+ if (ext_len) {
217
+ /* Add a dot if the filename didn't end with one */
218
+ if (name_len && result_pos[-1] != '.') {
219
+ result_pos[0] = L'.';
220
+ result_pos++;
221
+ }
222
+
223
+ /* Copy extension */
224
+ wcsncpy(result_pos, ext, ext_len);
225
+ result_pos += ext_len;
226
+ }
227
+
228
+ /* Null terminator */
229
+ result_pos[0] = L'\0';
230
+
231
+ attrs = GetFileAttributesW(result);
232
+
233
+ if (attrs != INVALID_FILE_ATTRIBUTES &&
234
+ !(attrs & FILE_ATTRIBUTE_DIRECTORY)) {
235
+ return result;
236
+ }
237
+
238
+ uv__free(result);
239
+ return NULL;
240
+ }
241
+
242
+
243
+ /*
244
+ * Helper function for search_path
245
+ */
246
+ static WCHAR* path_search_walk_ext(const WCHAR *dir,
247
+ size_t dir_len,
248
+ const WCHAR *name,
249
+ size_t name_len,
250
+ WCHAR *cwd,
251
+ size_t cwd_len,
252
+ int name_has_ext) {
253
+ WCHAR* result;
254
+
255
+ /* If the name itself has a nonempty extension, try this extension first */
256
+ if (name_has_ext) {
257
+ result = search_path_join_test(dir, dir_len,
258
+ name, name_len,
259
+ L"", 0,
260
+ cwd, cwd_len);
261
+ if (result != NULL) {
262
+ return result;
263
+ }
264
+ }
265
+
266
+ /* Try .com extension */
267
+ result = search_path_join_test(dir, dir_len,
268
+ name, name_len,
269
+ L"com", 3,
270
+ cwd, cwd_len);
271
+ if (result != NULL) {
272
+ return result;
273
+ }
274
+
275
+ /* Try .exe extension */
276
+ result = search_path_join_test(dir, dir_len,
277
+ name, name_len,
278
+ L"exe", 3,
279
+ cwd, cwd_len);
280
+ if (result != NULL) {
281
+ return result;
282
+ }
283
+
284
+ return NULL;
285
+ }
286
+
287
+
288
+ /*
289
+ * search_path searches the system path for an executable filename -
290
+ * the windows API doesn't provide this as a standalone function nor as an
291
+ * option to CreateProcess.
292
+ *
293
+ * It tries to return an absolute filename.
294
+ *
295
+ * Furthermore, it tries to follow the semantics that cmd.exe, with this
296
+ * exception that PATHEXT environment variable isn't used. Since CreateProcess
297
+ * can start only .com and .exe files, only those extensions are tried. This
298
+ * behavior equals that of msvcrt's spawn functions.
299
+ *
300
+ * - Do not search the path if the filename already contains a path (either
301
+ * relative or absolute).
302
+ *
303
+ * - If there's really only a filename, check the current directory for file,
304
+ * then search all path directories.
305
+ *
306
+ * - If filename specified has *any* extension, or already contains a path
307
+ * and the UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME flag is specified,
308
+ * search for the file with the exact specified filename first.
309
+ *
310
+ * - If the literal filename is not found in a directory, try *appending*
311
+ * (not replacing) .com first and then .exe.
312
+ *
313
+ * - The path variable may contain relative paths; relative paths are relative
314
+ * to the cwd.
315
+ *
316
+ * - Directories in path may or may not end with a trailing backslash.
317
+ *
318
+ * - CMD does not trim leading/trailing whitespace from path/pathex entries
319
+ * nor from the environment variables as a whole.
320
+ *
321
+ * - When cmd.exe cannot read a directory, it will just skip it and go on
322
+ * searching. However, unlike posix-y systems, it will happily try to run a
323
+ * file that is not readable/executable; if the spawn fails it will not
324
+ * continue searching.
325
+ *
326
+ * UNC path support: we are dealing with UNC paths in both the path and the
327
+ * filename. This is a deviation from what cmd.exe does (it does not let you
328
+ * start a program by specifying an UNC path on the command line) but this is
329
+ * really a pointless restriction.
330
+ *
331
+ */
332
+ static WCHAR* search_path(const WCHAR *file,
333
+ WCHAR *cwd,
334
+ const WCHAR *path,
335
+ unsigned int flags) {
336
+ int file_has_dir;
337
+ WCHAR* result = NULL;
338
+ WCHAR *file_name_start;
339
+ WCHAR *dot;
340
+ const WCHAR *dir_start, *dir_end, *dir_path;
341
+ size_t dir_len;
342
+ int name_has_ext;
343
+
344
+ size_t file_len = wcslen(file);
345
+ size_t cwd_len = wcslen(cwd);
346
+
347
+ /* If the caller supplies an empty filename,
348
+ * we're not gonna return c:\windows\.exe -- GFY!
349
+ */
350
+ if (file_len == 0
351
+ || (file_len == 1 && file[0] == L'.')) {
352
+ return NULL;
353
+ }
354
+
355
+ /* Find the start of the filename so we can split the directory from the
356
+ * name. */
357
+ for (file_name_start = (WCHAR*)file + file_len;
358
+ file_name_start > file
359
+ && file_name_start[-1] != L'\\'
360
+ && file_name_start[-1] != L'/'
361
+ && file_name_start[-1] != L':';
362
+ file_name_start--);
363
+
364
+ file_has_dir = file_name_start != file;
365
+
366
+ /* Check if the filename includes an extension */
367
+ dot = wcschr(file_name_start, L'.');
368
+ name_has_ext = (dot != NULL && dot[1] != L'\0');
369
+
370
+ if (file_has_dir) {
371
+ /* The file has a path inside, don't use path */
372
+ result = path_search_walk_ext(
373
+ file, file_name_start - file,
374
+ file_name_start, file_len - (file_name_start - file),
375
+ cwd, cwd_len,
376
+ name_has_ext || (flags & UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME));
377
+
378
+ } else {
379
+ dir_end = path;
380
+
381
+ if (NeedCurrentDirectoryForExePathW(L"")) {
382
+ /* The file is really only a name; look in cwd first, then scan path */
383
+ result = path_search_walk_ext(L"", 0,
384
+ file, file_len,
385
+ cwd, cwd_len,
386
+ name_has_ext);
387
+ }
388
+
389
+ while (result == NULL) {
390
+ if (dir_end == NULL || *dir_end == L'\0') {
391
+ break;
392
+ }
393
+
394
+ /* Skip the separator that dir_end now points to */
395
+ if (dir_end != path || *path == L';') {
396
+ dir_end++;
397
+ }
398
+
399
+ /* Next slice starts just after where the previous one ended */
400
+ dir_start = dir_end;
401
+
402
+ /* If path is quoted, find quote end */
403
+ if (*dir_start == L'"' || *dir_start == L'\'') {
404
+ dir_end = wcschr(dir_start + 1, *dir_start);
405
+ if (dir_end == NULL) {
406
+ dir_end = wcschr(dir_start, L'\0');
407
+ }
408
+ }
409
+ /* Slice until the next ; or \0 is found */
410
+ dir_end = wcschr(dir_end, L';');
411
+ if (dir_end == NULL) {
412
+ dir_end = wcschr(dir_start, L'\0');
413
+ }
414
+
415
+ /* If the slice is zero-length, don't bother */
416
+ if (dir_end - dir_start == 0) {
417
+ continue;
418
+ }
419
+
420
+ dir_path = dir_start;
421
+ dir_len = dir_end - dir_start;
422
+
423
+ /* Adjust if the path is quoted. */
424
+ if (dir_path[0] == '"' || dir_path[0] == '\'') {
425
+ ++dir_path;
426
+ --dir_len;
427
+ }
428
+
429
+ if (dir_path[dir_len - 1] == '"' || dir_path[dir_len - 1] == '\'') {
430
+ --dir_len;
431
+ }
432
+
433
+ result = path_search_walk_ext(dir_path, dir_len,
434
+ file, file_len,
435
+ cwd, cwd_len,
436
+ name_has_ext);
437
+ }
438
+ }
439
+
440
+ return result;
441
+ }
442
+
443
+
444
+ /*
445
+ * Quotes command line arguments
446
+ * Returns a pointer to the end (next char to be written) of the buffer
447
+ */
448
+ WCHAR* quote_cmd_arg(const WCHAR *source, WCHAR *target) {
449
+ size_t len = wcslen(source);
450
+ size_t i;
451
+ int quote_hit;
452
+ WCHAR* start;
453
+
454
+ if (len == 0) {
455
+ /* Need double quotation for empty argument */
456
+ *(target++) = L'"';
457
+ *(target++) = L'"';
458
+ return target;
459
+ }
460
+
461
+ if (NULL == wcspbrk(source, L" \t\"")) {
462
+ /* No quotation needed */
463
+ wcsncpy(target, source, len);
464
+ target += len;
465
+ return target;
466
+ }
467
+
468
+ if (NULL == wcspbrk(source, L"\"\\")) {
469
+ /*
470
+ * No embedded double quotes or backlashes, so I can just wrap
471
+ * quote marks around the whole thing.
472
+ */
473
+ *(target++) = L'"';
474
+ wcsncpy(target, source, len);
475
+ target += len;
476
+ *(target++) = L'"';
477
+ return target;
478
+ }
479
+
480
+ /*
481
+ * Expected input/output:
482
+ * input : hello"world
483
+ * output: "hello\"world"
484
+ * input : hello""world
485
+ * output: "hello\"\"world"
486
+ * input : hello\world
487
+ * output: hello\world
488
+ * input : hello\\world
489
+ * output: hello\\world
490
+ * input : hello\"world
491
+ * output: "hello\\\"world"
492
+ * input : hello\\"world
493
+ * output: "hello\\\\\"world"
494
+ * input : hello world\
495
+ * output: "hello world\\"
496
+ */
497
+
498
+ *(target++) = L'"';
499
+ start = target;
500
+ quote_hit = 1;
501
+
502
+ for (i = len; i > 0; --i) {
503
+ *(target++) = source[i - 1];
504
+
505
+ if (quote_hit && source[i - 1] == L'\\') {
506
+ *(target++) = L'\\';
507
+ } else if(source[i - 1] == L'"') {
508
+ quote_hit = 1;
509
+ *(target++) = L'\\';
510
+ } else {
511
+ quote_hit = 0;
512
+ }
513
+ }
514
+ target[0] = L'\0';
515
+ _wcsrev(start);
516
+ *(target++) = L'"';
517
+ return target;
518
+ }
519
+
520
+
521
+ int make_program_args(char** args, int verbatim_arguments, WCHAR** dst_ptr) {
522
+ char** arg;
523
+ WCHAR* dst = NULL;
524
+ WCHAR* temp_buffer = NULL;
525
+ size_t dst_len = 0;
526
+ size_t temp_buffer_len = 0;
527
+ WCHAR* pos;
528
+ int arg_count = 0;
529
+ int err = 0;
530
+
531
+ /* Count the required size. */
532
+ for (arg = args; *arg; arg++) {
533
+ ssize_t arg_len;
534
+
535
+ arg_len = uv_wtf8_length_as_utf16(*arg);
536
+ if (arg_len < 0)
537
+ return arg_len;
538
+
539
+ dst_len += arg_len;
540
+
541
+ if ((size_t) arg_len > temp_buffer_len)
542
+ temp_buffer_len = arg_len;
543
+
544
+ arg_count++;
545
+ }
546
+
547
+ /* Adjust for potential quotes. Also assume the worst-case scenario that
548
+ * every character needs escaping, so we need twice as much space. */
549
+ dst_len = dst_len * 2 + arg_count * 2;
550
+
551
+ /* Allocate buffer for the final command line. */
552
+ dst = uv__malloc(dst_len * sizeof(WCHAR));
553
+ if (dst == NULL) {
554
+ err = UV_ENOMEM;
555
+ goto error;
556
+ }
557
+
558
+ /* Allocate temporary working buffer. */
559
+ temp_buffer = uv__malloc(temp_buffer_len * sizeof(WCHAR));
560
+ if (temp_buffer == NULL) {
561
+ err = UV_ENOMEM;
562
+ goto error;
563
+ }
564
+
565
+ pos = dst;
566
+ for (arg = args; *arg; arg++) {
567
+ ssize_t arg_len;
568
+
569
+ /* Convert argument to wide char. */
570
+ arg_len = uv_wtf8_length_as_utf16(*arg);
571
+ assert(arg_len > 0);
572
+ assert(temp_buffer_len >= (size_t) arg_len);
573
+ uv_wtf8_to_utf16(*arg, temp_buffer, arg_len);
574
+
575
+ if (verbatim_arguments) {
576
+ /* Copy verbatim. */
577
+ wcscpy(pos, temp_buffer);
578
+ pos += arg_len - 1;
579
+ } else {
580
+ /* Quote/escape, if needed. */
581
+ pos = quote_cmd_arg(temp_buffer, pos);
582
+ }
583
+
584
+ *pos++ = *(arg + 1) ? L' ' : L'\0';
585
+ assert(pos <= dst + dst_len);
586
+ }
587
+
588
+ uv__free(temp_buffer);
589
+
590
+ *dst_ptr = dst;
591
+ return 0;
592
+
593
+ error:
594
+ uv__free(dst);
595
+ uv__free(temp_buffer);
596
+ return err;
597
+ }
598
+
599
+
600
+ static int env_strncmp(const wchar_t* a, int na, const wchar_t* b) {
601
+ wchar_t* a_eq;
602
+ wchar_t* b_eq;
603
+ int nb;
604
+ int r;
605
+
606
+ if (na < 0) {
607
+ a_eq = wcschr(a, L'=');
608
+ assert(a_eq);
609
+ na = (int)(long)(a_eq - a);
610
+ } else {
611
+ na--;
612
+ }
613
+ b_eq = wcschr(b, L'=');
614
+ assert(b_eq);
615
+ nb = b_eq - b;
616
+
617
+ r = CompareStringOrdinal(a, na, b, nb, /*case insensitive*/TRUE);
618
+ return r - CSTR_EQUAL;
619
+ }
620
+
621
+
622
+ static int qsort_wcscmp(const void *a, const void *b) {
623
+ wchar_t* astr = *(wchar_t* const*)a;
624
+ wchar_t* bstr = *(wchar_t* const*)b;
625
+ return env_strncmp(astr, -1, bstr);
626
+ }
627
+
628
+
629
+ /*
630
+ * The way windows takes environment variables is different than what C does;
631
+ * Windows wants a contiguous block of null-terminated strings, terminated
632
+ * with an additional null.
633
+ *
634
+ * Windows has a few "essential" environment variables. winsock will fail
635
+ * to initialize if SYSTEMROOT is not defined; some APIs make reference to
636
+ * TEMP. SYSTEMDRIVE is probably also important. We therefore ensure that
637
+ * these get defined if the input environment block does not contain any
638
+ * values for them.
639
+ *
640
+ * Also add variables known to Cygwin to be required for correct
641
+ * subprocess operation in many cases:
642
+ * https://github.com/Alexpux/Cygwin/blob/b266b04fbbd3a595f02ea149e4306d3ab9b1fe3d/winsup/cygwin/environ.cc#L955
643
+ *
644
+ */
645
+ int make_program_env(char* env_block[], WCHAR** dst_ptr) {
646
+ WCHAR* dst;
647
+ WCHAR* ptr;
648
+ char** env;
649
+ size_t env_len = 0;
650
+ size_t len;
651
+ size_t i;
652
+ size_t var_size;
653
+ size_t env_block_count = 1; /* 1 for null-terminator */
654
+ WCHAR* dst_copy;
655
+ WCHAR** ptr_copy;
656
+ WCHAR** env_copy;
657
+ char* p;
658
+ size_t required_vars_value_len[ARRAY_SIZE(required_vars)];
659
+
660
+ /* first pass: determine size in UTF-16 */
661
+ for (env = env_block; *env; env++) {
662
+ ssize_t len;
663
+ if (strchr(*env, '=')) {
664
+ len = uv_wtf8_length_as_utf16(*env);
665
+ if (len < 0)
666
+ return len;
667
+ env_len += len;
668
+ env_block_count++;
669
+ }
670
+ }
671
+
672
+ /* second pass: copy to UTF-16 environment block */
673
+ len = env_block_count * sizeof(WCHAR*);
674
+ p = uv__malloc(len + env_len * sizeof(WCHAR));
675
+ if (p == NULL) {
676
+ return UV_ENOMEM;
677
+ }
678
+ env_copy = (void*) &p[0];
679
+ dst_copy = (void*) &p[len];
680
+
681
+ ptr = dst_copy;
682
+ ptr_copy = env_copy;
683
+ for (env = env_block; *env; env++) {
684
+ ssize_t len;
685
+ if (strchr(*env, '=')) {
686
+ len = uv_wtf8_length_as_utf16(*env);
687
+ assert(len > 0);
688
+ assert((size_t) len <= env_len - (ptr - dst_copy));
689
+ uv_wtf8_to_utf16(*env, ptr, len);
690
+ *ptr_copy++ = ptr;
691
+ ptr += len;
692
+ }
693
+ }
694
+ *ptr_copy = NULL;
695
+ assert(env_len == 0 || env_len == (size_t) (ptr - dst_copy));
696
+
697
+ /* sort our (UTF-16) copy */
698
+ qsort(env_copy, env_block_count-1, sizeof(wchar_t*), qsort_wcscmp);
699
+
700
+ /* third pass: check for required variables */
701
+ for (ptr_copy = env_copy, i = 0; i < ARRAY_SIZE(required_vars); ) {
702
+ int cmp;
703
+ if (!*ptr_copy) {
704
+ cmp = -1;
705
+ } else {
706
+ cmp = env_strncmp(required_vars[i].wide_eq,
707
+ required_vars[i].len,
708
+ *ptr_copy);
709
+ }
710
+ if (cmp < 0) {
711
+ /* missing required var */
712
+ var_size = GetEnvironmentVariableW(required_vars[i].wide, NULL, 0);
713
+ required_vars_value_len[i] = var_size;
714
+ if (var_size != 0) {
715
+ env_len += required_vars[i].len;
716
+ env_len += var_size;
717
+ }
718
+ i++;
719
+ } else {
720
+ ptr_copy++;
721
+ if (cmp == 0)
722
+ i++;
723
+ }
724
+ }
725
+
726
+ /* final pass: copy, in sort order, and inserting required variables */
727
+ dst = uv__malloc((1+env_len) * sizeof(WCHAR));
728
+ if (!dst) {
729
+ uv__free(p);
730
+ return UV_ENOMEM;
731
+ }
732
+
733
+ for (ptr = dst, ptr_copy = env_copy, i = 0;
734
+ *ptr_copy || i < ARRAY_SIZE(required_vars);
735
+ ptr += len) {
736
+ int cmp;
737
+ if (i >= ARRAY_SIZE(required_vars)) {
738
+ cmp = 1;
739
+ } else if (!*ptr_copy) {
740
+ cmp = -1;
741
+ } else {
742
+ cmp = env_strncmp(required_vars[i].wide_eq,
743
+ required_vars[i].len,
744
+ *ptr_copy);
745
+ }
746
+ if (cmp < 0) {
747
+ /* missing required var */
748
+ len = required_vars_value_len[i];
749
+ if (len) {
750
+ wcscpy(ptr, required_vars[i].wide_eq);
751
+ ptr += required_vars[i].len;
752
+ var_size = GetEnvironmentVariableW(required_vars[i].wide,
753
+ ptr,
754
+ (int) (env_len - (ptr - dst)));
755
+ if (var_size != (DWORD) (len - 1)) { /* TODO: handle race condition? */
756
+ uv_fatal_error(GetLastError(), "GetEnvironmentVariableW");
757
+ }
758
+ }
759
+ i++;
760
+ } else {
761
+ /* copy var from env_block */
762
+ len = wcslen(*ptr_copy) + 1;
763
+ wmemcpy(ptr, *ptr_copy, len);
764
+ ptr_copy++;
765
+ if (cmp == 0)
766
+ i++;
767
+ }
768
+ }
769
+
770
+ /* Terminate with an extra NULL. */
771
+ assert(env_len == (size_t) (ptr - dst));
772
+ *ptr = L'\0';
773
+
774
+ uv__free(p);
775
+ *dst_ptr = dst;
776
+ return 0;
777
+ }
778
+
779
+ /*
780
+ * Attempt to find the value of the PATH environment variable in the child's
781
+ * preprocessed environment.
782
+ *
783
+ * If found, a pointer into `env` is returned. If not found, NULL is returned.
784
+ */
785
+ static WCHAR* find_path(WCHAR *env) {
786
+ for (; env != NULL && *env != 0; env += wcslen(env) + 1) {
787
+ if ((env[0] == L'P' || env[0] == L'p') &&
788
+ (env[1] == L'A' || env[1] == L'a') &&
789
+ (env[2] == L'T' || env[2] == L't') &&
790
+ (env[3] == L'H' || env[3] == L'h') &&
791
+ (env[4] == L'=')) {
792
+ return &env[5];
793
+ }
794
+ }
795
+
796
+ return NULL;
797
+ }
798
+
799
+ /*
800
+ * Called on Windows thread-pool thread to indicate that
801
+ * a child process has exited.
802
+ */
803
+ static void CALLBACK exit_wait_callback(void* data, BOOLEAN didTimeout) {
804
+ uv_process_t* process = (uv_process_t*) data;
805
+ uv_loop_t* loop = process->loop;
806
+
807
+ assert(didTimeout == FALSE);
808
+ assert(process);
809
+ assert(!process->exit_cb_pending);
810
+
811
+ process->exit_cb_pending = 1;
812
+
813
+ /* Post completed */
814
+ POST_COMPLETION_FOR_REQ(loop, &process->exit_req);
815
+ }
816
+
817
+
818
+ /* Called on main thread after a child process has exited. */
819
+ void uv__process_proc_exit(uv_loop_t* loop, uv_process_t* handle) {
820
+ int64_t exit_code;
821
+ DWORD status;
822
+
823
+ assert(handle->exit_cb_pending);
824
+ handle->exit_cb_pending = 0;
825
+
826
+ /* If we're closing, don't call the exit callback. Just schedule a close
827
+ * callback now. */
828
+ if (handle->flags & UV_HANDLE_CLOSING) {
829
+ uv__want_endgame(loop, (uv_handle_t*) handle);
830
+ return;
831
+ }
832
+
833
+ /* Unregister from process notification. */
834
+ if (handle->wait_handle != INVALID_HANDLE_VALUE) {
835
+ UnregisterWait(handle->wait_handle);
836
+ handle->wait_handle = INVALID_HANDLE_VALUE;
837
+ }
838
+
839
+ /* Set the handle to inactive: no callbacks will be made after the exit
840
+ * callback. */
841
+ uv__handle_stop(handle);
842
+
843
+ if (GetExitCodeProcess(handle->process_handle, &status)) {
844
+ exit_code = status;
845
+ } else {
846
+ /* Unable to obtain the exit code. This should never happen. */
847
+ exit_code = uv_translate_sys_error(GetLastError());
848
+ }
849
+
850
+ /* Fire the exit callback. */
851
+ if (handle->exit_cb) {
852
+ handle->exit_cb(handle, exit_code, handle->exit_signal);
853
+ }
854
+ }
855
+
856
+
857
+ void uv__process_close(uv_loop_t* loop, uv_process_t* handle) {
858
+ uv__handle_closing(handle);
859
+
860
+ if (handle->wait_handle != INVALID_HANDLE_VALUE) {
861
+ /* This blocks until either the wait was cancelled, or the callback has
862
+ * completed. */
863
+ BOOL r = UnregisterWaitEx(handle->wait_handle, INVALID_HANDLE_VALUE);
864
+ if (!r) {
865
+ /* This should never happen, and if it happens, we can't recover... */
866
+ uv_fatal_error(GetLastError(), "UnregisterWaitEx");
867
+ }
868
+
869
+ handle->wait_handle = INVALID_HANDLE_VALUE;
870
+ }
871
+
872
+ if (!handle->exit_cb_pending) {
873
+ uv__want_endgame(loop, (uv_handle_t*)handle);
874
+ }
875
+ }
876
+
877
+
878
+ void uv__process_endgame(uv_loop_t* loop, uv_process_t* handle) {
879
+ assert(!handle->exit_cb_pending);
880
+ assert(handle->flags & UV_HANDLE_CLOSING);
881
+ assert(!(handle->flags & UV_HANDLE_CLOSED));
882
+
883
+ /* Clean-up the process handle. */
884
+ CloseHandle(handle->process_handle);
885
+
886
+ uv__handle_close(handle);
887
+ }
888
+
889
+
890
+ int uv_spawn(uv_loop_t* loop,
891
+ uv_process_t* process,
892
+ const uv_process_options_t* options) {
893
+ int i;
894
+ int err = 0;
895
+ WCHAR* path = NULL, *alloc_path = NULL;
896
+ BOOL result;
897
+ WCHAR* application_path = NULL, *application = NULL, *arguments = NULL,
898
+ *env = NULL, *cwd = NULL;
899
+ STARTUPINFOW startup;
900
+ PROCESS_INFORMATION info;
901
+ DWORD process_flags, cwd_len;
902
+ BYTE* child_stdio_buffer;
903
+
904
+ uv__process_init(loop, process);
905
+ process->exit_cb = options->exit_cb;
906
+ child_stdio_buffer = NULL;
907
+
908
+ if (options->flags & (UV_PROCESS_SETGID | UV_PROCESS_SETUID)) {
909
+ return UV_ENOTSUP;
910
+ }
911
+
912
+ if (options->file == NULL ||
913
+ options->args == NULL) {
914
+ return UV_EINVAL;
915
+ }
916
+
917
+ assert(options->file != NULL);
918
+ assert(!(options->flags & ~(UV_PROCESS_DETACHED |
919
+ UV_PROCESS_SETGID |
920
+ UV_PROCESS_SETUID |
921
+ UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME |
922
+ UV_PROCESS_WINDOWS_HIDE |
923
+ UV_PROCESS_WINDOWS_HIDE_CONSOLE |
924
+ UV_PROCESS_WINDOWS_HIDE_GUI |
925
+ UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS)));
926
+
927
+ err = uv__utf8_to_utf16_alloc(options->file, &application);
928
+ if (err)
929
+ goto done_uv;
930
+
931
+ err = make_program_args(
932
+ options->args,
933
+ options->flags & UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS,
934
+ &arguments);
935
+ if (err)
936
+ goto done_uv;
937
+
938
+ if (options->env) {
939
+ err = make_program_env(options->env, &env);
940
+ if (err)
941
+ goto done_uv;
942
+ }
943
+
944
+ if (options->cwd) {
945
+ /* Explicit cwd */
946
+ err = uv__utf8_to_utf16_alloc(options->cwd, &cwd);
947
+ if (err)
948
+ goto done_uv;
949
+
950
+ cwd_len = wcslen(cwd);
951
+ } else {
952
+ /* Inherit cwd */
953
+ DWORD r;
954
+
955
+ cwd_len = GetCurrentDirectoryW(0, NULL);
956
+ if (!cwd_len) {
957
+ err = GetLastError();
958
+ goto done;
959
+ }
960
+
961
+ cwd = (WCHAR*) uv__malloc(cwd_len * sizeof(WCHAR));
962
+ if (cwd == NULL) {
963
+ err = ERROR_OUTOFMEMORY;
964
+ goto done;
965
+ }
966
+
967
+ r = GetCurrentDirectoryW(cwd_len, cwd);
968
+ if (r == 0 || r >= cwd_len) {
969
+ err = GetLastError();
970
+ goto done;
971
+ }
972
+ }
973
+
974
+ /* If cwd is too long, shorten it */
975
+ if (cwd_len >= MAX_PATH) {
976
+ cwd_len = GetShortPathNameW(cwd, cwd, cwd_len);
977
+ if (cwd_len == 0) {
978
+ err = GetLastError();
979
+ goto done;
980
+ }
981
+ }
982
+
983
+ /* Get PATH environment variable. */
984
+ path = find_path(env);
985
+ if (path == NULL) {
986
+ DWORD path_len, r;
987
+
988
+ path_len = GetEnvironmentVariableW(L"PATH", NULL, 0);
989
+ if (path_len != 0) {
990
+ alloc_path = (WCHAR*) uv__malloc(path_len * sizeof(WCHAR));
991
+ if (alloc_path == NULL) {
992
+ err = ERROR_OUTOFMEMORY;
993
+ goto done;
994
+ }
995
+ path = alloc_path;
996
+
997
+ r = GetEnvironmentVariableW(L"PATH", path, path_len);
998
+ if (r == 0 || r >= path_len) {
999
+ err = GetLastError();
1000
+ goto done;
1001
+ }
1002
+ }
1003
+ }
1004
+
1005
+ err = uv__stdio_create(loop, options, &child_stdio_buffer);
1006
+ if (err)
1007
+ goto done;
1008
+
1009
+ application_path = search_path(application,
1010
+ cwd,
1011
+ path,
1012
+ options->flags);
1013
+ if (application_path == NULL) {
1014
+ /* Not found. */
1015
+ err = ERROR_FILE_NOT_FOUND;
1016
+ goto done;
1017
+ }
1018
+
1019
+ startup.cb = sizeof(startup);
1020
+ startup.lpReserved = NULL;
1021
+ startup.lpDesktop = NULL;
1022
+ startup.lpTitle = NULL;
1023
+ startup.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
1024
+
1025
+ startup.cbReserved2 = uv__stdio_size(child_stdio_buffer);
1026
+ startup.lpReserved2 = (BYTE*) child_stdio_buffer;
1027
+
1028
+ startup.hStdInput = uv__stdio_handle(child_stdio_buffer, 0);
1029
+ startup.hStdOutput = uv__stdio_handle(child_stdio_buffer, 1);
1030
+ startup.hStdError = uv__stdio_handle(child_stdio_buffer, 2);
1031
+
1032
+ process_flags = CREATE_UNICODE_ENVIRONMENT;
1033
+
1034
+ if ((options->flags & UV_PROCESS_WINDOWS_HIDE_CONSOLE) ||
1035
+ (options->flags & UV_PROCESS_WINDOWS_HIDE)) {
1036
+ /* Avoid creating console window if stdio is not inherited. */
1037
+ for (i = 0; i < options->stdio_count; i++) {
1038
+ if (options->stdio[i].flags & UV_INHERIT_FD)
1039
+ break;
1040
+ if (i == options->stdio_count - 1)
1041
+ process_flags |= CREATE_NO_WINDOW;
1042
+ }
1043
+ }
1044
+ if ((options->flags & UV_PROCESS_WINDOWS_HIDE_GUI) ||
1045
+ (options->flags & UV_PROCESS_WINDOWS_HIDE)) {
1046
+ /* Use SW_HIDE to avoid any potential process window. */
1047
+ startup.wShowWindow = SW_HIDE;
1048
+ } else {
1049
+ startup.wShowWindow = SW_SHOWDEFAULT;
1050
+ }
1051
+
1052
+ if (options->flags & UV_PROCESS_DETACHED) {
1053
+ /* Note that we're not setting the CREATE_BREAKAWAY_FROM_JOB flag. That
1054
+ * means that libuv might not let you create a fully daemonized process
1055
+ * when run under job control. However the type of job control that libuv
1056
+ * itself creates doesn't trickle down to subprocesses so they can still
1057
+ * daemonize.
1058
+ *
1059
+ * A reason to not do this is that CREATE_BREAKAWAY_FROM_JOB makes the
1060
+ * CreateProcess call fail if we're under job control that doesn't allow
1061
+ * breakaway.
1062
+ */
1063
+ process_flags |= DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP;
1064
+ process_flags |= CREATE_SUSPENDED;
1065
+ }
1066
+
1067
+ if (!CreateProcessW(application_path,
1068
+ arguments,
1069
+ NULL,
1070
+ NULL,
1071
+ 1,
1072
+ process_flags,
1073
+ env,
1074
+ cwd,
1075
+ &startup,
1076
+ &info)) {
1077
+ /* CreateProcessW failed. */
1078
+ err = GetLastError();
1079
+ goto done;
1080
+ }
1081
+
1082
+ /* If the process isn't spawned as detached, assign to the global job object
1083
+ * so windows will kill it when the parent process dies. */
1084
+ if (!(options->flags & UV_PROCESS_DETACHED)) {
1085
+ uv_once(&uv_global_job_handle_init_guard_, uv__init_global_job_handle);
1086
+
1087
+ if (!AssignProcessToJobObject(uv_global_job_handle_, info.hProcess)) {
1088
+ /* AssignProcessToJobObject might fail if this process is under job
1089
+ * control and the job doesn't have the
1090
+ * JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK flag set, on a Windows version
1091
+ * that doesn't support nested jobs.
1092
+ *
1093
+ * When that happens we just swallow the error and continue without
1094
+ * establishing a kill-child-on-parent-exit relationship, otherwise
1095
+ * there would be no way for libuv applications run under job control
1096
+ * to spawn processes at all.
1097
+ */
1098
+ DWORD err = GetLastError();
1099
+ if (err != ERROR_ACCESS_DENIED)
1100
+ uv_fatal_error(err, "AssignProcessToJobObject");
1101
+ }
1102
+ }
1103
+
1104
+ if (process_flags & CREATE_SUSPENDED) {
1105
+ if (ResumeThread(info.hThread) == ((DWORD)-1)) {
1106
+ err = GetLastError();
1107
+ TerminateProcess(info.hProcess, 1);
1108
+ goto done;
1109
+ }
1110
+ }
1111
+
1112
+ /* Spawn succeeded. Beyond this point, failure is reported asynchronously. */
1113
+
1114
+ process->process_handle = info.hProcess;
1115
+ process->pid = info.dwProcessId;
1116
+
1117
+ /* Set IPC pid to all IPC pipes. */
1118
+ for (i = 0; i < options->stdio_count; i++) {
1119
+ const uv_stdio_container_t* fdopt = &options->stdio[i];
1120
+ if (fdopt->flags & UV_CREATE_PIPE &&
1121
+ fdopt->data.stream->type == UV_NAMED_PIPE &&
1122
+ ((uv_pipe_t*) fdopt->data.stream)->ipc) {
1123
+ ((uv_pipe_t*) fdopt->data.stream)->pipe.conn.ipc_remote_pid =
1124
+ info.dwProcessId;
1125
+ }
1126
+ }
1127
+
1128
+ /* Setup notifications for when the child process exits. */
1129
+ result = RegisterWaitForSingleObject(&process->wait_handle,
1130
+ process->process_handle, exit_wait_callback, (void*)process, INFINITE,
1131
+ WT_EXECUTEINWAITTHREAD | WT_EXECUTEONLYONCE);
1132
+ if (!result) {
1133
+ uv_fatal_error(GetLastError(), "RegisterWaitForSingleObject");
1134
+ }
1135
+
1136
+ CloseHandle(info.hThread);
1137
+
1138
+ assert(!err);
1139
+
1140
+ /* Make the handle active. It will remain active until the exit callback is
1141
+ * made or the handle is closed, whichever happens first. */
1142
+ uv__handle_start(process);
1143
+
1144
+ goto done_uv;
1145
+
1146
+ /* Cleanup, whether we succeeded or failed. */
1147
+ done:
1148
+ err = uv_translate_sys_error(err);
1149
+
1150
+ done_uv:
1151
+ uv__free(application);
1152
+ uv__free(application_path);
1153
+ uv__free(arguments);
1154
+ uv__free(cwd);
1155
+ uv__free(env);
1156
+ uv__free(alloc_path);
1157
+
1158
+ if (child_stdio_buffer != NULL) {
1159
+ /* Clean up child stdio handles. */
1160
+ uv__stdio_destroy(child_stdio_buffer);
1161
+ child_stdio_buffer = NULL;
1162
+ }
1163
+
1164
+ return err;
1165
+ }
1166
+
1167
+
1168
+ static int uv__kill(HANDLE process_handle, int signum) {
1169
+ if (signum < 0 || signum >= NSIG) {
1170
+ return UV_EINVAL;
1171
+ }
1172
+
1173
+ /* Create a dump file for the targeted process, if the registry key
1174
+ * `HKLM:Software\Microsoft\Windows\Windows Error Reporting\LocalDumps`
1175
+ * exists. The location of the dumps can be influenced by the `DumpFolder`
1176
+ * sub-key, which has a default value of `%LOCALAPPDATA%\CrashDumps`, see [0]
1177
+ * for more detail. Note that if the dump folder does not exist, we attempt
1178
+ * to create it, to match behavior with WER itself.
1179
+ * [0]: https://learn.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps */
1180
+ if (signum == SIGQUIT) {
1181
+ HKEY registry_key;
1182
+ DWORD pid, ret;
1183
+ WCHAR basename[MAX_PATH];
1184
+
1185
+ /* Get target process name. */
1186
+ GetModuleBaseNameW(process_handle, NULL, &basename[0], sizeof(basename));
1187
+
1188
+ /* Get PID of target process. */
1189
+ pid = GetProcessId(process_handle);
1190
+
1191
+ /* Get LocalDumps directory path. */
1192
+ ret = RegOpenKeyExW(
1193
+ HKEY_LOCAL_MACHINE,
1194
+ L"SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps",
1195
+ 0,
1196
+ KEY_QUERY_VALUE,
1197
+ &registry_key);
1198
+ if (ret == ERROR_SUCCESS) {
1199
+ HANDLE hDumpFile = NULL;
1200
+ WCHAR dump_folder[MAX_PATH], dump_name[MAX_PATH];
1201
+ DWORD dump_folder_len = sizeof(dump_folder), key_type = 0;
1202
+ ret = RegGetValueW(registry_key,
1203
+ NULL,
1204
+ L"DumpFolder",
1205
+ RRF_RT_ANY,
1206
+ &key_type,
1207
+ (PVOID) dump_folder,
1208
+ &dump_folder_len);
1209
+ if (ret != ERROR_SUCCESS) {
1210
+ /* Workaround for missing uuid.dll on MinGW. */
1211
+ static const GUID FOLDERID_LocalAppData_libuv = {
1212
+ 0xf1b32785, 0x6fba, 0x4fcf,
1213
+ {0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}
1214
+ };
1215
+
1216
+ /* Default value for `dump_folder` is `%LOCALAPPDATA%\CrashDumps`. */
1217
+ WCHAR* localappdata;
1218
+ SHGetKnownFolderPath(&FOLDERID_LocalAppData_libuv,
1219
+ 0,
1220
+ NULL,
1221
+ &localappdata);
1222
+ _snwprintf_s(dump_folder,
1223
+ sizeof(dump_folder),
1224
+ _TRUNCATE,
1225
+ L"%ls\\CrashDumps",
1226
+ localappdata);
1227
+ CoTaskMemFree(localappdata);
1228
+ }
1229
+ RegCloseKey(registry_key);
1230
+
1231
+ /* Create dump folder if it doesn't already exist. */
1232
+ CreateDirectoryW(dump_folder, NULL);
1233
+
1234
+ /* Construct dump filename from process name and PID. */
1235
+ _snwprintf_s(dump_name,
1236
+ sizeof(dump_name),
1237
+ _TRUNCATE,
1238
+ L"%ls\\%ls.%d.dmp",
1239
+ dump_folder,
1240
+ basename,
1241
+ pid);
1242
+
1243
+ hDumpFile = CreateFileW(dump_name,
1244
+ GENERIC_WRITE,
1245
+ 0,
1246
+ NULL,
1247
+ CREATE_NEW,
1248
+ FILE_ATTRIBUTE_NORMAL,
1249
+ NULL);
1250
+ if (hDumpFile != INVALID_HANDLE_VALUE) {
1251
+ DWORD dump_options, sym_options;
1252
+ FILE_DISPOSITION_INFO DeleteOnClose = { TRUE };
1253
+
1254
+ /* If something goes wrong while writing it out, delete the file. */
1255
+ SetFileInformationByHandle(hDumpFile,
1256
+ FileDispositionInfo,
1257
+ &DeleteOnClose,
1258
+ sizeof(DeleteOnClose));
1259
+
1260
+ /* Tell wine to dump ELF modules as well. */
1261
+ sym_options = SymGetOptions();
1262
+ SymSetOptions(sym_options | 0x40000000);
1263
+
1264
+ /* MiniDumpWithAvxXStateContext might be undef in server2012r2 or mingw < 12 */
1265
+ #ifndef MiniDumpWithAvxXStateContext
1266
+ #define MiniDumpWithAvxXStateContext 0x00200000
1267
+ #endif
1268
+ /* We default to a fairly complete dump. In the future, we may want to
1269
+ * allow clients to customize what kind of dump to create. */
1270
+ dump_options = MiniDumpWithFullMemory |
1271
+ MiniDumpIgnoreInaccessibleMemory |
1272
+ MiniDumpWithAvxXStateContext;
1273
+
1274
+ if (MiniDumpWriteDump(process_handle,
1275
+ pid,
1276
+ hDumpFile,
1277
+ dump_options,
1278
+ NULL,
1279
+ NULL,
1280
+ NULL)) {
1281
+ /* Don't delete the file on close if we successfully wrote it out. */
1282
+ FILE_DISPOSITION_INFO DontDeleteOnClose = { FALSE };
1283
+ SetFileInformationByHandle(hDumpFile,
1284
+ FileDispositionInfo,
1285
+ &DontDeleteOnClose,
1286
+ sizeof(DontDeleteOnClose));
1287
+ }
1288
+ SymSetOptions(sym_options);
1289
+ CloseHandle(hDumpFile);
1290
+ }
1291
+ }
1292
+ }
1293
+
1294
+ switch (signum) {
1295
+ case SIGQUIT:
1296
+ case SIGTERM:
1297
+ case SIGKILL:
1298
+ case SIGINT: {
1299
+ /* Unconditionally terminate the process. On Windows, killed processes
1300
+ * normally return 1. */
1301
+ int err;
1302
+ DWORD status;
1303
+
1304
+ if (TerminateProcess(process_handle, 1))
1305
+ return 0;
1306
+
1307
+ /* If the process already exited before TerminateProcess was called,
1308
+ * TerminateProcess will fail with ERROR_ACCESS_DENIED. */
1309
+ err = GetLastError();
1310
+ if (err == ERROR_ACCESS_DENIED) {
1311
+ /* First check using GetExitCodeProcess() with status different from
1312
+ * STILL_ACTIVE (259). This check can be set incorrectly by the process,
1313
+ * though that is uncommon. */
1314
+ if (GetExitCodeProcess(process_handle, &status) &&
1315
+ status != STILL_ACTIVE) {
1316
+ return UV_ESRCH;
1317
+ }
1318
+
1319
+ /* But the process could have exited with code == STILL_ACTIVE, use then
1320
+ * WaitForSingleObject with timeout zero. This is prone to a race
1321
+ * condition as it could return WAIT_TIMEOUT because the handle might
1322
+ * not have been signaled yet.That would result in returning the wrong
1323
+ * error code here (UV_EACCES instead of UV_ESRCH), but we cannot fix
1324
+ * the kernel synchronization issue that TerminateProcess is
1325
+ * inconsistent with WaitForSingleObject with just the APIs available to
1326
+ * us in user space. */
1327
+ if (WaitForSingleObject(process_handle, 0) == WAIT_OBJECT_0) {
1328
+ return UV_ESRCH;
1329
+ }
1330
+ }
1331
+
1332
+ return uv_translate_sys_error(err);
1333
+ }
1334
+
1335
+ case 0: {
1336
+ /* Health check: is the process still alive? */
1337
+ DWORD status;
1338
+
1339
+ if (!GetExitCodeProcess(process_handle, &status))
1340
+ return uv_translate_sys_error(GetLastError());
1341
+
1342
+ if (status != STILL_ACTIVE)
1343
+ return UV_ESRCH;
1344
+
1345
+ switch (WaitForSingleObject(process_handle, 0)) {
1346
+ case WAIT_OBJECT_0:
1347
+ return UV_ESRCH;
1348
+ case WAIT_FAILED:
1349
+ return uv_translate_sys_error(GetLastError());
1350
+ case WAIT_TIMEOUT:
1351
+ return 0;
1352
+ default:
1353
+ return UV_UNKNOWN;
1354
+ }
1355
+ }
1356
+
1357
+ default:
1358
+ /* Unsupported signal. */
1359
+ return UV_ENOSYS;
1360
+ }
1361
+ }
1362
+
1363
+
1364
+ int uv_process_kill(uv_process_t* process, int signum) {
1365
+ int err;
1366
+
1367
+ if (process->process_handle == INVALID_HANDLE_VALUE) {
1368
+ return UV_EINVAL;
1369
+ }
1370
+
1371
+ err = uv__kill(process->process_handle, signum);
1372
+ if (err) {
1373
+ return err; /* err is already translated. */
1374
+ }
1375
+
1376
+ process->exit_signal = signum;
1377
+
1378
+ return 0;
1379
+ }
1380
+
1381
+
1382
+ int uv_kill(int pid, int signum) {
1383
+ int err;
1384
+ HANDLE process_handle;
1385
+
1386
+ if (pid == 0) {
1387
+ process_handle = GetCurrentProcess();
1388
+ } else {
1389
+ process_handle = OpenProcess(PROCESS_TERMINATE | PROCESS_QUERY_INFORMATION | SYNCHRONIZE,
1390
+ FALSE,
1391
+ pid);
1392
+ }
1393
+
1394
+ if (process_handle == NULL) {
1395
+ err = GetLastError();
1396
+ if (err == ERROR_INVALID_PARAMETER) {
1397
+ return UV_ESRCH;
1398
+ } else {
1399
+ return uv_translate_sys_error(err);
1400
+ }
1401
+ }
1402
+
1403
+ err = uv__kill(process_handle, signum);
1404
+ CloseHandle(process_handle);
1405
+
1406
+ return err; /* err is already translated. */
1407
+ }