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,1273 @@
1
+ // Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
2
+ // Copyright 2005 Nokia. All rights reserved.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ #include <openssl/ssl.h>
17
+
18
+ #include <assert.h>
19
+ #include <stdlib.h>
20
+ #include <string.h>
21
+
22
+ #include <utility>
23
+
24
+ #include <openssl/cipher.h>
25
+ #include <openssl/err.h>
26
+ #include <openssl/evp.h>
27
+ #include <openssl/hmac.h>
28
+ #include <openssl/mem.h>
29
+ #include <openssl/pool.h>
30
+ #include <openssl/rand.h>
31
+
32
+ #include "../crypto/internal.h"
33
+ #include "internal.h"
34
+
35
+
36
+ BSSL_NAMESPACE_BEGIN
37
+
38
+ // The address of this is a magic value, a pointer to which is returned by
39
+ // SSL_magic_pending_session_ptr(). It allows a session callback to indicate
40
+ // that it needs to asynchronously fetch session information.
41
+ static const char g_pending_session_magic = 0;
42
+
43
+ static ExDataClass g_ex_data_class(/*with_app_data=*/true);
44
+
45
+ static void SSL_SESSION_list_remove(SSLContext *ctx, SSLSession *session);
46
+ static void SSL_SESSION_list_add(SSLContext *ctx, SSLSession *session);
47
+
48
+ static Span<const uint8_t> ssl_handshake_session_id_context(
49
+ const SSL_HANDSHAKE *hs) {
50
+ if (hs->ssl->server && hs->credential != nullptr &&
51
+ !hs->credential->sid_ctx.empty()) {
52
+ return hs->credential->sid_ctx;
53
+ }
54
+ return hs->config->cert->sid_ctx;
55
+ }
56
+
57
+ UniquePtr<SSLSession> ssl_session_new(const SSL_X509_METHOD *x509_method) {
58
+ return MakeUnique<SSLSession>(x509_method);
59
+ }
60
+
61
+ uint32_t ssl_hash_session_id(Span<const uint8_t> session_id) {
62
+ // Take the first four bytes of `session_id`. Session IDs are generated by the
63
+ // server randomly, so we can assume even using the first four bytes results
64
+ // in a good distribution.
65
+ uint8_t tmp_storage[sizeof(uint32_t)];
66
+ if (session_id.size() < sizeof(tmp_storage)) {
67
+ OPENSSL_memset(tmp_storage, 0, sizeof(tmp_storage));
68
+ OPENSSL_memcpy(tmp_storage, session_id.data(), session_id.size());
69
+ session_id = tmp_storage;
70
+ }
71
+
72
+ uint32_t hash = ((uint32_t)session_id[0]) | ((uint32_t)session_id[1] << 8) |
73
+ ((uint32_t)session_id[2] << 16) |
74
+ ((uint32_t)session_id[3] << 24);
75
+
76
+ return hash;
77
+ }
78
+
79
+ UniquePtr<SSLSession> SSL_SESSION_dup(const SSLSession *session,
80
+ int dup_flags) {
81
+ UniquePtr<SSLSession> new_session = ssl_session_new(session->x509_method);
82
+ if (!new_session) {
83
+ return nullptr;
84
+ }
85
+
86
+ new_session->is_server = session->is_server;
87
+ new_session->ssl_version = session->ssl_version;
88
+ new_session->is_quic = session->is_quic;
89
+ new_session->sid_ctx = session->sid_ctx;
90
+
91
+ // Copy the key material.
92
+ new_session->secret = session->secret;
93
+ new_session->cipher = session->cipher;
94
+
95
+ // Copy authentication state.
96
+ if (session->psk_identity != nullptr) {
97
+ new_session->psk_identity.reset(
98
+ OPENSSL_strdup(session->psk_identity.get()));
99
+ if (new_session->psk_identity == nullptr) {
100
+ return nullptr;
101
+ }
102
+ }
103
+ new_session->peer_cert_type = session->peer_cert_type;
104
+ if (session->certs != nullptr) {
105
+ new_session->certs.reset(sk_CRYPTO_BUFFER_deep_copy(
106
+ session->certs.get(), CRYPTO_BUFFER_dup_ref, CRYPTO_BUFFER_free));
107
+ if (new_session->certs == nullptr) {
108
+ return nullptr;
109
+ }
110
+ }
111
+ if (session->peer_raw_public_key != nullptr) {
112
+ new_session->peer_raw_public_key = UpRef(session->peer_raw_public_key);
113
+ }
114
+
115
+ if (!session->x509_method->session_dup(new_session.get(), session)) {
116
+ return nullptr;
117
+ }
118
+
119
+ new_session->verify_result = session->verify_result;
120
+
121
+ new_session->ocsp_response = UpRef(session->ocsp_response);
122
+ new_session->signed_cert_timestamp_list =
123
+ UpRef(session->signed_cert_timestamp_list);
124
+
125
+ OPENSSL_memcpy(new_session->peer_sha256, session->peer_sha256,
126
+ SHA256_DIGEST_LENGTH);
127
+ new_session->peer_sha256_valid = session->peer_sha256_valid;
128
+
129
+ new_session->peer_signature_algorithm = session->peer_signature_algorithm;
130
+
131
+ new_session->timeout = session->timeout;
132
+ new_session->auth_timeout = session->auth_timeout;
133
+ new_session->time = session->time;
134
+
135
+ // Copy non-authentication connection properties.
136
+ if (dup_flags & SSL_SESSION_INCLUDE_NONAUTH) {
137
+ new_session->session_id = session->session_id;
138
+ new_session->group_id = session->group_id;
139
+ new_session->original_handshake_hash = session->original_handshake_hash;
140
+ new_session->ticket_lifetime_hint = session->ticket_lifetime_hint;
141
+ new_session->ticket_age_add = session->ticket_age_add;
142
+ new_session->ticket_max_early_data = session->ticket_max_early_data;
143
+ new_session->extended_master_secret = session->extended_master_secret;
144
+ new_session->has_application_settings = session->has_application_settings;
145
+
146
+ if (!new_session->early_alpn.CopyFrom(session->early_alpn) ||
147
+ !new_session->quic_early_data_context.CopyFrom(
148
+ session->quic_early_data_context) ||
149
+ !new_session->local_application_settings.CopyFrom(
150
+ session->local_application_settings) ||
151
+ !new_session->peer_application_settings.CopyFrom(
152
+ session->peer_application_settings)) {
153
+ return nullptr;
154
+ }
155
+ }
156
+
157
+ // Copy the ticket.
158
+ if (dup_flags & SSL_SESSION_INCLUDE_TICKET &&
159
+ !new_session->ticket.CopyFrom(session->ticket)) {
160
+ return nullptr;
161
+ }
162
+
163
+ // The new_session does not get a copy of the ex_data.
164
+
165
+ new_session->not_resumable = true;
166
+ return new_session;
167
+ }
168
+
169
+ void ssl_session_rebase_time(SSLImpl *ssl, SSLSession *session) {
170
+ OPENSSL_timeval now = ssl_ctx_get_current_time(ssl->ctx.get());
171
+
172
+ // To avoid overflows and underflows, if we've gone back in time, update the
173
+ // time, but mark the session expired.
174
+ if (session->time > now.tv_sec) {
175
+ session->time = now.tv_sec;
176
+ session->timeout = 0;
177
+ session->auth_timeout = 0;
178
+ return;
179
+ }
180
+
181
+ // Adjust the session time and timeouts. If the session has already expired,
182
+ // clamp the timeouts at zero.
183
+ uint64_t delta = now.tv_sec - session->time;
184
+ session->time = now.tv_sec;
185
+ if (session->timeout < delta) {
186
+ session->timeout = 0;
187
+ } else {
188
+ session->timeout -= delta;
189
+ }
190
+ if (session->auth_timeout < delta) {
191
+ session->auth_timeout = 0;
192
+ } else {
193
+ session->auth_timeout -= delta;
194
+ }
195
+ }
196
+
197
+ void ssl_session_renew_timeout(SSLImpl *ssl, SSLSession *session,
198
+ uint32_t timeout) {
199
+ // Rebase the timestamp relative to the current time so `timeout` is measured
200
+ // correctly.
201
+ ssl_session_rebase_time(ssl, session);
202
+
203
+ if (session->timeout > timeout) {
204
+ return;
205
+ }
206
+
207
+ session->timeout = timeout;
208
+ if (session->timeout > session->auth_timeout) {
209
+ session->timeout = session->auth_timeout;
210
+ }
211
+ }
212
+
213
+ uint16_t ssl_session_protocol_version(const SSLSession *session) {
214
+ uint16_t ret;
215
+ if (!ssl_protocol_version_from_wire(&ret, session->ssl_version)) {
216
+ // An `SSL_SESSION` will never have an invalid version. This is enforced by
217
+ // the parser.
218
+ assert(0);
219
+ return 0;
220
+ }
221
+
222
+ return ret;
223
+ }
224
+
225
+ const EVP_MD *ssl_session_get_digest(const SSLSession *session) {
226
+ return ssl_get_handshake_digest(ssl_session_protocol_version(session),
227
+ session->cipher);
228
+ }
229
+
230
+ bool ssl_get_new_session(SSL_HANDSHAKE *hs) {
231
+ SSLImpl *const ssl = hs->ssl;
232
+ if (ssl->mode & SSL_MODE_NO_SESSION_CREATION) {
233
+ OPENSSL_PUT_ERROR(SSL, SSL_R_SESSION_MAY_NOT_BE_CREATED);
234
+ return false;
235
+ }
236
+
237
+ UniquePtr<SSLSession> session = ssl_session_new(ssl->ctx->x509_method);
238
+ if (session == nullptr) {
239
+ return false;
240
+ }
241
+
242
+ session->is_server = ssl->server;
243
+ session->ssl_version = ssl->s3->version;
244
+ session->is_quic = SSL_is_quic(ssl);
245
+
246
+ // Fill in the time from the `SSL_CTX`'s clock.
247
+ OPENSSL_timeval now = ssl_ctx_get_current_time(ssl->ctx.get());
248
+ session->time = now.tv_sec;
249
+
250
+ uint16_t version = ssl_protocol_version(ssl);
251
+ if (version >= TLS1_3_VERSION) {
252
+ // TLS 1.3 uses tickets as authenticators, so we are willing to use them for
253
+ // longer.
254
+ session->timeout = ssl->session_ctx->session_psk_dhe_timeout;
255
+ session->auth_timeout = SSL_DEFAULT_SESSION_AUTH_TIMEOUT;
256
+ } else {
257
+ // TLS 1.2 resumption does not incorporate new key material, so we use a
258
+ // much shorter timeout.
259
+ session->timeout = ssl->session_ctx->session_timeout;
260
+ session->auth_timeout = ssl->session_ctx->session_timeout;
261
+ }
262
+
263
+ if (!session->sid_ctx.TryCopyFrom(ssl_handshake_session_id_context(hs))) {
264
+ return false;
265
+ }
266
+
267
+ // The session is marked not resumable until it is completely filled in.
268
+ session->not_resumable = true;
269
+ session->verify_result = X509_V_ERR_INVALID_CALL;
270
+
271
+ hs->new_session = std::move(session);
272
+ ssl_set_session(ssl, nullptr);
273
+ return true;
274
+ }
275
+
276
+ bool ssl_ctx_rotate_ticket_encryption_key(SSLContext *ctx) {
277
+ OPENSSL_timeval now = ssl_ctx_get_current_time(ctx);
278
+ {
279
+ // Avoid acquiring a write lock in the common case (i.e. a non-default key
280
+ // is used or the default keys have not expired yet).
281
+ MutexReadLock lock(&ctx->lock);
282
+ if (ctx->ticket_key_current &&
283
+ (ctx->ticket_key_current->next_rotation_tv_sec == 0 ||
284
+ ctx->ticket_key_current->next_rotation_tv_sec > now.tv_sec) &&
285
+ (!ctx->ticket_key_prev ||
286
+ ctx->ticket_key_prev->next_rotation_tv_sec > now.tv_sec)) {
287
+ return true;
288
+ }
289
+ }
290
+
291
+ MutexWriteLock lock(&ctx->lock);
292
+ if (!ctx->ticket_key_current ||
293
+ (ctx->ticket_key_current->next_rotation_tv_sec != 0 &&
294
+ ctx->ticket_key_current->next_rotation_tv_sec <= now.tv_sec)) {
295
+ // The current key has not been initialized or it is expired.
296
+ auto new_key = bssl::MakeUnique<TicketKey>();
297
+ if (!new_key) {
298
+ return false;
299
+ }
300
+ RAND_bytes(new_key->name, 16);
301
+ RAND_bytes(new_key->hmac_key, 16);
302
+ RAND_bytes(new_key->aes_key, 16);
303
+ new_key->next_rotation_tv_sec =
304
+ now.tv_sec + SSL_DEFAULT_TICKET_KEY_ROTATION_INTERVAL;
305
+ if (ctx->ticket_key_current) {
306
+ // The current key expired. Rotate it to prev and bump up its rotation
307
+ // timestamp. Note that even with the new rotation time it may still be
308
+ // expired and get dropped below.
309
+ ctx->ticket_key_current->next_rotation_tv_sec +=
310
+ SSL_DEFAULT_TICKET_KEY_ROTATION_INTERVAL;
311
+ ctx->ticket_key_prev = std::move(ctx->ticket_key_current);
312
+ }
313
+ ctx->ticket_key_current = std::move(new_key);
314
+ }
315
+
316
+ // Drop an expired prev key.
317
+ if (ctx->ticket_key_prev &&
318
+ ctx->ticket_key_prev->next_rotation_tv_sec <= now.tv_sec) {
319
+ ctx->ticket_key_prev.reset();
320
+ }
321
+
322
+ return true;
323
+ }
324
+
325
+ static int ssl_encrypt_ticket_with_cipher_ctx(SSL_HANDSHAKE *hs, CBB *out,
326
+ const uint8_t *session_buf,
327
+ size_t session_len) {
328
+ ScopedEVP_CIPHER_CTX ctx;
329
+ ScopedHMAC_CTX hctx;
330
+
331
+ // If the session is too long, decline to send a ticket.
332
+ static const size_t kMaxTicketOverhead =
333
+ 16 + EVP_MAX_IV_LENGTH + EVP_MAX_BLOCK_LENGTH + EVP_MAX_MD_SIZE;
334
+ if (session_len > 0xffff - kMaxTicketOverhead) {
335
+ return 1;
336
+ }
337
+
338
+ // Initialize HMAC and cipher contexts. If callback present it does all the
339
+ // work otherwise use generated values from parent ctx.
340
+ SSLContext *tctx = hs->ssl->session_ctx.get();
341
+ uint8_t iv[EVP_MAX_IV_LENGTH];
342
+ uint8_t key_name[16];
343
+ if (tctx->ticket_key_cb != nullptr) {
344
+ int ret = tctx->ticket_key_cb(hs->ssl, key_name, iv, ctx.get(), hctx.get(),
345
+ 1 /* encrypt */);
346
+ if (ret < 0) {
347
+ return 0;
348
+ }
349
+ if (ret == 0) {
350
+ // The caller requested to send no ticket, so write nothing to `out`.
351
+ return 1;
352
+ }
353
+ } else {
354
+ // Rotate ticket key if necessary.
355
+ if (!ssl_ctx_rotate_ticket_encryption_key(tctx)) {
356
+ return 0;
357
+ }
358
+ MutexReadLock lock(&tctx->lock);
359
+ if (!RAND_bytes(iv, 16) ||
360
+ !EVP_EncryptInit_ex(ctx.get(), EVP_aes_128_cbc(), nullptr,
361
+ tctx->ticket_key_current->aes_key, iv) ||
362
+ !HMAC_Init_ex(hctx.get(), tctx->ticket_key_current->hmac_key, 16,
363
+ tlsext_tick_md(), nullptr)) {
364
+ return 0;
365
+ }
366
+ OPENSSL_memcpy(key_name, tctx->ticket_key_current->name, 16);
367
+ }
368
+
369
+ uint8_t *ptr;
370
+ if (!CBB_add_bytes(out, key_name, 16) ||
371
+ !CBB_add_bytes(out, iv, EVP_CIPHER_CTX_iv_length(ctx.get())) ||
372
+ !CBB_reserve(out, &ptr, session_len + EVP_MAX_BLOCK_LENGTH)) {
373
+ return 0;
374
+ }
375
+
376
+ size_t total = 0;
377
+ if (CRYPTO_fuzzer_mode_enabled()) {
378
+ OPENSSL_memcpy(ptr, session_buf, session_len);
379
+ total = session_len;
380
+ } else {
381
+ size_t len;
382
+ if (!EVP_EncryptUpdate_ex(ctx.get(), ptr + total, &len,
383
+ session_len + EVP_MAX_BLOCK_LENGTH - total,
384
+ session_buf, session_len)) {
385
+ return 0;
386
+ }
387
+ total += len;
388
+ if (!EVP_EncryptFinal_ex2(ctx.get(), ptr + total, &len,
389
+ session_len + EVP_MAX_BLOCK_LENGTH - total)) {
390
+ return 0;
391
+ }
392
+ total += len;
393
+ }
394
+ if (!CBB_did_write(out, total)) {
395
+ return 0;
396
+ }
397
+
398
+ unsigned hlen;
399
+ if (!HMAC_Update(hctx.get(), CBB_data(out), CBB_len(out)) || //
400
+ !CBB_reserve(out, &ptr, EVP_MAX_MD_SIZE) || //
401
+ !HMAC_Final(hctx.get(), ptr, &hlen) || //
402
+ !CBB_did_write(out, hlen)) {
403
+ return 0;
404
+ }
405
+
406
+ return 1;
407
+ }
408
+
409
+ static int ssl_encrypt_ticket_with_method(SSL_HANDSHAKE *hs, CBB *out,
410
+ const uint8_t *session_buf,
411
+ size_t session_len) {
412
+ SSLImpl *const ssl = hs->ssl;
413
+ const SSL_TICKET_AEAD_METHOD *method = ssl->session_ctx->ticket_aead_method;
414
+ const size_t max_overhead = method->max_overhead(ssl);
415
+ const size_t max_out = session_len + max_overhead;
416
+ if (max_out < max_overhead) {
417
+ OPENSSL_PUT_ERROR(SSL, ERR_R_OVERFLOW);
418
+ return 0;
419
+ }
420
+
421
+ uint8_t *ptr;
422
+ if (!CBB_reserve(out, &ptr, max_out)) {
423
+ return 0;
424
+ }
425
+
426
+ size_t out_len;
427
+ if (!method->seal(ssl, ptr, &out_len, max_out, session_buf, session_len)) {
428
+ OPENSSL_PUT_ERROR(SSL, SSL_R_TICKET_ENCRYPTION_FAILED);
429
+ return 0;
430
+ }
431
+
432
+ if (!CBB_did_write(out, out_len)) {
433
+ return 0;
434
+ }
435
+
436
+ return 1;
437
+ }
438
+
439
+ bool ssl_encrypt_ticket(SSL_HANDSHAKE *hs, CBB *out,
440
+ const SSLSession *session) {
441
+ // Serialize the SSL_SESSION to be encoded into the ticket.
442
+ uint8_t *session_buf = nullptr;
443
+ size_t session_len;
444
+ if (!SSL_SESSION_to_bytes_for_ticket(session, &session_buf, &session_len)) {
445
+ return false;
446
+ }
447
+ bssl::UniquePtr<uint8_t> free_session_buf(session_buf);
448
+
449
+ if (hs->ssl->session_ctx->ticket_aead_method) {
450
+ return ssl_encrypt_ticket_with_method(hs, out, session_buf, session_len);
451
+ } else {
452
+ return ssl_encrypt_ticket_with_cipher_ctx(hs, out, session_buf,
453
+ session_len);
454
+ }
455
+ }
456
+
457
+ SSLSessionType ssl_session_get_type(const SSLSession *session) {
458
+ if (session->not_resumable) {
459
+ return SSLSessionType::kNotResumable;
460
+ }
461
+ if (ssl_session_protocol_version(session) >= TLS1_3_VERSION) {
462
+ return session->ticket.empty() ? SSLSessionType::kNotResumable
463
+ : SSLSessionType::kPreSharedKey;
464
+ }
465
+ if (!session->ticket.empty()) {
466
+ return SSLSessionType::kTicket;
467
+ }
468
+ if (!session->session_id.empty()) {
469
+ return SSLSessionType::kID;
470
+ }
471
+ return SSLSessionType::kNotResumable;
472
+ }
473
+
474
+ bool ssl_session_is_context_valid(const SSL_HANDSHAKE *hs,
475
+ const SSLSession *session) {
476
+ return session != nullptr &&
477
+ Span(session->sid_ctx) == ssl_handshake_session_id_context(hs);
478
+ }
479
+
480
+ bool ssl_session_is_time_valid(const SSLImpl *ssl, const SSLSession *session) {
481
+ if (session == nullptr) {
482
+ return false;
483
+ }
484
+
485
+ OPENSSL_timeval now = ssl_ctx_get_current_time(ssl->ctx.get());
486
+
487
+ // Reject tickets from the future to avoid underflow.
488
+ if (now.tv_sec < session->time) {
489
+ return false;
490
+ }
491
+
492
+ return session->timeout > now.tv_sec - session->time;
493
+ }
494
+
495
+ bool ssl_session_is_resumable(const SSL_HANDSHAKE *hs,
496
+ const SSLSession *session) {
497
+ const SSLImpl *const ssl = hs->ssl;
498
+ return ssl_session_is_context_valid(hs, session) &&
499
+ // The session must have been created by the same type of end point as
500
+ // we're now using it with.
501
+ ssl->server == session->is_server &&
502
+ // The session must not be expired.
503
+ ssl_session_is_time_valid(ssl, session) &&
504
+ // Only resume if the session's version matches the negotiated
505
+ // version.
506
+ ssl->s3->version == session->ssl_version &&
507
+ // Only resume if the session's cipher matches the negotiated one. This
508
+ // is stricter than necessary for TLS 1.3, which allows cross-cipher
509
+ // resumption if the PRF hashes match. We require an exact match for
510
+ // simplicity. If loosening this, the 0-RTT accept logic must be
511
+ // updated to check the cipher.
512
+ hs->new_cipher == session->cipher &&
513
+ // If the session contains a client certificate/RPK (either the full
514
+ // certificate/RPK or just the hash) then require that the form of the
515
+ // certificate/RPK matches the current configuration.
516
+ (!ssl_session_has_peer_cred(session) ||
517
+ session->peer_sha256_valid ==
518
+ hs->config->retain_only_sha256_of_client_certs) &&
519
+ // Only resume if the underlying transport protocol hasn't changed.
520
+ // This is to prevent cross-protocol resumption between QUIC and TCP.
521
+ SSL_is_quic(ssl) == int{session->is_quic};
522
+ }
523
+
524
+ // ssl_lookup_session looks up `session_id` in the session cache and sets
525
+ // `*out_session` to an `SSL_SESSION` object if found.
526
+ static enum ssl_hs_wait_t ssl_lookup_session(SSL_HANDSHAKE *hs,
527
+ UniquePtr<SSLSession> *out_session,
528
+ Span<const uint8_t> session_id) {
529
+ SSLImpl *const ssl = hs->ssl;
530
+ out_session->reset();
531
+
532
+ if (session_id.empty() || session_id.size() > SSL_MAX_SSL_SESSION_ID_LENGTH) {
533
+ return ssl_hs_ok;
534
+ }
535
+
536
+ UniquePtr<SSLSession> session;
537
+ // Try the internal cache, if it exists.
538
+ if (!(ssl->session_ctx->session_cache_mode &
539
+ SSL_SESS_CACHE_NO_INTERNAL_LOOKUP)) {
540
+ uint32_t hash = ssl_hash_session_id(session_id);
541
+ // TODO(crbug.com/565766495): Use `SSLSession` when the lhash does.
542
+ auto cmp = [](const void *key, const SSL_SESSION *sess) -> int {
543
+ Span<const uint8_t> key_id =
544
+ *reinterpret_cast<const Span<const uint8_t> *>(key);
545
+ return key_id == FromOpaque(sess)->session_id ? 0 : 1;
546
+ };
547
+ MutexReadLock lock(&ssl->session_ctx->lock);
548
+ // `lh_SSL_SESSION_retrieve_key` returns a non-owning pointer.
549
+ session = UpRef(FromOpaque(lh_SSL_SESSION_retrieve_key(
550
+ ssl->session_ctx->sessions, &session_id, hash, cmp)));
551
+ // TODO(davidben): This should probably move it to the front of the list.
552
+ }
553
+
554
+ // Fall back to the external cache, if it exists.
555
+ if (!session && ssl->session_ctx->get_session_cb != nullptr) {
556
+ int copy = 1;
557
+ SSL_SESSION *cb_session = ssl->session_ctx->get_session_cb(
558
+ ssl, session_id.data(), session_id.size(), &copy);
559
+ if (cb_session == nullptr) {
560
+ return ssl_hs_ok;
561
+ }
562
+
563
+ if (cb_session == SSL_magic_pending_session_ptr()) {
564
+ // This pointer is not actually a session.
565
+ return ssl_hs_pending_session;
566
+ }
567
+ session.reset(FromOpaque(cb_session));
568
+
569
+ // Increment reference count now if the session callback asks us to do so
570
+ // (note that if the session structures returned by the callback are shared
571
+ // between threads, it must handle the reference count itself [i.e. copy ==
572
+ // 0], or things won't be thread-safe).
573
+ if (copy) {
574
+ SSL_SESSION_up_ref(session.get());
575
+ }
576
+
577
+ // Add the externally cached session to the internal cache if necessary.
578
+ if (!(ssl->session_ctx->session_cache_mode &
579
+ SSL_SESS_CACHE_NO_INTERNAL_STORE)) {
580
+ SSL_CTX_add_session(ssl->session_ctx.get(), session.get());
581
+ }
582
+ }
583
+
584
+ if (session && !ssl_session_is_time_valid(ssl, session.get())) {
585
+ // The session was from the cache, so remove it.
586
+ SSL_CTX_remove_session(ssl->session_ctx.get(), session.get());
587
+ session.reset();
588
+ }
589
+
590
+ *out_session = std::move(session);
591
+ return ssl_hs_ok;
592
+ }
593
+
594
+ enum ssl_hs_wait_t ssl_get_prev_session(SSL_HANDSHAKE *hs,
595
+ UniquePtr<SSLSession> *out_session,
596
+ bool *out_tickets_supported,
597
+ bool *out_renew_ticket,
598
+ const SSL_CLIENT_HELLO *client_hello) {
599
+ // This is used only by servers.
600
+ assert(hs->ssl->server);
601
+ UniquePtr<SSLSession> session;
602
+ bool renew_ticket = false;
603
+
604
+ // If tickets are disabled, always behave as if no tickets are present.
605
+ CBS ticket;
606
+ const bool tickets_supported =
607
+ !(SSL_get_options(hs->ssl) & SSL_OP_NO_TICKET) &&
608
+ ssl_client_hello_get_extension(client_hello, &ticket,
609
+ TLSEXT_TYPE_session_ticket);
610
+ if (tickets_supported && CBS_len(&ticket) != 0) {
611
+ switch (ssl_process_ticket(
612
+ hs, &session, &renew_ticket, ticket,
613
+ Span(client_hello->session_id, client_hello->session_id_len),
614
+ /*save_ticket=*/false)) {
615
+ case ssl_ticket_aead_success:
616
+ break;
617
+ case ssl_ticket_aead_ignore_ticket:
618
+ assert(!session);
619
+ break;
620
+ case ssl_ticket_aead_error:
621
+ return ssl_hs_error;
622
+ case ssl_ticket_aead_retry:
623
+ return ssl_hs_pending_ticket;
624
+ }
625
+ } else {
626
+ // The client didn't send a ticket, so the session ID is a real ID.
627
+ enum ssl_hs_wait_t lookup_ret = ssl_lookup_session(
628
+ hs, &session,
629
+ Span(client_hello->session_id, client_hello->session_id_len));
630
+ if (lookup_ret != ssl_hs_ok) {
631
+ return lookup_ret;
632
+ }
633
+ }
634
+
635
+ *out_session = std::move(session);
636
+ *out_tickets_supported = tickets_supported;
637
+ *out_renew_ticket = renew_ticket;
638
+ return ssl_hs_ok;
639
+ }
640
+
641
+ static bool remove_session(SSLContext *ctx, SSLSession *session, bool lock) {
642
+ if (session == nullptr || session->session_id.empty()) {
643
+ return false;
644
+ }
645
+
646
+ if (lock) {
647
+ ctx->lock.LockWrite();
648
+ }
649
+
650
+ // TODO(crbug.com/565766495): Use `SSLSession` when the lhash does.
651
+ SSL_SESSION *found_session = lh_SSL_SESSION_retrieve(ctx->sessions, session);
652
+ bool found = found_session == session;
653
+ if (found) {
654
+ found_session = lh_SSL_SESSION_delete(ctx->sessions, session);
655
+ SSL_SESSION_list_remove(ctx, session);
656
+ }
657
+
658
+ if (lock) {
659
+ ctx->lock.UnlockWrite();
660
+ }
661
+
662
+ if (found) {
663
+ // TODO(https://crbug.com/boringssl/251): Callbacks should not be called
664
+ // under a lock.
665
+ if (ctx->remove_session_cb != nullptr) {
666
+ ctx->remove_session_cb(ctx, found_session);
667
+ }
668
+ SSL_SESSION_free(found_session);
669
+ }
670
+
671
+ return found;
672
+ }
673
+
674
+ void ssl_set_session(SSLImpl *ssl, SSLSession *session) {
675
+ if (ssl->session.get() == session) {
676
+ return;
677
+ }
678
+
679
+ ssl->session = UpRef(session);
680
+ }
681
+
682
+ // locked by SSL_CTX in the calling function
683
+ static void SSL_SESSION_list_remove(SSLContext *ctx, SSLSession *session) {
684
+ if (session->next == nullptr || session->prev == nullptr) {
685
+ return;
686
+ }
687
+
688
+ if (session->next == (SSLSession *)&ctx->session_cache_tail) {
689
+ // last element in list
690
+ if (session->prev == (SSLSession *)&ctx->session_cache_head) {
691
+ // only one element in list
692
+ ctx->session_cache_head = nullptr;
693
+ ctx->session_cache_tail = nullptr;
694
+ } else {
695
+ ctx->session_cache_tail = session->prev;
696
+ session->prev->next = (SSLSession *)&(ctx->session_cache_tail);
697
+ }
698
+ } else {
699
+ if (session->prev == (SSLSession *)&ctx->session_cache_head) {
700
+ // first element in list
701
+ ctx->session_cache_head = session->next;
702
+ session->next->prev = (SSLSession *)&(ctx->session_cache_head);
703
+ } else { // middle of list
704
+ session->next->prev = session->prev;
705
+ session->prev->next = session->next;
706
+ }
707
+ }
708
+ session->prev = session->next = nullptr;
709
+ }
710
+
711
+ static void SSL_SESSION_list_add(SSLContext *ctx, SSLSession *session) {
712
+ if (session->next != nullptr && session->prev != nullptr) {
713
+ SSL_SESSION_list_remove(ctx, session);
714
+ }
715
+
716
+ if (ctx->session_cache_head == nullptr) {
717
+ ctx->session_cache_head = session;
718
+ ctx->session_cache_tail = session;
719
+ session->prev = (SSLSession *)&(ctx->session_cache_head);
720
+ session->next = (SSLSession *)&(ctx->session_cache_tail);
721
+ } else {
722
+ session->next = ctx->session_cache_head;
723
+ session->next->prev = session;
724
+ session->prev = (SSLSession *)&(ctx->session_cache_head);
725
+ ctx->session_cache_head = session;
726
+ }
727
+ }
728
+
729
+ static bool add_session_locked(SSLContext *ctx, UniquePtr<SSLSession> session) {
730
+ SSLSession *new_session = session.get();
731
+
732
+ // Sessions have intrusive linked lists, so they cannot be stored in two
733
+ // SSLContexts at once.
734
+ // TODO(crbug.com/527997772): Remove this restriction.
735
+ if ((new_session->prev != nullptr || new_session->next != nullptr)) {
736
+ return false;
737
+ }
738
+
739
+ // TODO(crbug.com/565766495): Use `SSLSession` when the lhash does.
740
+ SSL_SESSION *old_session_opaque;
741
+ if (!lh_SSL_SESSION_insert(ctx->sessions, &old_session_opaque, new_session)) {
742
+ return false;
743
+ }
744
+ SSLSession *old_session = FromOpaque(old_session_opaque);
745
+ // `ctx->sessions` took ownership of `new_session` and gave us back a
746
+ // reference to `old_session`. (`old_session` may be the same as
747
+ // `new_session`, in which case we traded identical references with
748
+ // `ctx->sessions`.)
749
+ session.release();
750
+ session.reset(old_session);
751
+
752
+ if (old_session != nullptr) {
753
+ // The session cannot have been in the session, due to the check above.
754
+ // TODO(crbug.com/527997772): Revisit this when we remove the check.
755
+ BSSL_CHECK(old_session != new_session);
756
+
757
+ // There was a session ID collision. `old_session` was replaced with
758
+ // `session` in the hash table, so `old_session` must be removed from the
759
+ // linked list to match.
760
+ SSL_SESSION_list_remove(ctx, old_session);
761
+ }
762
+
763
+ // This does not increment the reference count. Although `session` is inserted
764
+ // into two structures (a doubly-linked list and the hash table), `ctx` only
765
+ // takes one reference.
766
+ SSL_SESSION_list_add(ctx, new_session);
767
+
768
+ // Enforce any cache size limits.
769
+ if (SSL_CTX_sess_get_cache_size(ctx) > 0) {
770
+ while (lh_SSL_SESSION_num_items(ctx->sessions) >
771
+ SSL_CTX_sess_get_cache_size(ctx)) {
772
+ if (!remove_session(ctx, ctx->session_cache_tail,
773
+ /*lock=*/false)) {
774
+ break;
775
+ }
776
+ }
777
+ }
778
+
779
+ return true;
780
+ }
781
+
782
+ void ssl_update_cache(SSLImpl *ssl) {
783
+ SSLContext *ctx = ssl->session_ctx.get();
784
+ SSLSession *session = ssl->s3->established_session.get();
785
+ int mode = SSL_is_server(ssl) ? SSL_SESS_CACHE_SERVER : SSL_SESS_CACHE_CLIENT;
786
+ if (!SSL_SESSION_is_resumable(session) ||
787
+ (ctx->session_cache_mode & mode) != mode) {
788
+ return;
789
+ }
790
+
791
+ // Clients never use the internal session cache.
792
+ if (ssl->server &&
793
+ !(ctx->session_cache_mode & SSL_SESS_CACHE_NO_INTERNAL_STORE)) {
794
+ UniquePtr<SSLSession> ref = UpRef(session);
795
+ bool remove_expired_sessions = false;
796
+ {
797
+ MutexWriteLock lock(&ctx->lock);
798
+ add_session_locked(ctx, std::move(ref));
799
+
800
+ if (!(ctx->session_cache_mode & SSL_SESS_CACHE_NO_AUTO_CLEAR)) {
801
+ // Automatically flush the internal session cache every 255 connections.
802
+ ctx->handshakes_since_cache_flush++;
803
+ if (ctx->handshakes_since_cache_flush >= 255) {
804
+ remove_expired_sessions = true;
805
+ ctx->handshakes_since_cache_flush = 0;
806
+ }
807
+ }
808
+ }
809
+
810
+ if (remove_expired_sessions) {
811
+ // `SSL_CTX_flush_sessions` takes the lock we just released. We could
812
+ // merge the critical sections, but we'd then call user code under a
813
+ // lock, or compute `now` earlier, even when not flushing.
814
+ OPENSSL_timeval now = ssl_ctx_get_current_time(ssl->ctx.get());
815
+ SSL_CTX_flush_sessions(ctx, now.tv_sec);
816
+ }
817
+ }
818
+
819
+ if (ctx->new_session_cb != nullptr) {
820
+ UniquePtr<SSLSession> ref = UpRef(session);
821
+ if (ctx->new_session_cb(ssl, ref.get())) {
822
+ // `new_session_cb`'s return value signals whether it took ownership.
823
+ ref.release();
824
+ }
825
+ }
826
+ }
827
+
828
+ bool ssl_session_has_peer_cred(const SSLSession *session) {
829
+ return sk_CRYPTO_BUFFER_num(SSL_SESSION_get0_peer_certificates(session)) >
830
+ 0 ||
831
+ SSL_SESSION_get0_peer_rpk(session) != nullptr ||
832
+ session->peer_sha256_valid;
833
+ }
834
+
835
+ SSLSession *ssl_get_session(const SSLImpl *ssl) {
836
+ // Once the initial handshake completes, we return the most recently
837
+ // established session. In particular, if there is a pending renegotiation, we
838
+ // do not return information about it until it completes.
839
+ //
840
+ // Code in the handshake must either use `hs->new_session` (if updating a
841
+ // partial session) or `ssl_handshake_session` (if trying to query properties
842
+ // consistently across TLS 1.2 resumption and other handshakes).
843
+ if (ssl->s3->established_session != nullptr) {
844
+ return ssl->s3->established_session.get();
845
+ }
846
+
847
+ // Otherwise, we must be in the initial handshake.
848
+ SSL_HANDSHAKE *hs = ssl->s3->hs.get();
849
+ assert(hs != nullptr);
850
+ assert(!ssl->s3->initial_handshake_complete);
851
+
852
+ // Return the 0-RTT session, if in the 0-RTT state. While the handshake has
853
+ // not actually completed, the public accessors all report properties as if
854
+ // it has.
855
+ if (hs->early_session) {
856
+ return hs->early_session.get();
857
+ }
858
+
859
+ // Otherwise, return the partial session.
860
+ return const_cast<SSLSession *>(ssl_handshake_session(hs));
861
+ }
862
+
863
+ BSSL_NAMESPACE_END
864
+
865
+ using namespace bssl;
866
+
867
+ SSLSession::SSLSession(const SSL_X509_METHOD *method)
868
+ : RefCounted(CheckSubClass()),
869
+ x509_method(method),
870
+ extended_master_secret(false),
871
+ peer_sha256_valid(false),
872
+ not_resumable(false),
873
+ ticket_age_add_valid(false),
874
+ is_server(false),
875
+ is_quic(false),
876
+ has_application_settings(false),
877
+ is_resumable_across_names(false) {
878
+ CRYPTO_new_ex_data(&ex_data);
879
+ time = ::time(nullptr);
880
+ }
881
+
882
+ SSLSession::~SSLSession() {
883
+ CRYPTO_free_ex_data(&g_ex_data_class, &ex_data);
884
+ x509_method->session_clear(this);
885
+ }
886
+
887
+ SSL_SESSION *SSL_SESSION_new(const SSL_CTX *ctx) {
888
+ return ssl_session_new(FromOpaque(ctx)->x509_method).release();
889
+ }
890
+
891
+ int SSL_SESSION_up_ref(SSL_SESSION *session) {
892
+ FromOpaque(session)->UpRefInternal();
893
+ return 1;
894
+ }
895
+
896
+ void SSL_SESSION_free(SSL_SESSION *session) {
897
+ if (session == nullptr) {
898
+ return;
899
+ }
900
+ FromOpaque(session)->DecRefInternal();
901
+ }
902
+
903
+ const uint8_t *SSL_SESSION_get_id(const SSL_SESSION *session,
904
+ unsigned *out_len) {
905
+ const auto *session_impl = FromOpaque(session);
906
+ if (out_len != nullptr) {
907
+ *out_len = session_impl->session_id.size();
908
+ }
909
+ return session_impl->session_id.data();
910
+ }
911
+
912
+ int SSL_SESSION_set1_id(SSL_SESSION *session, const uint8_t *sid,
913
+ size_t sid_len) {
914
+ if (!FromOpaque(session)->session_id.TryCopyFrom(Span(sid, sid_len))) {
915
+ OPENSSL_PUT_ERROR(SSL, SSL_R_SSL_SESSION_ID_TOO_LONG);
916
+ return 0;
917
+ }
918
+
919
+ return 1;
920
+ }
921
+
922
+ uint32_t SSL_SESSION_get_timeout(const SSL_SESSION *session) {
923
+ return FromOpaque(session)->timeout;
924
+ }
925
+
926
+ uint64_t SSL_SESSION_get_time(const SSL_SESSION *session) {
927
+ if (session == nullptr) {
928
+ // NULL should crash, but silently accept it here for compatibility.
929
+ return 0;
930
+ }
931
+ return FromOpaque(session)->time;
932
+ }
933
+
934
+ X509 *SSL_SESSION_get0_peer(const SSL_SESSION *session) {
935
+ return FromOpaque(session)->x509_peer;
936
+ }
937
+
938
+ const STACK_OF(CRYPTO_BUFFER) *SSL_SESSION_get0_peer_certificates(
939
+ const SSL_SESSION *session) {
940
+ return FromOpaque(session)->certs.get();
941
+ }
942
+
943
+ EVP_PKEY *SSL_SESSION_get0_peer_rpk(const SSL_SESSION *session) {
944
+ return FromOpaque(session)->peer_raw_public_key.get();
945
+ }
946
+
947
+ void SSL_SESSION_get0_signed_cert_timestamp_list(const SSL_SESSION *session,
948
+ const uint8_t **out,
949
+ size_t *out_len) {
950
+ const auto *session_impl = FromOpaque(session);
951
+ if (session_impl->signed_cert_timestamp_list) {
952
+ *out = CRYPTO_BUFFER_data(session_impl->signed_cert_timestamp_list.get());
953
+ *out_len =
954
+ CRYPTO_BUFFER_len(session_impl->signed_cert_timestamp_list.get());
955
+ } else {
956
+ *out = nullptr;
957
+ *out_len = 0;
958
+ }
959
+ }
960
+
961
+ void SSL_SESSION_get0_ocsp_response(const SSL_SESSION *session,
962
+ const uint8_t **out, size_t *out_len) {
963
+ const auto *session_impl = FromOpaque(session);
964
+ if (session_impl->ocsp_response) {
965
+ *out = CRYPTO_BUFFER_data(session_impl->ocsp_response.get());
966
+ *out_len = CRYPTO_BUFFER_len(session_impl->ocsp_response.get());
967
+ } else {
968
+ *out = nullptr;
969
+ *out_len = 0;
970
+ }
971
+ }
972
+
973
+ size_t SSL_SESSION_get_master_key(const SSL_SESSION *session, uint8_t *out,
974
+ size_t max_out) {
975
+ const auto *session_impl = FromOpaque(session);
976
+ if (max_out == 0) {
977
+ return session_impl->secret.size();
978
+ }
979
+ if (max_out > session_impl->secret.size()) {
980
+ max_out = session_impl->secret.size();
981
+ }
982
+ OPENSSL_memcpy(out, session_impl->secret.data(), max_out);
983
+ return max_out;
984
+ }
985
+
986
+ uint64_t SSL_SESSION_set_time(SSL_SESSION *session, uint64_t time) {
987
+ if (session == nullptr) {
988
+ return 0;
989
+ }
990
+
991
+ FromOpaque(session)->time = time;
992
+ return time;
993
+ }
994
+
995
+ uint32_t SSL_SESSION_set_timeout(SSL_SESSION *session, uint32_t timeout) {
996
+ auto *session_impl = FromOpaque(session);
997
+ if (session_impl == nullptr) {
998
+ return 0;
999
+ }
1000
+
1001
+ session_impl->timeout = timeout;
1002
+ session_impl->auth_timeout = timeout;
1003
+ return 1;
1004
+ }
1005
+
1006
+ const uint8_t *SSL_SESSION_get0_id_context(const SSL_SESSION *session,
1007
+ unsigned *out_len) {
1008
+ const auto *session_impl = FromOpaque(session);
1009
+ if (out_len != nullptr) {
1010
+ *out_len = session_impl->sid_ctx.size();
1011
+ }
1012
+ return session_impl->sid_ctx.data();
1013
+ }
1014
+
1015
+ int SSL_SESSION_set1_id_context(SSL_SESSION *session, const uint8_t *sid_ctx,
1016
+ size_t sid_ctx_len) {
1017
+ if (!FromOpaque(session)->sid_ctx.TryCopyFrom(Span(sid_ctx, sid_ctx_len))) {
1018
+ OPENSSL_PUT_ERROR(SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG);
1019
+ return 0;
1020
+ }
1021
+
1022
+ return 1;
1023
+ }
1024
+
1025
+ int SSL_SESSION_should_be_single_use(const SSL_SESSION *session) {
1026
+ return ssl_session_protocol_version(FromOpaque(session)) >= TLS1_3_VERSION;
1027
+ }
1028
+
1029
+ int SSL_SESSION_is_resumable(const SSL_SESSION *session) {
1030
+ return ssl_session_get_type(FromOpaque(session)) !=
1031
+ SSLSessionType::kNotResumable;
1032
+ }
1033
+
1034
+ int SSL_SESSION_has_ticket(const SSL_SESSION *session) {
1035
+ return !FromOpaque(session)->ticket.empty();
1036
+ }
1037
+
1038
+ void SSL_SESSION_get0_ticket(const SSL_SESSION *session,
1039
+ const uint8_t **out_ticket, size_t *out_len) {
1040
+ const auto *session_impl = FromOpaque(session);
1041
+ if (out_ticket != nullptr) {
1042
+ *out_ticket = session_impl->ticket.data();
1043
+ }
1044
+ *out_len = session_impl->ticket.size();
1045
+ }
1046
+
1047
+ int SSL_SESSION_set_ticket(SSL_SESSION *session, const uint8_t *ticket,
1048
+ size_t ticket_len) {
1049
+ return FromOpaque(session)->ticket.CopyFrom(Span(ticket, ticket_len));
1050
+ }
1051
+
1052
+ uint32_t SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session) {
1053
+ return FromOpaque(session)->ticket_lifetime_hint;
1054
+ }
1055
+
1056
+ const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *session) {
1057
+ return FromOpaque(session)->cipher;
1058
+ }
1059
+
1060
+ int SSL_SESSION_has_peer_sha256(const SSL_SESSION *session) {
1061
+ return FromOpaque(session)->peer_sha256_valid;
1062
+ }
1063
+
1064
+ void SSL_SESSION_get0_peer_sha256(const SSL_SESSION *session,
1065
+ const uint8_t **out_ptr, size_t *out_len) {
1066
+ const auto *session_impl = FromOpaque(session);
1067
+ if (session_impl->peer_sha256_valid) {
1068
+ *out_ptr = session_impl->peer_sha256;
1069
+ *out_len = sizeof(session_impl->peer_sha256);
1070
+ } else {
1071
+ *out_ptr = nullptr;
1072
+ *out_len = 0;
1073
+ }
1074
+ }
1075
+
1076
+ int SSL_SESSION_is_resumable_across_names(const SSL_SESSION *session) {
1077
+ return FromOpaque(session)->is_resumable_across_names;
1078
+ }
1079
+
1080
+ int SSL_SESSION_early_data_capable(const SSL_SESSION *session) {
1081
+ const auto *session_impl = FromOpaque(session);
1082
+ return ssl_session_protocol_version(session_impl) >= TLS1_3_VERSION &&
1083
+ session_impl->ticket_max_early_data != 0;
1084
+ }
1085
+
1086
+ SSL_SESSION *SSL_SESSION_copy_without_early_data(SSL_SESSION *session) {
1087
+ auto *session_impl = FromOpaque(session);
1088
+ if (!SSL_SESSION_early_data_capable(session)) {
1089
+ return UpRef(session).release();
1090
+ }
1091
+
1092
+ UniquePtr<SSLSession> copy =
1093
+ SSL_SESSION_dup(session_impl, SSL_SESSION_DUP_ALL);
1094
+ if (!copy) {
1095
+ return nullptr;
1096
+ }
1097
+
1098
+ copy->ticket_max_early_data = 0;
1099
+ // Copied sessions are non-resumable until they're completely filled in.
1100
+ copy->not_resumable = session_impl->not_resumable;
1101
+ assert(!SSL_SESSION_early_data_capable(copy.get()));
1102
+ return copy.release();
1103
+ }
1104
+
1105
+ SSL_SESSION *SSL_magic_pending_session_ptr() {
1106
+ return (SSL_SESSION *)&g_pending_session_magic;
1107
+ }
1108
+
1109
+ SSL_SESSION *SSL_get_session(const SSL *ssl) {
1110
+ return ssl_get_session(FromOpaque(ssl));
1111
+ }
1112
+
1113
+ SSL_SESSION *SSL_get1_session(SSL *ssl) {
1114
+ SSL_SESSION *ret = SSL_get_session(ssl);
1115
+ if (ret != nullptr) {
1116
+ SSL_SESSION_up_ref(ret);
1117
+ }
1118
+ return ret;
1119
+ }
1120
+
1121
+ int SSL_SESSION_get_ex_new_index(long argl, void *argp,
1122
+ CRYPTO_EX_unused *unused,
1123
+ CRYPTO_EX_dup *dup_unused,
1124
+ CRYPTO_EX_free *free_func) {
1125
+ return CRYPTO_get_ex_new_index_ex(&g_ex_data_class, argl, argp, free_func);
1126
+ }
1127
+
1128
+ int SSL_SESSION_set_ex_data(SSL_SESSION *session, int idx, void *arg) {
1129
+ return CRYPTO_set_ex_data(&FromOpaque(session)->ex_data, idx, arg);
1130
+ }
1131
+
1132
+ void *SSL_SESSION_get_ex_data(const SSL_SESSION *session, int idx) {
1133
+ return CRYPTO_get_ex_data(&FromOpaque(session)->ex_data, idx);
1134
+ }
1135
+
1136
+ int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session) {
1137
+ auto *ctx_impl = FromOpaque(ctx);
1138
+ UniquePtr<SSLSession> owned_session = UpRef(FromOpaque(session));
1139
+ MutexWriteLock lock(&ctx_impl->lock);
1140
+ return add_session_locked(ctx_impl, std::move(owned_session));
1141
+ }
1142
+
1143
+ int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session) {
1144
+ return remove_session(FromOpaque(ctx), FromOpaque(session), /*lock=*/true);
1145
+ }
1146
+
1147
+ int SSL_set_session(SSL *ssl, SSL_SESSION *session) {
1148
+ auto *ssl_impl = FromOpaque(ssl);
1149
+ // SSL_set_session may only be called before the handshake has started.
1150
+ if (ssl_impl->s3->initial_handshake_complete || //
1151
+ ssl_impl->s3->hs == nullptr || //
1152
+ ssl_impl->s3->hs->state != 0) {
1153
+ abort();
1154
+ }
1155
+
1156
+ ssl_set_session(ssl_impl, FromOpaque(session));
1157
+ return 1;
1158
+ }
1159
+
1160
+ uint32_t SSL_CTX_set_timeout(SSL_CTX *ctx, uint32_t timeout) {
1161
+ if (ctx == nullptr) {
1162
+ return 0;
1163
+ }
1164
+
1165
+ // Historically, zero was treated as `SSL_DEFAULT_SESSION_TIMEOUT`.
1166
+ if (timeout == 0) {
1167
+ timeout = SSL_DEFAULT_SESSION_TIMEOUT;
1168
+ }
1169
+
1170
+ return std::exchange(FromOpaque(ctx)->session_timeout, timeout);
1171
+ }
1172
+
1173
+ uint32_t SSL_CTX_get_timeout(const SSL_CTX *ctx) {
1174
+ if (ctx == nullptr) {
1175
+ return 0;
1176
+ }
1177
+
1178
+ return FromOpaque(ctx)->session_timeout;
1179
+ }
1180
+
1181
+ void SSL_CTX_set_session_psk_dhe_timeout(SSL_CTX *ctx, uint32_t timeout) {
1182
+ FromOpaque(ctx)->session_psk_dhe_timeout = timeout;
1183
+ }
1184
+
1185
+ typedef struct timeout_param_st {
1186
+ SSLContext *ctx;
1187
+ uint64_t time;
1188
+ LHASH_OF(SSL_SESSION) *cache;
1189
+ } TIMEOUT_PARAM;
1190
+
1191
+ // TODO(crbug.com/565766495): Take `SSLSession` when the lhash does.
1192
+ static void timeout_doall_arg(SSL_SESSION *session, void *void_param) {
1193
+ TIMEOUT_PARAM *param = reinterpret_cast<TIMEOUT_PARAM *>(void_param);
1194
+ auto *session_impl = FromOpaque(session);
1195
+
1196
+ if (param->time == 0 || //
1197
+ session_impl->time + session_impl->timeout < session_impl->time || //
1198
+ param->time > (session_impl->time + session_impl->timeout)) {
1199
+ // TODO(davidben): This can probably just call `remove_session`.
1200
+ (void)lh_SSL_SESSION_delete(param->cache, session);
1201
+ SSL_SESSION_list_remove(param->ctx, session_impl);
1202
+ // TODO(https://crbug.com/boringssl/251): Callbacks should not be called
1203
+ // under a lock.
1204
+ if (param->ctx->remove_session_cb != nullptr) {
1205
+ param->ctx->remove_session_cb(param->ctx, session);
1206
+ }
1207
+ SSL_SESSION_free(session);
1208
+ }
1209
+ }
1210
+
1211
+ void SSL_CTX_flush_sessions(SSL_CTX *ctx, uint64_t time) {
1212
+ auto *ctx_impl = FromOpaque(ctx);
1213
+ TIMEOUT_PARAM tp;
1214
+ tp.ctx = ctx_impl;
1215
+ tp.cache = ctx_impl->sessions;
1216
+ if (tp.cache == nullptr) {
1217
+ return;
1218
+ }
1219
+ tp.time = time;
1220
+ MutexWriteLock lock(&ctx_impl->lock);
1221
+ lh_SSL_SESSION_doall_arg(tp.cache, timeout_doall_arg, &tp);
1222
+ }
1223
+
1224
+ void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx,
1225
+ int (*cb)(SSL *ssl, SSL_SESSION *session)) {
1226
+ FromOpaque(ctx)->new_session_cb = cb;
1227
+ }
1228
+
1229
+ int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx))(SSL *ssl, SSL_SESSION *session) {
1230
+ return FromOpaque(ctx)->new_session_cb;
1231
+ }
1232
+
1233
+ void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx,
1234
+ void (*cb)(SSL_CTX *ctx,
1235
+ SSL_SESSION *session)) {
1236
+ FromOpaque(ctx)->remove_session_cb = cb;
1237
+ }
1238
+
1239
+ void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx))(SSL_CTX *ctx,
1240
+ SSL_SESSION *session) {
1241
+ return FromOpaque(ctx)->remove_session_cb;
1242
+ }
1243
+
1244
+ void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx,
1245
+ SSL_SESSION *(*cb)(SSL *ssl, const uint8_t *id,
1246
+ int id_len, int *out_copy)) {
1247
+ FromOpaque(ctx)->get_session_cb = cb;
1248
+ }
1249
+
1250
+ SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx))(SSL *ssl,
1251
+ const uint8_t *id,
1252
+ int id_len,
1253
+ int *out_copy) {
1254
+ return FromOpaque(ctx)->get_session_cb;
1255
+ }
1256
+
1257
+ void SSL_CTX_set_resumption_across_names_enabled(SSL_CTX *ctx, int enabled) {
1258
+ FromOpaque(ctx)->resumption_across_names_enabled = !!enabled;
1259
+ }
1260
+
1261
+ void SSL_set_resumption_across_names_enabled(SSL *ssl, int enabled) {
1262
+ FromOpaque(ssl)->resumption_across_names_enabled = !!enabled;
1263
+ }
1264
+
1265
+ void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(const SSL *ssl,
1266
+ int type, int value)) {
1267
+ FromOpaque(ctx)->info_callback = cb;
1268
+ }
1269
+
1270
+ void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(const SSL *ssl, int type,
1271
+ int value) {
1272
+ return FromOpaque(ctx)->info_callback;
1273
+ }