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
@@ -1,1526 +0,0 @@
1
- \ Copyright (c) 2016 Thomas Pornin <pornin@bolet.org>
2
- \
3
- \ Permission is hereby granted, free of charge, to any person obtaining
4
- \ a copy of this software and associated documentation files (the
5
- \ "Software"), to deal in the Software without restriction, including
6
- \ without limitation the rights to use, copy, modify, merge, publish,
7
- \ distribute, sublicense, and/or sell copies of the Software, and to
8
- \ permit persons to whom the Software is furnished to do so, subject to
9
- \ the following conditions:
10
- \
11
- \ The above copyright notice and this permission notice shall be
12
- \ included in all copies or substantial portions of the Software.
13
- \
14
- \ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- \ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- \ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- \ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18
- \ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19
- \ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- \ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- \ SOFTWARE.
22
-
23
- preamble {
24
-
25
- #include "inner.h"
26
-
27
- /*
28
- * Implementation Notes
29
- * --------------------
30
- *
31
- * The C code pushes the data by chunks; all decoding is done in the
32
- * T0 code. The cert_length value is set to the certificate length when
33
- * a new certificate is started; the T0 code picks it up as outer limit,
34
- * and decoding functions use it to ensure that no attempt is made at
35
- * reading past it. The T0 code also checks that once the certificate is
36
- * decoded, there are no trailing bytes.
37
- *
38
- * The T0 code sets cert_length to 0 when the certificate is fully
39
- * decoded.
40
- *
41
- * The C code must still perform two checks:
42
- *
43
- * -- If the certificate length is 0, then the T0 code will not be
44
- * invoked at all. This invalid condition must thus be reported by the
45
- * C code.
46
- *
47
- * -- When reaching the end of certificate, the C code must verify that
48
- * the certificate length has been set to 0, thereby signaling that
49
- * the T0 code properly decoded a certificate.
50
- *
51
- * Processing of a chain works in the following way:
52
- *
53
- * -- The error flag is set to a non-zero value when validation is
54
- * finished. The value is either BR_ERR_X509_OK (validation is
55
- * successful) or another non-zero error code. When a non-zero error
56
- * code is obtained, the remaining bytes in the current certificate and
57
- * the subsequent certificates (if any) are completely ignored.
58
- *
59
- * -- Each certificate is decoded in due course, with the following
60
- * "interesting points":
61
- *
62
- * -- Start of the TBS: the multihash engine is reset and activated.
63
- *
64
- * -- Start of the issuer DN: the secondary hash engine is started,
65
- * to process the encoded issuer DN.
66
- *
67
- * -- End of the issuer DN: the secondary hash engine is stopped. The
68
- * resulting hash value is computed and then copied into the
69
- * next_dn_hash[] buffer.
70
- *
71
- * -- Start of the subject DN: the secondary hash engine is started,
72
- * to process the encoded subject DN.
73
- *
74
- * -- For the EE certificate only: the Common Name, if any, is matched
75
- * against the expected server name.
76
- *
77
- * -- End of the subject DN: the secondary hash engine is stopped. The
78
- * resulting hash value is computed into the pad. It is then processed:
79
- *
80
- * -- If this is the EE certificate, then the hash is ignored
81
- * (except for direct trust processing, see later; the hash is
82
- * simply left in current_dn_hash[]).
83
- *
84
- * -- Otherwise, the hashed subject DN is compared with the saved
85
- * hash value (in saved_dn_hash[]). They must match.
86
- *
87
- * Either way, the next_dn_hash[] value is then copied into the
88
- * saved_dn_hash[] value. Thus, at that point, saved_dn_hash[]
89
- * contains the hash of the issuer DN for the current certificate,
90
- * and current_dn_hash[] contains the hash of the subject DN for the
91
- * current certificate.
92
- *
93
- * -- Public key: it is decoded into the cert_pkey[] buffer. Unknown
94
- * key types are reported at that point.
95
- *
96
- * -- If this is the EE certificate, then the key type is compared
97
- * with the expected key type (initialization parameter). The public
98
- * key data is copied to ee_pkey_data[]. The key and hashed subject
99
- * DN are also compared with the "direct trust" keys; if the key
100
- * and DN are matched, then validation ends with a success.
101
- *
102
- * -- Otherwise, the saved signature (cert_sig[]) is verified
103
- * against the saved TBS hash (tbs_hash[]) and that freshly
104
- * decoded public key. Failure here ends validation with an error.
105
- *
106
- * -- Extensions: extension values are processed in due order.
107
- *
108
- * -- Basic Constraints: for all certificates except EE, must be
109
- * present, indicate a CA, and have a path length compatible with
110
- * the chain length so far.
111
- *
112
- * -- Key Usage: for the EE, if present, must allow signatures
113
- * or encryption/key exchange, as required for the cipher suite.
114
- * For non-EE, if present, must have the "certificate sign" bit.
115
- *
116
- * -- Subject Alt Name: for the EE, dNSName names are matched
117
- * against the server name. Ignored for non-EE.
118
- *
119
- * -- Authority Key Identifier, Subject Key Identifier, Issuer
120
- * Alt Name, Subject Directory Attributes, CRL Distribution Points
121
- * Freshest CRL, Authority Info Access and Subject Info Access
122
- * extensions are always ignored: they either contain only
123
- * informative data, or they relate to revocation processing, which
124
- * we explicitly do not support.
125
- *
126
- * -- All other extensions are ignored if non-critical. If a
127
- * critical extension other than the ones above is encountered,
128
- * then a failure is reported.
129
- *
130
- * -- End of the TBS: the multihash engine is stopped.
131
- *
132
- * -- Signature algorithm: the signature algorithm on the
133
- * certificate is decoded. A failure is reported if that algorithm
134
- * is unknown. The hashed TBS corresponding to the signature hash
135
- * function is computed and stored in tbs_hash[] (if not supported,
136
- * then a failure is reported). The hash OID and length are stored
137
- * in cert_sig_hash_oid and cert_sig_hash_len.
138
- *
139
- * -- Signature value: the signature value is copied into the
140
- * cert_sig[] array.
141
- *
142
- * -- Certificate end: the hashed issuer DN (saved_dn_hash[]) is
143
- * looked up in the trust store (CA trust anchors only); for all
144
- * that match, the signature (cert_sig[]) is verified against the
145
- * anchor public key (hashed TBS is in tbs_hash[]). If one of these
146
- * signatures is valid, then validation ends with a success.
147
- *
148
- * -- If the chain end is reached without obtaining a validation success,
149
- * then validation is reported as failed.
150
- */
151
-
152
- #if BR_USE_UNIX_TIME
153
- #include <time.h>
154
- #endif
155
-
156
- #if BR_USE_WIN32_TIME
157
- #include <windows.h>
158
- #endif
159
-
160
- /*
161
- * The T0 compiler will produce these prototypes declarations in the
162
- * header.
163
- *
164
- void br_x509_minimal_init_main(void *ctx);
165
- void br_x509_minimal_run(void *ctx);
166
- */
167
-
168
- /* see bearssl_x509.h */
169
- void
170
- br_x509_minimal_init(br_x509_minimal_context *ctx,
171
- const br_hash_class *dn_hash_impl,
172
- const br_x509_trust_anchor *trust_anchors, size_t trust_anchors_num)
173
- {
174
- memset(ctx, 0, sizeof *ctx);
175
- ctx->vtable = &br_x509_minimal_vtable;
176
- ctx->dn_hash_impl = dn_hash_impl;
177
- ctx->trust_anchors = trust_anchors;
178
- ctx->trust_anchors_num = trust_anchors_num;
179
- }
180
-
181
- static void
182
- xm_start_chain(const br_x509_class **ctx, const char *server_name)
183
- {
184
- br_x509_minimal_context *cc;
185
- size_t u;
186
-
187
- cc = (br_x509_minimal_context *)(void *)ctx;
188
- for (u = 0; u < cc->num_name_elts; u ++) {
189
- cc->name_elts[u].status = 0;
190
- cc->name_elts[u].buf[0] = 0;
191
- }
192
- memset(&cc->pkey, 0, sizeof cc->pkey);
193
- cc->num_certs = 0;
194
- cc->err = 0;
195
- cc->cpu.dp = cc->dp_stack;
196
- cc->cpu.rp = cc->rp_stack;
197
- br_x509_minimal_init_main(&cc->cpu);
198
- if (server_name == NULL || *server_name == 0) {
199
- cc->server_name = NULL;
200
- } else {
201
- cc->server_name = server_name;
202
- }
203
- }
204
-
205
- static void
206
- xm_start_cert(const br_x509_class **ctx, uint32_t length)
207
- {
208
- br_x509_minimal_context *cc;
209
-
210
- cc = (br_x509_minimal_context *)(void *)ctx;
211
- if (cc->err != 0) {
212
- return;
213
- }
214
- if (length == 0) {
215
- cc->err = BR_ERR_X509_TRUNCATED;
216
- return;
217
- }
218
- cc->cert_length = length;
219
- }
220
-
221
- static void
222
- xm_append(const br_x509_class **ctx, const unsigned char *buf, size_t len)
223
- {
224
- br_x509_minimal_context *cc;
225
-
226
- cc = (br_x509_minimal_context *)(void *)ctx;
227
- if (cc->err != 0) {
228
- return;
229
- }
230
- cc->hbuf = buf;
231
- cc->hlen = len;
232
- br_x509_minimal_run(&cc->cpu);
233
- }
234
-
235
- static void
236
- xm_end_cert(const br_x509_class **ctx)
237
- {
238
- br_x509_minimal_context *cc;
239
-
240
- cc = (br_x509_minimal_context *)(void *)ctx;
241
- if (cc->err == 0 && cc->cert_length != 0) {
242
- cc->err = BR_ERR_X509_TRUNCATED;
243
- }
244
- cc->num_certs ++;
245
- }
246
-
247
- static unsigned
248
- xm_end_chain(const br_x509_class **ctx)
249
- {
250
- br_x509_minimal_context *cc;
251
-
252
- cc = (br_x509_minimal_context *)(void *)ctx;
253
- if (cc->err == 0) {
254
- if (cc->num_certs == 0) {
255
- cc->err = BR_ERR_X509_EMPTY_CHAIN;
256
- } else {
257
- cc->err = BR_ERR_X509_NOT_TRUSTED;
258
- }
259
- } else if (cc->err == BR_ERR_X509_OK) {
260
- return 0;
261
- }
262
- return (unsigned)cc->err;
263
- }
264
-
265
- static const br_x509_pkey *
266
- xm_get_pkey(const br_x509_class *const *ctx, unsigned *usages)
267
- {
268
- br_x509_minimal_context *cc;
269
-
270
- cc = (br_x509_minimal_context *)(void *)ctx;
271
- if (cc->err == BR_ERR_X509_OK
272
- || cc->err == BR_ERR_X509_NOT_TRUSTED)
273
- {
274
- if (usages != NULL) {
275
- *usages = cc->key_usages;
276
- }
277
- return &((br_x509_minimal_context *)(void *)ctx)->pkey;
278
- } else {
279
- return NULL;
280
- }
281
- }
282
-
283
- /* see bearssl_x509.h */
284
- const br_x509_class br_x509_minimal_vtable = {
285
- sizeof(br_x509_minimal_context),
286
- xm_start_chain,
287
- xm_start_cert,
288
- xm_append,
289
- xm_end_cert,
290
- xm_end_chain,
291
- xm_get_pkey
292
- };
293
-
294
- #define CTX ((br_x509_minimal_context *)(void *)((unsigned char *)t0ctx - offsetof(br_x509_minimal_context, cpu)))
295
- #define CONTEXT_NAME br_x509_minimal_context
296
-
297
- #define DNHASH_LEN ((CTX->dn_hash_impl->desc >> BR_HASHDESC_OUT_OFF) & BR_HASHDESC_OUT_MASK)
298
-
299
- /*
300
- * Hash a DN (from a trust anchor) into the provided buffer. This uses the
301
- * DN hash implementation and context structure from the X.509 engine
302
- * context.
303
- */
304
- static void
305
- hash_dn(br_x509_minimal_context *ctx, const void *dn, size_t len,
306
- unsigned char *out)
307
- {
308
- ctx->dn_hash_impl->init(&ctx->dn_hash.vtable);
309
- ctx->dn_hash_impl->update(&ctx->dn_hash.vtable, dn, len);
310
- ctx->dn_hash_impl->out(&ctx->dn_hash.vtable, out);
311
- }
312
-
313
- /*
314
- * Compare two big integers for equality. The integers use unsigned big-endian
315
- * encoding; extra leading bytes (of value 0) are allowed.
316
- */
317
- static int
318
- eqbigint(const unsigned char *b1, size_t len1,
319
- const unsigned char *b2, size_t len2)
320
- {
321
- while (len1 > 0 && *b1 == 0) {
322
- b1 ++;
323
- len1 --;
324
- }
325
- while (len2 > 0 && *b2 == 0) {
326
- b2 ++;
327
- len2 --;
328
- }
329
- if (len1 != len2) {
330
- return 0;
331
- }
332
- return memcmp(b1, b2, len1) == 0;
333
- }
334
-
335
- /*
336
- * Compare two strings for equality, in a case-insensitive way. This
337
- * function handles casing only for ASCII letters.
338
- */
339
- static int
340
- eqnocase(const void *s1, const void *s2, size_t len)
341
- {
342
- const unsigned char *buf1, *buf2;
343
-
344
- buf1 = s1;
345
- buf2 = s2;
346
- while (len -- > 0) {
347
- int x1, x2;
348
-
349
- x1 = *buf1 ++;
350
- x2 = *buf2 ++;
351
- if (x1 >= 'A' && x1 <= 'Z') {
352
- x1 += 'a' - 'A';
353
- }
354
- if (x2 >= 'A' && x2 <= 'Z') {
355
- x2 += 'a' - 'A';
356
- }
357
- if (x1 != x2) {
358
- return 0;
359
- }
360
- }
361
- return 1;
362
- }
363
-
364
- static int verify_signature(br_x509_minimal_context *ctx,
365
- const br_x509_pkey *pk);
366
-
367
- }
368
-
369
- postamble {
370
-
371
- /*
372
- * Verify the signature on the certificate with the provided public key.
373
- * This function checks the public key type with regards to the expected
374
- * type. Returned value is either 0 on success, or a non-zero error code.
375
- */
376
- static int
377
- verify_signature(br_x509_minimal_context *ctx, const br_x509_pkey *pk)
378
- {
379
- int kt;
380
-
381
- kt = ctx->cert_signer_key_type;
382
- if ((pk->key_type & 0x0F) != kt) {
383
- return BR_ERR_X509_WRONG_KEY_TYPE;
384
- }
385
- switch (kt) {
386
- unsigned char tmp[64];
387
-
388
- case BR_KEYTYPE_RSA:
389
- if (ctx->irsa == 0) {
390
- return BR_ERR_X509_UNSUPPORTED;
391
- }
392
- if (!ctx->irsa(ctx->cert_sig, ctx->cert_sig_len,
393
- &t0_datablock[ctx->cert_sig_hash_oid],
394
- ctx->cert_sig_hash_len, &pk->key.rsa, tmp))
395
- {
396
- return BR_ERR_X509_BAD_SIGNATURE;
397
- }
398
- if (memcmp(ctx->tbs_hash, tmp, ctx->cert_sig_hash_len) != 0) {
399
- return BR_ERR_X509_BAD_SIGNATURE;
400
- }
401
- return 0;
402
-
403
- case BR_KEYTYPE_EC:
404
- if (ctx->iecdsa == 0) {
405
- return BR_ERR_X509_UNSUPPORTED;
406
- }
407
- if (!ctx->iecdsa(ctx->iec, ctx->tbs_hash,
408
- ctx->cert_sig_hash_len, &pk->key.ec,
409
- ctx->cert_sig, ctx->cert_sig_len))
410
- {
411
- return BR_ERR_X509_BAD_SIGNATURE;
412
- }
413
- return 0;
414
-
415
- default:
416
- return BR_ERR_X509_UNSUPPORTED;
417
- }
418
- }
419
-
420
- }
421
-
422
- cc: read8-low ( -- x ) {
423
- if (CTX->hlen == 0) {
424
- T0_PUSHi(-1);
425
- } else {
426
- unsigned char x = *CTX->hbuf ++;
427
- if (CTX->do_mhash) {
428
- br_multihash_update(&CTX->mhash, &x, 1);
429
- }
430
- if (CTX->do_dn_hash) {
431
- CTX->dn_hash_impl->update(&CTX->dn_hash.vtable, &x, 1);
432
- }
433
- CTX->hlen --;
434
- T0_PUSH(x);
435
- }
436
- }
437
-
438
- addr: cert_length
439
- addr: num_certs
440
-
441
- cc: read-blob-inner ( addr len -- addr len ) {
442
- uint32_t len = T0_POP();
443
- uint32_t addr = T0_POP();
444
- size_t clen = CTX->hlen;
445
- if (clen > len) {
446
- clen = (size_t)len;
447
- }
448
- if (addr != 0) {
449
- memcpy((unsigned char *)CTX + addr, CTX->hbuf, clen);
450
- }
451
- if (CTX->do_mhash) {
452
- br_multihash_update(&CTX->mhash, CTX->hbuf, clen);
453
- }
454
- if (CTX->do_dn_hash) {
455
- CTX->dn_hash_impl->update(
456
- &CTX->dn_hash.vtable, CTX->hbuf, clen);
457
- }
458
- CTX->hbuf += clen;
459
- CTX->hlen -= clen;
460
- T0_PUSH(addr + clen);
461
- T0_PUSH(len - clen);
462
- }
463
-
464
- \ Compute the TBS hash, using the provided hash ID. The hash value is
465
- \ written in the tbs_hash[] array, and the hash length is returned. If
466
- \ the requested hash function is not supported, then 0 is returned.
467
- cc: compute-tbs-hash ( id -- hashlen ) {
468
- int id = T0_POPi();
469
- size_t len;
470
- len = br_multihash_out(&CTX->mhash, id, CTX->tbs_hash);
471
- T0_PUSH(len);
472
- }
473
-
474
- \ Push true (-1) if no server name is expected in the EE certificate.
475
- cc: zero-server-name ( -- bool ) {
476
- T0_PUSHi(-(CTX->server_name == NULL));
477
- }
478
-
479
- addr: key_usages
480
- addr: cert_sig
481
- addr: cert_sig_len
482
- addr: cert_signer_key_type
483
- addr: cert_sig_hash_oid
484
- addr: cert_sig_hash_len
485
- addr: tbs_hash
486
- addr: min_rsa_size
487
-
488
- \ Start TBS hash computation. The hash functions are reinitialised.
489
- cc: start-tbs-hash ( -- ) {
490
- br_multihash_init(&CTX->mhash);
491
- CTX->do_mhash = 1;
492
- }
493
-
494
- \ Stop TBS hash computation.
495
- cc: stop-tbs-hash ( -- ) {
496
- CTX->do_mhash = 0;
497
- }
498
-
499
- \ Start DN hash computation.
500
- cc: start-dn-hash ( -- ) {
501
- CTX->dn_hash_impl->init(&CTX->dn_hash.vtable);
502
- CTX->do_dn_hash = 1;
503
- }
504
-
505
- \ Terminate DN hash computation and write the DN hash into the
506
- \ current_dn_hash buffer.
507
- cc: compute-dn-hash ( -- ) {
508
- CTX->dn_hash_impl->out(&CTX->dn_hash.vtable, CTX->current_dn_hash);
509
- CTX->do_dn_hash = 0;
510
- }
511
-
512
- \ Get the length of hash values obtained with the DN hasher.
513
- cc: dn-hash-length ( -- len ) {
514
- T0_PUSH(DNHASH_LEN);
515
- }
516
-
517
- \ Copy data between two areas in the context.
518
- cc: blobcopy ( addr-dst addr-src len -- ) {
519
- size_t len = T0_POP();
520
- unsigned char *src = (unsigned char *)CTX + T0_POP();
521
- unsigned char *dst = (unsigned char *)CTX + T0_POP();
522
- memcpy(dst, src, len);
523
- }
524
-
525
- addr: current_dn_hash
526
- addr: next_dn_hash
527
- addr: saved_dn_hash
528
-
529
- \ Read a DN, hashing it into current_dn_hash. The DN contents are not
530
- \ inspected (only the outer tag, for SEQUENCE, is checked).
531
- : read-DN ( lim -- lim )
532
- start-dn-hash
533
- read-sequence-open skip-close-elt
534
- compute-dn-hash ;
535
-
536
- cc: offset-name-element ( san -- n ) {
537
- unsigned san = T0_POP();
538
- size_t u;
539
-
540
- for (u = 0; u < CTX->num_name_elts; u ++) {
541
- if (CTX->name_elts[u].status == 0) {
542
- const unsigned char *oid;
543
- size_t len, off;
544
-
545
- oid = CTX->name_elts[u].oid;
546
- if (san) {
547
- if (oid[0] != 0 || oid[1] != 0) {
548
- continue;
549
- }
550
- off = 2;
551
- } else {
552
- off = 0;
553
- }
554
- len = oid[off];
555
- if (len != 0 && len == CTX->pad[0]
556
- && memcmp(oid + off + 1,
557
- CTX->pad + 1, len) == 0)
558
- {
559
- T0_PUSH(u);
560
- T0_RET();
561
- }
562
- }
563
- }
564
- T0_PUSHi(-1);
565
- }
566
-
567
- cc: copy-name-element ( bool offbuf -- ) {
568
- size_t len;
569
- int32_t off = T0_POPi();
570
- int ok = T0_POPi();
571
-
572
- if (off >= 0) {
573
- br_name_element *ne = &CTX->name_elts[off];
574
-
575
- if (ok) {
576
- len = CTX->pad[0];
577
- if (len < ne->len) {
578
- memcpy(ne->buf, CTX->pad + 1, len);
579
- ne->buf[len] = 0;
580
- ne->status = 1;
581
- } else {
582
- ne->status = -1;
583
- }
584
- } else {
585
- ne->status = -1;
586
- }
587
- }
588
- }
589
-
590
- cc: copy-name-SAN ( bool tag -- ) {
591
- unsigned tag = T0_POP();
592
- unsigned ok = T0_POP();
593
- size_t u, len;
594
-
595
- len = CTX->pad[0];
596
- for (u = 0; u < CTX->num_name_elts; u ++) {
597
- br_name_element *ne;
598
-
599
- ne = &CTX->name_elts[u];
600
- if (ne->status == 0 && ne->oid[0] == 0 && ne->oid[1] == tag) {
601
- if (ok && ne->len > len) {
602
- memcpy(ne->buf, CTX->pad + 1, len);
603
- ne->buf[len] = 0;
604
- ne->status = 1;
605
- } else {
606
- ne->status = -1;
607
- }
608
- break;
609
- }
610
- }
611
- }
612
-
613
- \ Read a value, decoding string types. If the string type is recognised
614
- \ and the value could be converted to UTF-8 into the pad, then true (-1)
615
- \ is returned; in all other cases, false (0) is returned. Either way, the
616
- \ object is consumed.
617
- : read-string ( lim -- lim bool )
618
- read-tag case
619
- \ UTF8String
620
- 12 of check-primitive read-value-UTF8 endof
621
- \ NumericString
622
- 18 of check-primitive read-value-latin1 endof
623
- \ PrintableString
624
- 19 of check-primitive read-value-latin1 endof
625
- \ TeletexString
626
- 20 of check-primitive read-value-latin1 endof
627
- \ IA5String
628
- 22 of check-primitive read-value-latin1 endof
629
- \ BMPString
630
- 30 of check-primitive read-value-UTF16 endof
631
- 2drop read-length-skip 0 0
632
- endcase ;
633
-
634
- \ Read a DN for the EE. The normalized DN hash is computed and stored in the
635
- \ current_dn_hash.
636
- \ Name elements are gathered. Also, the Common Name is matched against the
637
- \ intended server name.
638
- \ Returned value is true (-1) if the CN matches the intended server name,
639
- \ false (0) otherwise.
640
- : read-DN-EE ( lim -- lim bool )
641
- \ Flag will be set to true if there is a CN and it matches the
642
- \ intended server name.
643
- 0 { eename-matches }
644
-
645
- \ Activate DN hashing.
646
- start-dn-hash
647
-
648
- \ Parse the DN structure: it is a SEQUENCE of SET of
649
- \ AttributeTypeAndValue. Each AttributeTypeAndValue is a
650
- \ SEQUENCE { OBJECT IDENTIFIER, ANY }.
651
- read-sequence-open
652
- begin
653
- dup while
654
-
655
- read-tag 0x11 check-tag-constructed read-length-open-elt
656
- dup ifnot ERR_X509_BAD_DN fail then
657
- begin
658
- dup while
659
-
660
- read-sequence-open
661
-
662
- \ Read the OID. If the OID could not be read (too
663
- \ long) then the first pad byte will be 0.
664
- read-OID drop
665
-
666
- \ If it is the Common Name then we'll need to
667
- \ match it against the intended server name (if
668
- \ applicable).
669
- id-at-commonName eqOID { isCN }
670
-
671
- \ Get offset for reception buffer for that element
672
- \ (or -1).
673
- 0 offset-name-element { offbuf }
674
-
675
- \ Try to read the value as a string.
676
- read-string
677
-
678
- \ If the value could be decoded as a string,
679
- \ copy it and/or match it, as appropriate.
680
- dup isCN and if
681
- match-server-name if
682
- -1 >eename-matches
683
- then
684
- then
685
- offbuf copy-name-element
686
-
687
- \ Close the SEQUENCE
688
- close-elt
689
-
690
- repeat
691
- close-elt
692
- repeat
693
- close-elt
694
-
695
- \ Compute DN hash and deactivate DN hashing.
696
- compute-dn-hash
697
-
698
- \ Return the CN match flag.
699
- eename-matches ;
700
-
701
- \ Check the provided validity range against the current (or configured)
702
- \ date and time ("na" = notAfter, "nb = notBefore). Returned value:
703
- \ -1 current date/time is before the notBefore date
704
- \ 0 current date/time is within the allowed range
705
- \ +1 current date/time is after the notAfter range
706
- \ If the current date/time is not available, then this function triggers a
707
- \ failure and does not return.
708
- cc: check-validity-range ( na-days na-seconds nb-days nb-seconds -- int ) {
709
- uint32_t nbs = T0_POP();
710
- uint32_t nbd = T0_POP();
711
- uint32_t nas = T0_POP();
712
- uint32_t nad = T0_POP();
713
- int r;
714
- if (CTX->itime != 0) {
715
- r = CTX->itime(CTX->itime_ctx, nbd, nbs, nad, nas);
716
- if (r < -1 || r > 1) {
717
- CTX->err = BR_ERR_X509_TIME_UNKNOWN;
718
- T0_CO();
719
- }
720
- } else {
721
- uint32_t vd = CTX->days;
722
- uint32_t vs = CTX->seconds;
723
- if (vd == 0 && vs == 0) {
724
- #if BR_USE_UNIX_TIME
725
- time_t x = time(NULL);
726
-
727
- vd = (uint32_t)(x / 86400) + 719528;
728
- vs = (uint32_t)(x % 86400);
729
- #elif BR_USE_WIN32_TIME
730
- FILETIME ft;
731
- uint64_t x;
732
-
733
- GetSystemTimeAsFileTime(&ft);
734
- x = ((uint64_t)ft.dwHighDateTime << 32)
735
- + (uint64_t)ft.dwLowDateTime;
736
- x = (x / 10000000);
737
- vd = (uint32_t)(x / 86400) + 584754;
738
- vs = (uint32_t)(x % 86400);
739
- #else
740
- CTX->err = BR_ERR_X509_TIME_UNKNOWN;
741
- T0_CO();
742
- #endif
743
- }
744
- if (vd < nbd || (vd == nbd && vs < nbs)) {
745
- r = -1;
746
- } else if (vd > nad || (vd == nad && vs > nas)) {
747
- r = 1;
748
- } else {
749
- r = 0;
750
- }
751
- }
752
- T0_PUSHi(r);
753
- }
754
-
755
- \ Swap the top two elements with the two elements immediately below.
756
- : swap2 ( a b c d -- c d a b )
757
- 3 roll 3 roll ;
758
-
759
- \ Match the name in the pad with the expected server name. Returned value
760
- \ is true (-1) on match, false (0) otherwise. If there is no expected
761
- \ server name, then 0 is returned.
762
- \ Match conditions: either an exact match (case insensitive), or a
763
- \ wildcard match, if the found name starts with "*.". We only match a
764
- \ starting wildcard, and only against a complete DN name component.
765
- cc: match-server-name ( -- bool ) {
766
- size_t n1, n2;
767
-
768
- if (CTX->server_name == NULL) {
769
- T0_PUSH(0);
770
- T0_RET();
771
- }
772
- n1 = strlen(CTX->server_name);
773
- n2 = CTX->pad[0];
774
- if (n1 == n2 && eqnocase(&CTX->pad[1], CTX->server_name, n1)) {
775
- T0_PUSHi(-1);
776
- T0_RET();
777
- }
778
- if (n2 >= 2 && CTX->pad[1] == '*' && CTX->pad[2] == '.') {
779
- size_t u;
780
-
781
- u = 0;
782
- while (u < n1 && CTX->server_name[u] != '.') {
783
- u ++;
784
- }
785
- u ++;
786
- n1 -= u;
787
- if ((n2 - 2) == n1
788
- && eqnocase(&CTX->pad[3], CTX->server_name + u, n1))
789
- {
790
- T0_PUSHi(-1);
791
- T0_RET();
792
- }
793
- }
794
- T0_PUSH(0);
795
- }
796
-
797
- \ Get the address and length for the pkey_data buffer.
798
- : addr-len-pkey_data ( -- addr len )
799
- CX 0 8191 { offsetof(br_x509_minimal_context, pkey_data) }
800
- CX 0 8191 { BR_X509_BUFSIZE_KEY } ;
801
-
802
- \ Copy the EE public key to the permanent buffer (RSA).
803
- cc: copy-ee-rsa-pkey ( nlen elen -- ) {
804
- size_t elen = T0_POP();
805
- size_t nlen = T0_POP();
806
- memcpy(CTX->ee_pkey_data, CTX->pkey_data, nlen + elen);
807
- CTX->pkey.key_type = BR_KEYTYPE_RSA;
808
- CTX->pkey.key.rsa.n = CTX->ee_pkey_data;
809
- CTX->pkey.key.rsa.nlen = nlen;
810
- CTX->pkey.key.rsa.e = CTX->ee_pkey_data + nlen;
811
- CTX->pkey.key.rsa.elen = elen;
812
- }
813
-
814
- \ Copy the EE public key to the permanent buffer (EC).
815
- cc: copy-ee-ec-pkey ( curve qlen -- ) {
816
- size_t qlen = T0_POP();
817
- uint32_t curve = T0_POP();
818
- memcpy(CTX->ee_pkey_data, CTX->pkey_data, qlen);
819
- CTX->pkey.key_type = BR_KEYTYPE_EC;
820
- CTX->pkey.key.ec.curve = curve;
821
- CTX->pkey.key.ec.q = CTX->ee_pkey_data;
822
- CTX->pkey.key.ec.qlen = qlen;
823
- }
824
-
825
- \ Check whether the current certificate (EE) is directly trusted.
826
- cc: check-direct-trust ( -- ) {
827
- size_t u;
828
-
829
- for (u = 0; u < CTX->trust_anchors_num; u ++) {
830
- const br_x509_trust_anchor *ta;
831
- unsigned char hashed_DN[64];
832
- int kt;
833
-
834
- ta = &CTX->trust_anchors[u];
835
- if (ta->flags & BR_X509_TA_CA) {
836
- continue;
837
- }
838
- hash_dn(CTX, ta->dn.data, ta->dn.len, hashed_DN);
839
- if (memcmp(hashed_DN, CTX->current_dn_hash, DNHASH_LEN)) {
840
- continue;
841
- }
842
- kt = CTX->pkey.key_type;
843
- if ((ta->pkey.key_type & 0x0F) != kt) {
844
- continue;
845
- }
846
- switch (kt) {
847
-
848
- case BR_KEYTYPE_RSA:
849
- if (!eqbigint(CTX->pkey.key.rsa.n,
850
- CTX->pkey.key.rsa.nlen,
851
- ta->pkey.key.rsa.n,
852
- ta->pkey.key.rsa.nlen)
853
- || !eqbigint(CTX->pkey.key.rsa.e,
854
- CTX->pkey.key.rsa.elen,
855
- ta->pkey.key.rsa.e,
856
- ta->pkey.key.rsa.elen))
857
- {
858
- continue;
859
- }
860
- break;
861
-
862
- case BR_KEYTYPE_EC:
863
- if (CTX->pkey.key.ec.curve != ta->pkey.key.ec.curve
864
- || CTX->pkey.key.ec.qlen != ta->pkey.key.ec.qlen
865
- || memcmp(CTX->pkey.key.ec.q,
866
- ta->pkey.key.ec.q,
867
- ta->pkey.key.ec.qlen) != 0)
868
- {
869
- continue;
870
- }
871
- break;
872
-
873
- default:
874
- continue;
875
- }
876
-
877
- /*
878
- * Direct trust match!
879
- */
880
- CTX->err = BR_ERR_X509_OK;
881
- T0_CO();
882
- }
883
- }
884
-
885
- \ Check the signature on the certificate with regards to all trusted CA.
886
- \ We use the issuer hash (in saved_dn_hash[]) as CA identifier.
887
- cc: check-trust-anchor-CA ( -- ) {
888
- size_t u;
889
-
890
- for (u = 0; u < CTX->trust_anchors_num; u ++) {
891
- const br_x509_trust_anchor *ta;
892
- unsigned char hashed_DN[64];
893
-
894
- ta = &CTX->trust_anchors[u];
895
- if (!(ta->flags & BR_X509_TA_CA)) {
896
- continue;
897
- }
898
- hash_dn(CTX, ta->dn.data, ta->dn.len, hashed_DN);
899
- if (memcmp(hashed_DN, CTX->saved_dn_hash, DNHASH_LEN)) {
900
- continue;
901
- }
902
- if (verify_signature(CTX, &ta->pkey) == 0) {
903
- CTX->err = BR_ERR_X509_OK;
904
- T0_CO();
905
- }
906
- }
907
- }
908
-
909
- \ Verify RSA signature. This uses the public key that was just decoded
910
- \ into CTX->pkey_data; the modulus and exponent length are provided as
911
- \ parameters. The resulting hash value is compared with the one in
912
- \ tbs_hash. Returned value is 0 on success, or a non-zero error code.
913
- cc: do-rsa-vrfy ( nlen elen -- err ) {
914
- size_t elen = T0_POP();
915
- size_t nlen = T0_POP();
916
- br_x509_pkey pk;
917
-
918
- pk.key_type = BR_KEYTYPE_RSA;
919
- pk.key.rsa.n = CTX->pkey_data;
920
- pk.key.rsa.nlen = nlen;
921
- pk.key.rsa.e = CTX->pkey_data + nlen;
922
- pk.key.rsa.elen = elen;
923
- T0_PUSH(verify_signature(CTX, &pk));
924
- }
925
-
926
- \ Verify ECDSA signature. This uses the public key that was just decoded
927
- \ into CTX->pkey_dayta; the curve ID and public point length are provided
928
- \ as parameters. The hash value in tbs_hash is used. Returned value is 0
929
- \ on success, or non-zero error code.
930
- cc: do-ecdsa-vrfy ( curve qlen -- err ) {
931
- size_t qlen = T0_POP();
932
- int curve = T0_POP();
933
- br_x509_pkey pk;
934
-
935
- pk.key_type = BR_KEYTYPE_EC;
936
- pk.key.ec.curve = curve;
937
- pk.key.ec.q = CTX->pkey_data;
938
- pk.key.ec.qlen = qlen;
939
- T0_PUSH(verify_signature(CTX, &pk));
940
- }
941
-
942
- cc: print-bytes ( addr len -- ) {
943
- extern int printf(const char *fmt, ...);
944
- size_t len = T0_POP();
945
- unsigned char *buf = (unsigned char *)CTX + T0_POP();
946
- size_t u;
947
-
948
- for (u = 0; u < len; u ++) {
949
- printf("%02X", buf[u]);
950
- }
951
- }
952
-
953
- cc: printOID ( -- ) {
954
- extern int printf(const char *fmt, ...);
955
- size_t u, len;
956
-
957
- len = CTX->pad[0];
958
- if (len == 0) {
959
- printf("*");
960
- T0_RET();
961
- }
962
- printf("%u.%u", CTX->pad[1] / 40, CTX->pad[1] % 40);
963
- u = 2;
964
- while (u <= len) {
965
- unsigned long ul;
966
-
967
- ul = 0;
968
- for (;;) {
969
- int x;
970
-
971
- if (u > len) {
972
- printf("BAD");
973
- T0_RET();
974
- }
975
- x = CTX->pad[u ++];
976
- ul = (ul << 7) + (x & 0x7F);
977
- if (!(x & 0x80)) {
978
- break;
979
- }
980
- }
981
- printf(".%lu", ul);
982
- }
983
- }
984
-
985
- \ Extensions with specific processing.
986
- OID: basicConstraints 2.5.29.19
987
- OID: keyUsage 2.5.29.15
988
- OID: subjectAltName 2.5.29.17
989
- OID: certificatePolicies 2.5.29.32
990
-
991
- \ Policy qualifier "pointer to CPS"
992
- OID: id-qt-cps 1.3.6.1.5.5.7.2.1
993
-
994
- \ Extensions which are ignored when encountered, even if critical.
995
- OID: authorityKeyIdentifier 2.5.29.35
996
- OID: subjectKeyIdentifier 2.5.29.14
997
- OID: issuerAltName 2.5.29.18
998
- OID: subjectDirectoryAttributes 2.5.29.9
999
- OID: crlDistributionPoints 2.5.29.31
1000
- OID: freshestCRL 2.5.29.46
1001
- OID: authorityInfoAccess 1.3.6.1.5.5.7.1.1
1002
- OID: subjectInfoAccess 1.3.6.1.5.5.7.1.11
1003
-
1004
- \ Process a Basic Constraints extension. This should be called only if
1005
- \ the certificate is not the EE. We check that the extension contains
1006
- \ the "CA" flag, and that the path length, if specified, is compatible
1007
- \ with the current chain length.
1008
- : process-basicConstraints ( lim -- lim )
1009
- read-sequence-open
1010
- read-tag-or-end
1011
- dup 0x01 = if
1012
- read-boolean ifnot ERR_X509_NOT_CA fail then
1013
- read-tag-or-end
1014
- else
1015
- ERR_X509_NOT_CA fail
1016
- then
1017
- dup 0x02 = if
1018
- drop check-primitive read-small-int-value
1019
- addr-num_certs get32 1- < if ERR_X509_NOT_CA fail then
1020
- read-tag-or-end
1021
- then
1022
- -1 <> if ERR_X509_UNEXPECTED fail then
1023
- drop
1024
- close-elt
1025
- ;
1026
-
1027
- \ Process a Key Usage extension.
1028
- \ For the EE certificate:
1029
- \ -- if the key usage contains keyEncipherment (2), dataEncipherment (3)
1030
- \ or keyAgreement (4), then the "key exchange" usage is allowed;
1031
- \ -- if the key usage contains digitalSignature (0) or nonRepudiation (1),
1032
- \ then the "signature" usage is allowed.
1033
- \ For CA certificates, the extension must contain keyCertSign (5).
1034
- : process-keyUsage ( lim ee -- lim )
1035
- { ee }
1036
-
1037
- \ Read tag for the BIT STRING and open it.
1038
- read-tag 0x03 check-tag-primitive
1039
- read-length-open-elt
1040
- \ First byte indicates number of ignored bits in the last byte. It
1041
- \ must be between 0 and 7.
1042
- read8 { ign }
1043
- ign 7 > if ERR_X509_UNEXPECTED fail then
1044
- \ Depending on length, we have either 0, 1 or more bytes to read.
1045
- dup case
1046
- 0 of ERR_X509_FORBIDDEN_KEY_USAGE fail endof
1047
- 1 of read8 ign >> ign << endof
1048
- drop read8 0
1049
- endcase
1050
-
1051
- \ Check bits.
1052
- ee if
1053
- \ EE: get usages.
1054
- 0
1055
- over 0x38 and if 0x10 or then
1056
- swap 0xC0 and if 0x20 or then
1057
- addr-key_usages set8
1058
- else
1059
- \ Not EE: keyCertSign must be set.
1060
- 0x04 and ifnot ERR_X509_FORBIDDEN_KEY_USAGE fail then
1061
- then
1062
-
1063
- \ We don't care about subsequent bytes.
1064
- skip-close-elt ;
1065
-
1066
- \ Process a Certificate Policies extension.
1067
- \
1068
- \ Since we don't actually support full policies processing, this function
1069
- \ only checks that the extension contents can be safely ignored. Indeed,
1070
- \ we don't validate against a specific set of policies (in RFC 5280
1071
- \ terminology, user-initial-policy-set only contains the special value
1072
- \ any-policy). Moreover, we don't support policy constraints (if a
1073
- \ critical Policy Constraints extension is encountered, the validation
1074
- \ will fail). Therefore, we can safely ignore the contents of this
1075
- \ extension, except if it is critical AND one of the policy OID has a
1076
- \ qualifier which is distinct from id-qt-cps (because id-qt-cps is
1077
- \ specially designated by RFC 5280 has having no mandated action).
1078
- \
1079
- \ This function is called only if the extension is critical.
1080
- : process-certPolicies ( lim -- lim )
1081
- \ Extension value is a SEQUENCE OF PolicyInformation.
1082
- read-sequence-open
1083
- begin dup while
1084
- \ PolicyInformation ::= SEQUENCE {
1085
- \ policyIdentifier OBJECT IDENTIFIER,
1086
- \ policyQualifiers SEQUENCE OF PolicyQualifierInfo OPTIONAL
1087
- \ }
1088
- read-sequence-open
1089
- read-OID drop
1090
- dup if
1091
- read-sequence-open
1092
- begin dup while
1093
- \ PolicyQualifierInfo ::= SEQUENCE {
1094
- \ policyQualifierId OBJECT IDENTIFIER,
1095
- \ qualifier ANY
1096
- \ }
1097
- read-sequence-open
1098
- read-OID drop id-qt-cps eqOID ifnot
1099
- ERR_X509_CRITICAL_EXTENSION fail
1100
- then
1101
- skip-close-elt
1102
- repeat
1103
- close-elt
1104
- then
1105
- close-elt
1106
- repeat
1107
- close-elt ;
1108
-
1109
- \ Process a Subject Alt Name extension. Returned value is a boolean set
1110
- \ to true if the expected server name was matched against a dNSName in
1111
- \ the extension.
1112
- : process-SAN ( lim -- lim bool )
1113
- 0 { m }
1114
- read-sequence-open
1115
- begin dup while
1116
- \ Read the tag. If the tag is context-0, then parse an
1117
- \ 'otherName'. If the tag is context-2, then parse a
1118
- \ dNSName. If the tag is context-1 or context-6,
1119
- \ parse
1120
- read-tag case
1121
- \ OtherName
1122
- 0x20 of
1123
- \ OtherName ::= SEQUENCE {
1124
- \ type-id OBJECT IDENTIFIER,
1125
- \ value [0] EXPLICIT ANY
1126
- \ }
1127
- check-constructed read-length-open-elt
1128
- read-OID drop
1129
- -1 offset-name-element { offbuf }
1130
- read-tag 0x20 check-tag-constructed
1131
- read-length-open-elt
1132
- read-string offbuf copy-name-element
1133
- close-elt
1134
- close-elt
1135
- endof
1136
- \ rfc822Name (IA5String)
1137
- 0x21 of
1138
- check-primitive
1139
- read-value-UTF8 1 copy-name-SAN
1140
- endof
1141
- \ dNSName (IA5String)
1142
- 0x22 of
1143
- check-primitive
1144
- read-value-UTF8
1145
- dup if match-server-name m or >m then
1146
- 2 copy-name-SAN
1147
- endof
1148
- \ uniformResourceIdentifier (IA5String)
1149
- 0x26 of
1150
- check-primitive
1151
- read-value-UTF8 6 copy-name-SAN
1152
- endof
1153
- 2drop read-length-skip 0
1154
- endcase
1155
-
1156
- \ We check only names of type dNSName; they use IA5String,
1157
- \ which is basically ASCII.
1158
- \ read-tag 0x22 = if
1159
- \ check-primitive
1160
- \ read-small-value drop
1161
- \ match-server-name m or >m
1162
- \ else
1163
- \ drop read-length-skip
1164
- \ then
1165
- repeat
1166
- close-elt
1167
- m ;
1168
-
1169
- \ Decode a certificate. The "ee" boolean must be true for the EE.
1170
- : decode-certificate ( ee -- )
1171
- { ee }
1172
-
1173
- \ Obtain the total certificate length.
1174
- addr-cert_length get32
1175
-
1176
- \ Open the outer SEQUENCE.
1177
- read-sequence-open
1178
-
1179
- \ TBS
1180
- \ Activate hashing.
1181
- start-tbs-hash
1182
- read-sequence-open
1183
-
1184
- \ First element may be an explicit version. We accept only
1185
- \ versions 0 to 2 (certificates v1 to v3).
1186
- read-tag dup 0x20 = if
1187
- drop check-constructed read-length-open-elt
1188
- read-tag
1189
- 0x02 check-tag-primitive
1190
- read-small-int-value
1191
- 2 > if ERR_X509_UNSUPPORTED fail then
1192
- close-elt
1193
- read-tag
1194
- then
1195
-
1196
- \ Serial number. We just check that the tag is correct.
1197
- 0x02 check-tag-primitive
1198
- read-length-skip
1199
-
1200
- \ Signature algorithm. This structure is redundant with the one
1201
- \ on the outside; we just skip it.
1202
- read-sequence-open skip-close-elt
1203
-
1204
- \ Issuer name: hashed, then copied into next_dn_hash[].
1205
- read-DN
1206
- addr-next_dn_hash addr-current_dn_hash dn-hash-length blobcopy
1207
-
1208
- \ Validity dates.
1209
- read-sequence-open
1210
- read-date { nbd nbs } read-date nbd nbs check-validity-range
1211
- if ERR_X509_EXPIRED fail then
1212
- close-elt
1213
-
1214
- \ Subject name.
1215
- ee if
1216
- \ For the EE, we must check whether the Common Name, if
1217
- \ any, matches the expected server name.
1218
- read-DN-EE { eename }
1219
- else
1220
- \ For a non-EE certificate, the hashed subject DN must match
1221
- \ the saved hashed issuer DN from the previous certificate.
1222
- read-DN
1223
- addr-current_dn_hash addr-saved_dn_hash dn-hash-length eqblob
1224
- ifnot ERR_X509_DN_MISMATCH fail then
1225
- then
1226
- \ Move the hashed issuer DN for this certificate into the
1227
- \ saved_dn_hash[] array.
1228
- addr-saved_dn_hash addr-next_dn_hash dn-hash-length blobcopy
1229
-
1230
- \ Public Key.
1231
- read-sequence-open
1232
- \ Algorithm Identifier. Right now we are only interested in the
1233
- \ OID, since we only support RSA keys.
1234
- read-sequence-open
1235
- read-OID ifnot ERR_X509_UNSUPPORTED fail then
1236
- { ; pkey-type }
1237
- choice
1238
- \ RSA public key.
1239
- rsaEncryption eqOID uf
1240
- skip-close-elt
1241
- \ Public key itself: the BIT STRING contains bytes
1242
- \ (no partial byte) and these bytes encode the
1243
- \ actual value.
1244
- read-bits-open
1245
- \ RSA public key is a SEQUENCE of two
1246
- \ INTEGER. We get both INTEGER values into
1247
- \ the pkey_data[] buffer, if they fit.
1248
- read-sequence-open
1249
- addr-len-pkey_data
1250
- read-integer { nlen }
1251
- addr-len-pkey_data swap nlen + swap nlen -
1252
- read-integer { elen }
1253
- close-elt
1254
-
1255
- \ Check that the public key fits our minimal
1256
- \ size requirements. Note that the integer
1257
- \ decoder already skipped the leading bytes
1258
- \ of value 0, so we are working on the true
1259
- \ modulus length here.
1260
- addr-min_rsa_size get16 128 + nlen > if
1261
- ERR_X509_WEAK_PUBLIC_KEY fail
1262
- then
1263
- close-elt
1264
- KEYTYPE_RSA >pkey-type
1265
- enduf
1266
-
1267
- \ EC public key.
1268
- id-ecPublicKey eqOID uf
1269
- \ We support only named curves, for which the
1270
- \ "parameters" field in the AlgorithmIdentifier
1271
- \ field should be an OID.
1272
- read-OID ifnot ERR_X509_UNSUPPORTED fail then
1273
- choice
1274
- ansix9p256r1 eqOID uf 23 enduf
1275
- ansix9p384r1 eqOID uf 24 enduf
1276
- ansix9p521r1 eqOID uf 25 enduf
1277
- ERR_X509_UNSUPPORTED fail
1278
- endchoice
1279
- { curve }
1280
- close-elt
1281
- read-bits-open
1282
- dup { qlen }
1283
- dup addr-len-pkey_data rot < if
1284
- ERR_X509_LIMIT_EXCEEDED fail
1285
- then
1286
- read-blob
1287
- KEYTYPE_EC >pkey-type
1288
- enduf
1289
-
1290
- \ Not a recognised public key type.
1291
- ERR_X509_UNSUPPORTED fail
1292
- endchoice
1293
- close-elt
1294
-
1295
- \ Process public key.
1296
- ee if
1297
- \ For the EE certificate, copy the key data to the
1298
- \ relevant buffer.
1299
- pkey-type case
1300
- KEYTYPE_RSA of nlen elen copy-ee-rsa-pkey endof
1301
- KEYTYPE_EC of curve qlen copy-ee-ec-pkey endof
1302
- ERR_X509_UNSUPPORTED fail
1303
- endcase
1304
- else
1305
- \ Verify signature on previous certificate. We invoke
1306
- \ the RSA implementation.
1307
- pkey-type case
1308
- KEYTYPE_RSA of nlen elen do-rsa-vrfy endof
1309
- KEYTYPE_EC of curve qlen do-ecdsa-vrfy endof
1310
- ERR_X509_UNSUPPORTED fail
1311
- endcase
1312
- dup if fail then
1313
- drop
1314
- then
1315
-
1316
- \ This flag will be set to true if the Basic Constraints extension
1317
- \ is encountered.
1318
- 0 { seenBC }
1319
-
1320
- \ Skip issuerUniqueID and subjectUniqueID, and process extensions
1321
- \ if present. Extensions are an explicit context tag of value 3
1322
- \ around a SEQUENCE OF extensions. Each extension is a SEQUENCE
1323
- \ with an OID, an optional boolean, and a value; the value is
1324
- \ an OCTET STRING.
1325
- read-tag-or-end
1326
- 0x21 iftag-skip
1327
- 0x22 iftag-skip
1328
- dup 0x23 = if
1329
- drop
1330
- check-constructed read-length-open-elt
1331
- read-sequence-open
1332
- begin dup while
1333
- 0 { critical }
1334
- read-sequence-open
1335
- read-OID drop
1336
- read-tag dup 0x01 = if
1337
- read-boolean >critical
1338
- read-tag
1339
- then
1340
- 0x04 check-tag-primitive read-length-open-elt
1341
- choice
1342
- \ Extensions with specific processing.
1343
- basicConstraints eqOID uf
1344
- ee if
1345
- skip-remaining
1346
- else
1347
- process-basicConstraints
1348
- -1 >seenBC
1349
- then
1350
- enduf
1351
- keyUsage eqOID uf
1352
- ee process-keyUsage
1353
- enduf
1354
- subjectAltName eqOID uf
1355
- ee if
1356
- 0 >eename
1357
- process-SAN >eename
1358
- else
1359
- skip-remaining
1360
- then
1361
- enduf
1362
-
1363
- \ We don't implement full processing of
1364
- \ policies. The call below mostly checks
1365
- \ that the contents of the Certificate
1366
- \ Policies extension can be safely ignored.
1367
- certificatePolicies eqOID uf
1368
- critical if
1369
- process-certPolicies
1370
- else
1371
- skip-remaining
1372
- then
1373
- enduf
1374
-
1375
- \ Extensions which are always ignored,
1376
- \ even if critical.
1377
- authorityKeyIdentifier eqOID uf
1378
- skip-remaining
1379
- enduf
1380
- subjectKeyIdentifier eqOID uf
1381
- skip-remaining
1382
- enduf
1383
- issuerAltName eqOID uf
1384
- skip-remaining
1385
- enduf
1386
- subjectDirectoryAttributes eqOID uf
1387
- skip-remaining
1388
- enduf
1389
- crlDistributionPoints eqOID uf
1390
- skip-remaining
1391
- enduf
1392
- freshestCRL eqOID uf
1393
- skip-remaining
1394
- enduf
1395
- authorityInfoAccess eqOID uf
1396
- skip-remaining
1397
- enduf
1398
- subjectInfoAccess eqOID uf
1399
- skip-remaining
1400
- enduf
1401
-
1402
- \ Unrecognized extensions trigger a failure
1403
- \ if critical; otherwise, they are just
1404
- \ ignored.
1405
- critical if
1406
- ERR_X509_CRITICAL_EXTENSION fail
1407
- then
1408
- skip-remaining
1409
- endchoice
1410
- close-elt
1411
- close-elt
1412
- repeat
1413
- close-elt
1414
- close-elt
1415
- else
1416
- -1 = ifnot ERR_X509_UNEXPECTED fail then
1417
- drop
1418
- then
1419
-
1420
- close-elt
1421
- \ Terminate hashing.
1422
- stop-tbs-hash
1423
-
1424
- \ For the EE certificate, verify that the intended server name
1425
- \ was matched.
1426
- ee if
1427
- eename zero-server-name or ifnot
1428
- ERR_X509_BAD_SERVER_NAME fail
1429
- then
1430
- then
1431
-
1432
- \ If this is the EE certificate, then direct trust may apply.
1433
- \ Note: we do this at this point, not immediately after decoding
1434
- \ the public key, because even in case of direct trust we still
1435
- \ want to check the server name with regards to the SAN extension.
1436
- \ However, we want to check direct trust before trying to decode
1437
- \ the signature algorithm, because it should work even if that
1438
- \ algorithm is not supported.
1439
- ee if check-direct-trust then
1440
-
1441
- \ Non-EE certificates MUST have a Basic Constraints extension
1442
- \ (that marks them as being CA).
1443
- ee seenBC or ifnot ERR_X509_NOT_CA fail then
1444
-
1445
- \ signature algorithm
1446
- read-tag check-sequence read-length-open-elt
1447
- \ Read and understand the OID. Right now, we support only
1448
- \ RSA with PKCS#1 v1.5 padding, and hash functions SHA-1,
1449
- \ SHA-224, SHA-256, SHA-384 and SHA-512. We purposely do NOT
1450
- \ support MD5 here.
1451
- \ TODO: add support for RSA/PSS
1452
- read-OID if
1453
- \ Based on the signature OID, we get:
1454
- \ -- the signing key type
1455
- \ -- the hash function numeric identifier
1456
- \ -- the hash function OID
1457
- choice
1458
- sha1WithRSAEncryption eqOID
1459
- uf 2 KEYTYPE_RSA id-sha1 enduf
1460
- sha224WithRSAEncryption eqOID
1461
- uf 3 KEYTYPE_RSA id-sha224 enduf
1462
- sha256WithRSAEncryption eqOID
1463
- uf 4 KEYTYPE_RSA id-sha256 enduf
1464
- sha384WithRSAEncryption eqOID
1465
- uf 5 KEYTYPE_RSA id-sha384 enduf
1466
- sha512WithRSAEncryption eqOID
1467
- uf 6 KEYTYPE_RSA id-sha512 enduf
1468
-
1469
- ecdsa-with-SHA1 eqOID
1470
- uf 2 KEYTYPE_EC id-sha1 enduf
1471
- ecdsa-with-SHA224 eqOID
1472
- uf 3 KEYTYPE_EC id-sha224 enduf
1473
- ecdsa-with-SHA256 eqOID
1474
- uf 4 KEYTYPE_EC id-sha256 enduf
1475
- ecdsa-with-SHA384 eqOID
1476
- uf 5 KEYTYPE_EC id-sha384 enduf
1477
- ecdsa-with-SHA512 eqOID
1478
- uf 6 KEYTYPE_EC id-sha512 enduf
1479
- ERR_X509_UNSUPPORTED fail
1480
- endchoice
1481
- addr-cert_sig_hash_oid set16
1482
- addr-cert_signer_key_type set8
1483
-
1484
- \ Compute the TBS hash into tbs_hash.
1485
- compute-tbs-hash
1486
- dup ifnot ERR_X509_UNSUPPORTED fail then
1487
- addr-cert_sig_hash_len set8
1488
- else
1489
- ERR_X509_UNSUPPORTED fail
1490
- then
1491
- \ We ignore the parameters, whether they are present or not,
1492
- \ because we got all the information from the OID.
1493
- skip-close-elt
1494
-
1495
- \ signature value
1496
- read-bits-open
1497
- dup CX 0 8191 { BR_X509_BUFSIZE_SIG } > if
1498
- ERR_X509_LIMIT_EXCEEDED fail
1499
- then
1500
- dup addr-cert_sig_len set16
1501
- addr-cert_sig read-blob
1502
-
1503
- \ Close the outer SEQUENCE.
1504
- close-elt
1505
-
1506
- \ Close the advertised total certificate length. This checks that
1507
- \ there is no trailing garbage after the certificate.
1508
- close-elt
1509
-
1510
- \ Flag the certificate as fully processed.
1511
- 0 addr-cert_length set32
1512
-
1513
- \ Check whether the issuer for the current certificate is known
1514
- \ as a trusted CA; in which case, verify the signature.
1515
- check-trust-anchor-CA ;
1516
-
1517
- : main
1518
- \ Unless restricted by a Key Usage extension, all usages are
1519
- \ deemed allowed.
1520
- 0x30 addr-key_usages set8
1521
- -1 decode-certificate
1522
- co
1523
- begin
1524
- 0 decode-certificate co
1525
- again
1526
- ;