visaljs 0.0.2 → 0.0.3

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 (1007) hide show
  1. package/cli.js +393 -62
  2. package/node/include/js_node.h +28 -5
  3. package/node/include/js_uv.h +36 -0
  4. package/node/prelude/crypto.js +7 -10
  5. package/node/prelude/dns.js +99 -0
  6. package/node/prelude/dns_promises.js +10 -0
  7. package/node/prelude/http.js +1039 -195
  8. package/node/prelude/internal/crypto/asym.js +39 -12
  9. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  10. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  11. package/node/prelude/internal/crypto/hash.js +1 -1
  12. package/node/prelude/internal/crypto/key_type.js +3 -0
  13. package/node/prelude/internal/crypto/keys.js +39 -9
  14. package/node/prelude/internal/http_agent.js +249 -0
  15. package/node/prelude/internal/net.js +33 -0
  16. package/node/prelude/internal/socketaddress.js +249 -0
  17. package/node/prelude/internal/tls/common.js +306 -0
  18. package/node/prelude/internal/tls/wrap.js +1217 -0
  19. package/node/prelude/internal/tls/x509.js +394 -0
  20. package/node/prelude/net.js +1083 -50
  21. package/node/prelude/stream.js +6 -0
  22. package/node/prelude/tls.js +141 -0
  23. package/node/prelude/util.js +5 -2
  24. package/node/prelude/util_types.js +85 -0
  25. package/node/src/host_http.c +268 -270
  26. package/node/src/host_loop.c +84 -0
  27. package/node/src/host_net.c +495 -0
  28. package/node/src/host_sys.c +16 -0
  29. package/package.json +1 -1
  30. package/runtime/include/js_builtins.h +16 -0
  31. package/runtime/include/js_console.h +2 -0
  32. package/runtime/include/js_core.def +23 -0
  33. package/runtime/include/js_crypto.h +23 -0
  34. package/runtime/include/js_generator.h +2 -3
  35. package/runtime/include/js_promise.h +0 -2
  36. package/runtime/src/async_iter.c +4 -1
  37. package/runtime/src/boringssl_support.cc +34 -0
  38. package/runtime/src/builtin_table.c +8 -0
  39. package/runtime/src/components.c +10 -0
  40. package/runtime/src/console.c +6 -18
  41. package/runtime/src/core_all.c +1 -0
  42. package/runtime/src/crypto_asym.c +450 -241
  43. package/runtime/src/crypto_bn.c +91 -0
  44. package/runtime/src/crypto_cipher.c +153 -75
  45. package/runtime/src/crypto_hash.c +68 -53
  46. package/runtime/src/crypto_internal.h +55 -26
  47. package/runtime/src/crypto_pkey.c +198 -61
  48. package/runtime/src/crypto_subtle.c +42 -16
  49. package/runtime/src/crypto_tls.c +678 -0
  50. package/runtime/src/generator.c +8 -1
  51. package/runtime/src/global.c +2 -4
  52. package/runtime/src/internal.h +0 -1
  53. package/runtime/src/jobs.c +2 -1
  54. package/runtime/src/promise.c +4 -1
  55. package/runtime/src/tls_roots.gen.h +3215 -0
  56. package/runtime/src/util_types.c +52 -0
  57. package/runtime/src/weak.c +2 -1
  58. package/runtime/third_party/boringssl/LICENSE +238 -0
  59. package/runtime/third_party/boringssl/README.md +46 -0
  60. package/runtime/third_party/boringssl/VERSION +1 -0
  61. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  62. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  63. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  64. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  65. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  66. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  67. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  68. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  69. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  70. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  71. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  72. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  73. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  74. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  75. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  76. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  77. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  78. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  79. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  80. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  81. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  82. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  83. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  84. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  85. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  86. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  87. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  88. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  89. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  90. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  91. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  92. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  93. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  94. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  95. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  96. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  97. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  98. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  99. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  100. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  101. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  102. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  103. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  104. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  105. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  106. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  107. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  108. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  109. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  110. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  111. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  112. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  113. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  114. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  115. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  116. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  117. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  118. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  119. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  120. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  121. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  122. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  123. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  124. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  125. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  126. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  127. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  128. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  129. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  130. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  131. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  132. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  133. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  134. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  135. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  136. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  137. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  138. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  139. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  140. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  141. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  142. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  143. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  144. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  145. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  146. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  147. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  148. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  149. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  150. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  151. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  152. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  153. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  154. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  155. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  156. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  157. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  158. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  159. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  160. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  161. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  162. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  163. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  164. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  165. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  166. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  167. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  168. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  169. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  170. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  171. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  172. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  173. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  174. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  175. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  176. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  177. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  178. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  179. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  180. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  181. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  182. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  183. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  184. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  185. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  186. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  187. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  188. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  189. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  190. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  191. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  192. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  193. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  194. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  195. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  196. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  197. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  198. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  199. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  200. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  201. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  202. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  203. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  204. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  205. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  206. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  207. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  208. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  209. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  210. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  211. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  212. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  213. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  214. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  215. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  216. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  217. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  218. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  219. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  220. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  221. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  222. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  223. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  224. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  225. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  226. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  227. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  228. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  229. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  230. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  231. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  232. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  233. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  234. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  235. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  236. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  237. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  238. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  239. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  240. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  241. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  242. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  243. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  244. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  245. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  246. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  247. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  248. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  249. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  250. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  251. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  252. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  253. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  254. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  255. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  256. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  257. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  258. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  259. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  260. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  261. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  262. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  263. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  264. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  265. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  266. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  267. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  268. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  269. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  270. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  271. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  272. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  273. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  274. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  275. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  276. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  277. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  278. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  279. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  280. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  281. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  282. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  283. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  284. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  285. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  286. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  287. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  288. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  289. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  290. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  291. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  292. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  293. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  294. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  295. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  296. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  297. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  298. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  299. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  300. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  301. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  302. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  303. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  304. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  305. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  306. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  307. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  308. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  309. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  310. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  311. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  312. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  313. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  314. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  315. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  316. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  317. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  318. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  319. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  320. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  321. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  322. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  323. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  324. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  325. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  326. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  327. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  328. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  329. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  330. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  331. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  332. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  333. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  334. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  335. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  336. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  337. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  338. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  339. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  340. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  341. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  342. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  343. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  344. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  345. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  346. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  347. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  348. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  349. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  350. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  351. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  352. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  353. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  354. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  355. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  356. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  357. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  358. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  359. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  360. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  361. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  362. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  363. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  364. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  365. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  366. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  367. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  368. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  369. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  370. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  371. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  372. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  373. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  374. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  375. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  376. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  377. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  378. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  379. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  380. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  381. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  382. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  383. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  384. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  385. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  386. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  387. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  388. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  389. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  390. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  391. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  392. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  393. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  394. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  395. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  396. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  397. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  398. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  399. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  400. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  401. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  402. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  403. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  404. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  405. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  406. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  407. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  408. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  409. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  410. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  411. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  412. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  413. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  414. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  415. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  416. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  417. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  418. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  419. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  420. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  421. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  422. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  423. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  424. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  425. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  426. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  427. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  428. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  429. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  430. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  431. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  432. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  433. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  434. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  435. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  436. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  437. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  438. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  439. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  440. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  441. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  442. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  443. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  444. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  445. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  446. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  447. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  448. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  449. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  450. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  451. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  452. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  453. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  454. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  455. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  456. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  457. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  458. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  459. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  460. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  461. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  462. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  463. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  464. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  465. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  466. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  467. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  468. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  469. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  470. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  471. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  472. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  473. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  474. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  475. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  476. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  477. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  478. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  479. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  480. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  481. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  482. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  483. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  484. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  485. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  486. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  487. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  488. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  489. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  490. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  491. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  492. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  493. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  494. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  495. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  496. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  497. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  498. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  499. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  500. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  501. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  502. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  503. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  504. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  505. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  506. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  507. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  508. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  509. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  510. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  511. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  512. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  513. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  514. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  515. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  516. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  517. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  518. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  519. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  520. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  521. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  522. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  523. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  524. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  525. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  526. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  527. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  528. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  529. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  530. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  531. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  532. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  533. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  534. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  535. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  536. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  537. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  538. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  539. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  540. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  541. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  542. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  543. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  544. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  545. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  546. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  547. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  548. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  549. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  550. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  551. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  552. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  553. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  554. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  555. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  556. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  557. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  558. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  559. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  560. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  561. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  562. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  563. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  564. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  565. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  566. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  567. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  568. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  569. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  570. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  571. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  572. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  573. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  574. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  575. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  576. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  577. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  578. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  579. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  580. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  581. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  582. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  583. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  584. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  585. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  586. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  587. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  588. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  589. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  590. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  591. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  592. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  593. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  594. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  595. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  596. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  597. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  598. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  599. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  600. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  601. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  602. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  603. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  604. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  605. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  606. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  607. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  608. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  609. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  610. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  611. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  612. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  613. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  614. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  615. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  616. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  617. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  618. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  619. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  620. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  621. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  622. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  623. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  624. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  625. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  626. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  627. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  628. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  629. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  630. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  631. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  632. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  633. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  634. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  635. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  636. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  637. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  638. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  639. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  640. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  641. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  642. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  643. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  644. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  645. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  646. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  647. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  648. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  649. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  650. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  651. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  652. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  653. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  654. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  655. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  656. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  657. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  658. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  659. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  660. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  661. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  662. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  663. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  664. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  665. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  666. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  667. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  668. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  669. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  670. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  671. package/runtime/third_party/boringssl/sources.json +696 -0
  672. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  673. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  674. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  675. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  676. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  677. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  678. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  679. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  680. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  681. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  682. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  683. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  684. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  685. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  686. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  687. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  688. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  689. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  690. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  691. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  692. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  693. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  694. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  695. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  696. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  697. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  698. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  699. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  700. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  701. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  702. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  703. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  704. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  705. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  706. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  707. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  708. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  709. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  710. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  711. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  712. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  713. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  714. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  715. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  716. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  717. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  718. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  719. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  720. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  721. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  722. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  723. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  724. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  725. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  726. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  727. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  728. package/runtime/third_party/v8-ieee754/README.md +2 -1
  729. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  730. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  731. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  732. package/runtime/third_party/bearssl/README.txt +0 -136
  733. package/runtime/third_party/bearssl/VERSION +0 -1
  734. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  735. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  736. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  737. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  738. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  739. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  740. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  741. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  742. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  743. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  744. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  745. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  746. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  747. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  748. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  749. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  750. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  751. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  752. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  753. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  754. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  755. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  756. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  757. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  758. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  759. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  760. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  761. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  762. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  763. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  764. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  765. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  766. package/runtime/third_party/bearssl/src/config.h +0 -247
  767. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  768. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  769. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  770. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  771. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  772. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  773. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  774. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  775. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  776. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  777. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  778. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  779. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  780. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  781. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  782. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  783. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  784. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  785. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  786. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  787. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  788. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  789. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  790. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  791. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  792. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  793. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  794. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  795. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  796. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  797. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  798. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  799. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  800. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  801. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  802. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  803. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  804. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  805. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  806. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  807. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  808. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  809. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  810. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  811. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  812. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  813. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  814. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  815. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  816. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  817. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  818. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  819. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  820. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  821. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  822. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  823. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  824. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  825. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  826. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  827. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  828. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  829. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  830. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  831. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  832. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  833. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  834. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  835. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  836. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  837. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  838. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  839. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  840. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  841. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  842. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  843. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  844. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  845. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  846. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  847. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  848. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  849. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  850. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  851. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  852. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  853. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  854. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  855. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  856. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  857. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  858. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  859. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  860. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  861. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  862. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  863. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  864. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  865. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  866. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  867. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  868. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  869. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  870. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  871. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  872. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  873. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  874. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  875. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  876. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  877. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  878. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  879. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  880. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  881. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  882. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  883. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  884. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  885. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  886. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  887. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  888. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  889. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  890. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  891. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  892. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  893. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  894. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  895. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  896. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  897. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  898. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  899. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  900. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  901. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  902. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  903. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  904. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  905. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  906. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  907. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  908. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  909. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  910. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  911. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  912. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  913. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  914. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  915. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  916. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  917. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  918. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  919. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  920. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  921. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  922. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  923. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  924. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  925. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  926. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  927. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  928. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  929. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  930. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  931. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  932. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  933. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  934. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  935. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  936. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  937. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  938. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  939. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  940. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  941. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  942. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  943. package/runtime/third_party/bearssl/src/settings.c +0 -306
  944. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  945. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  946. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  947. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  948. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  949. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  950. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  951. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  952. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  953. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  954. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  955. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  956. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  957. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  958. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  959. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  960. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  961. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  962. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  963. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  964. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  965. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  966. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  967. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  968. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  969. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  970. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  971. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  972. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  973. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  974. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  975. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  976. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  977. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  978. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  979. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  980. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  981. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  982. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  983. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  984. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  985. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  986. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  987. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  988. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  989. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  990. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  991. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  992. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  993. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  994. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  995. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  996. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  997. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  998. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  999. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1000. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1001. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1002. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1003. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1004. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1005. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1006. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1007. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,1061 @@
1
+ // Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #ifndef OPENSSL_HEADER_BIO_H
16
+ #define OPENSSL_HEADER_BIO_H
17
+
18
+ #include <openssl/base.h> // IWYU pragma: export
19
+
20
+ #include <stdio.h> // For FILE
21
+
22
+ #include <openssl/buffer.h>
23
+ #include <openssl/err.h> // for ERR_print_errors_fp
24
+ #include <openssl/ex_data.h>
25
+ #include <openssl/stack.h>
26
+
27
+ #if defined(__cplusplus)
28
+ extern "C" {
29
+ #endif
30
+
31
+
32
+ // BIO abstracts over a file-descriptor like interface.
33
+
34
+
35
+ // Allocation and freeing.
36
+
37
+ DEFINE_STACK_OF(BIO)
38
+
39
+ // BIO_new creates a new BIO with the given method and a reference count of one.
40
+ // It returns the fresh `BIO`, or NULL on error.
41
+ OPENSSL_EXPORT BIO *BIO_new(const BIO_METHOD *method);
42
+
43
+ // BIO_free decrements the reference count of `bio`. If the reference count
44
+ // drops to zero, it calls the destroy callback, if present, on the method and
45
+ // frees `bio` itself. If `bio` is part of a chain (see `BIO_push`), this will
46
+ // also free the next `BIO` in the chain, and so on.
47
+ //
48
+ // It returns one if `bio` was NULL or freed. It returns zero if `bio` was
49
+ // shared and some other owner still owns a reference count to it.
50
+ //
51
+ // WARNING: Do not use the return value. Returning zero is not a sign of an
52
+ // error, nor an indication to retry the operation. `BIO` is a reference-counted
53
+ // type. A given `BIO` object may be shared between multiple parts of an
54
+ // application. To correctly track the reference count, without leaks or
55
+ // use-after-free, each part of the application must release only the reference
56
+ // counts it owns.
57
+ OPENSSL_EXPORT int BIO_free(BIO *bio);
58
+
59
+ // BIO_vfree performs the same actions as `BIO_free`, but has a void return
60
+ // value. This is provided for API-compat.
61
+ //
62
+ // TODO(fork): remove.
63
+ OPENSSL_EXPORT void BIO_vfree(BIO *bio);
64
+
65
+ // BIO_up_ref increments the reference count of `bio` and returns one.
66
+ OPENSSL_EXPORT int BIO_up_ref(BIO *bio);
67
+
68
+
69
+ // Basic I/O.
70
+
71
+ // BIO_read attempts to read `len` bytes into `data`. It returns the number of
72
+ // bytes read, zero on EOF, or a negative number on error. Callers that support
73
+ // non-blocking I/O should call `BIO_should_read` on error to check if the error
74
+ // is fatal or retryable.
75
+ OPENSSL_EXPORT int BIO_read(BIO *bio, void *data, int len);
76
+
77
+ // BIO_gets reads a line from `bio` and writes at most `size` bytes into `buf`.
78
+ // It returns the number of bytes read or a negative number on error. This
79
+ // function's output always includes a trailing NUL byte, so it will read at
80
+ // most `size - 1` bytes.
81
+ //
82
+ // If the function read a complete line, the output will include the newline
83
+ // character, '\n'. If no newline was found before `size - 1` bytes or EOF, it
84
+ // outputs the bytes which were available.
85
+ OPENSSL_EXPORT int BIO_gets(BIO *bio, char *buf, int size);
86
+
87
+ // BIO_write_ex writes `len` bytes from `data` to `bio`. On success, it returns
88
+ // one and sets `*out_written` to the number of bytes written. Otherwise, it
89
+ // returns zero. `out_written` may be NULL to ignore the value. Callers that
90
+ // support non-blocking I/O should call `BIO_should_write` on error to check if
91
+ // the error is fatal or retryable.
92
+ OPENSSL_EXPORT int BIO_write_ex(BIO *bio, const void *data, size_t len,
93
+ size_t *out_written);
94
+
95
+ // BIO_write writes `len` bytes from `data` to `bio`. It returns the number of
96
+ // bytes written or a negative number on error. Callers that support
97
+ // non-blocking I/O should call `BIO_should_write` on error to check if the
98
+ // error is fatal or retryable.
99
+ OPENSSL_EXPORT int BIO_write(BIO *bio, const void *data, int len);
100
+
101
+ // BIO_write_all writes `len` bytes from `data` to `bio`, looping as necessary.
102
+ // It returns one if all bytes were successfully written and zero on error.
103
+ OPENSSL_EXPORT int BIO_write_all(BIO *bio, const void *data, size_t len);
104
+
105
+ // BIO_puts writes a NUL terminated string from `buf` to `bio`. It returns the
106
+ // number of bytes written or a negative number on error.
107
+ OPENSSL_EXPORT int BIO_puts(BIO *bio, const char *buf);
108
+
109
+ // BIO_flush flushes any buffered output. It returns one on success and <= 0 on
110
+ // error. Callers that support non-blocking I/O should call `BIO_should_write`
111
+ // on error to check if the error is fatal or retryable.
112
+ OPENSSL_EXPORT int BIO_flush(BIO *bio);
113
+
114
+
115
+ // Low-level control functions.
116
+ //
117
+ // These are generic functions for sending control requests to a BIO. In
118
+ // general one should use the wrapper functions like `BIO_get_close`.
119
+
120
+ // BIO_ctrl sends the control request `cmd` to `bio`. The `cmd` argument should
121
+ // be one of the `BIO_C_*` values.
122
+ OPENSSL_EXPORT long BIO_ctrl(BIO *bio, int cmd, long larg, void *parg);
123
+
124
+ // BIO_ptr_ctrl acts like `BIO_ctrl` but passes the address of a `void*`
125
+ // pointer as `parg` and returns the value that is written to it, or NULL if
126
+ // the control request returns <= 0.
127
+ OPENSSL_EXPORT char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg);
128
+
129
+ // BIO_int_ctrl acts like `BIO_ctrl` but passes the address of a copy of `iarg`
130
+ // as `parg`.
131
+ OPENSSL_EXPORT long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg);
132
+
133
+ // BIO_reset resets `bio` to its initial state, the precise meaning of which
134
+ // depends on the concrete type of `bio`. It normally returns one on success and
135
+ // <= 0 otherwise. However, for file and fd BIOs, it returns zero on success and
136
+ // a negative number on error.
137
+ //
138
+ // WARNING: This function's return value conventions differs from most functions
139
+ // in this library.
140
+ OPENSSL_EXPORT int BIO_reset(BIO *bio);
141
+
142
+ // BIO_eof returns non-zero when `bio` has reached end-of-file. The precise
143
+ // meaning of which depends on the concrete type of `bio`. Note that in the
144
+ // case of BIO_pair this always returns non-zero.
145
+ OPENSSL_EXPORT int BIO_eof(BIO *bio);
146
+
147
+ // BIO_set_flags ORs `flags` with `bio->flags`. Unless otherwise documented,
148
+ // flags are private to either BoringSSL or the custom `BIO_METHOD`.
149
+ OPENSSL_EXPORT void BIO_set_flags(BIO *bio, int flags);
150
+
151
+ // BIO_clear_flags ANDs `bio->flags` with the bitwise-complement of `flags`.
152
+ // Unless otherwise documented, flags are private to either BoringSSL or the
153
+ // custom `BIO_METHOD`.
154
+ OPENSSL_EXPORT void BIO_clear_flags(BIO *bio, int flags);
155
+
156
+ // BIO_test_flags returns `bio->flags` AND `flags`.
157
+ OPENSSL_EXPORT int BIO_test_flags(const BIO *bio, int flags);
158
+
159
+ // BIO_should_read returns non-zero if `bio` encountered a temporary error
160
+ // while reading (i.e. EAGAIN), indicating that the caller should retry the
161
+ // read.
162
+ OPENSSL_EXPORT int BIO_should_read(const BIO *bio);
163
+
164
+ // BIO_should_write returns non-zero if `bio` encountered a temporary error
165
+ // while writing (i.e. EAGAIN), indicating that the caller should retry the
166
+ // write.
167
+ OPENSSL_EXPORT int BIO_should_write(const BIO *bio);
168
+
169
+ // BIO_should_retry returns non-zero if the reason that caused a failed I/O
170
+ // operation is temporary and thus the operation should be retried. Otherwise,
171
+ // it was a permanent error and it returns zero.
172
+ OPENSSL_EXPORT int BIO_should_retry(const BIO *bio);
173
+
174
+ // BIO_should_io_special returns non-zero if `bio` encountered a temporary
175
+ // error while performing a special I/O operation, indicating that the caller
176
+ // should retry. The operation that caused the error is returned by
177
+ // `BIO_get_retry_reason`.
178
+ OPENSSL_EXPORT int BIO_should_io_special(const BIO *bio);
179
+
180
+ // BIO_RR_CONNECT indicates that a connect would have blocked
181
+ #define BIO_RR_CONNECT 0x02
182
+
183
+ // BIO_RR_ACCEPT indicates that an accept would have blocked
184
+ #define BIO_RR_ACCEPT 0x03
185
+
186
+ // BIO_get_retry_reason returns the special I/O operation that needs to be
187
+ // retried. The return value is one of the `BIO_RR_*` values.
188
+ OPENSSL_EXPORT int BIO_get_retry_reason(const BIO *bio);
189
+
190
+ // BIO_set_retry_reason sets the special I/O operation that needs to be retried
191
+ // to `reason`, which should be one of the `BIO_RR_*` values.
192
+ OPENSSL_EXPORT void BIO_set_retry_reason(BIO *bio, int reason);
193
+
194
+ // BIO_set_retry_read sets the `BIO_FLAGS_READ` and `BIO_FLAGS_SHOULD_RETRY`
195
+ // flags on `bio`.
196
+ OPENSSL_EXPORT void BIO_set_retry_read(BIO *bio);
197
+
198
+ // BIO_set_retry_write sets the `BIO_FLAGS_WRITE` and `BIO_FLAGS_SHOULD_RETRY`
199
+ // flags on `bio`.
200
+ OPENSSL_EXPORT void BIO_set_retry_write(BIO *bio);
201
+
202
+ // BIO_get_retry_flags gets the `BIO_FLAGS_READ`, `BIO_FLAGS_WRITE`,
203
+ // `BIO_FLAGS_IO_SPECIAL` and `BIO_FLAGS_SHOULD_RETRY` flags from `bio`.
204
+ OPENSSL_EXPORT int BIO_get_retry_flags(BIO *bio);
205
+
206
+ // BIO_clear_retry_flags clears the `BIO_FLAGS_READ`, `BIO_FLAGS_WRITE`,
207
+ // `BIO_FLAGS_IO_SPECIAL` and `BIO_FLAGS_SHOULD_RETRY` flags from `bio`.
208
+ OPENSSL_EXPORT void BIO_clear_retry_flags(BIO *bio);
209
+
210
+ // BIO_method_type returns the type of `bio`, which is one of the `BIO_TYPE_*`
211
+ // values.
212
+ OPENSSL_EXPORT int BIO_method_type(const BIO *bio);
213
+
214
+ typedef int BIO_info_cb(BIO *, int, int);
215
+
216
+ // BIO_callback_ctrl allows the callback function to be manipulated. The `cmd`
217
+ // arg will generally be `BIO_CTRL_SET_CALLBACK` but arbitrary command values
218
+ // can be interpreted by the `BIO`.
219
+ OPENSSL_EXPORT long BIO_callback_ctrl(BIO *bio, int cmd, BIO_info_cb *fp);
220
+
221
+ // BIO_pending returns the number of bytes pending to be read.
222
+ OPENSSL_EXPORT size_t BIO_pending(const BIO *bio);
223
+
224
+ // BIO_ctrl_pending calls `BIO_pending` and exists only for compatibility with
225
+ // OpenSSL.
226
+ OPENSSL_EXPORT size_t BIO_ctrl_pending(const BIO *bio);
227
+
228
+ // BIO_wpending returns the number of bytes pending to be written.
229
+ OPENSSL_EXPORT size_t BIO_wpending(const BIO *bio);
230
+
231
+ // BIO_set_close sets the close flag for `bio`. The meaning of which depends on
232
+ // the type of `bio` but, for example, a memory BIO interprets the close flag
233
+ // as meaning that it owns its buffer. It returns one on success and zero
234
+ // otherwise.
235
+ OPENSSL_EXPORT int BIO_set_close(BIO *bio, int close_flag);
236
+
237
+ // BIO_number_read returns the number of bytes that have been read from
238
+ // `bio`.
239
+ OPENSSL_EXPORT uint64_t BIO_number_read(const BIO *bio);
240
+
241
+ // BIO_number_written returns the number of bytes that have been written to
242
+ // `bio`.
243
+ OPENSSL_EXPORT uint64_t BIO_number_written(const BIO *bio);
244
+
245
+
246
+ // Managing chains of BIOs.
247
+ //
248
+ // BIOs can be put into chains where the output of one is used as the input of
249
+ // the next etc. The most common case is a buffering BIO, which accepts and
250
+ // buffers writes until flushed into the next BIO in the chain.
251
+
252
+ // BIO_push adds `appended_bio` to the end of the chain with `bio` at the head.
253
+ // It returns `bio`. Note that `appended_bio` may be the head of a chain itself
254
+ // and thus this function can be used to join two chains.
255
+ //
256
+ // BIO_push takes ownership of the caller's reference to `appended_bio`.
257
+ OPENSSL_EXPORT BIO *BIO_push(BIO *bio, BIO *appended_bio);
258
+
259
+ // BIO_pop removes `bio` from the head of a chain and returns the next BIO in
260
+ // the chain, or NULL if there is no next BIO.
261
+ //
262
+ // The caller takes ownership of the chain's reference to `bio`.
263
+ OPENSSL_EXPORT BIO *BIO_pop(BIO *bio);
264
+
265
+ // BIO_next returns the next BIO in the chain after `bio`, or NULL if there is
266
+ // no such BIO.
267
+ OPENSSL_EXPORT BIO *BIO_next(BIO *bio);
268
+
269
+ // BIO_find_type walks a chain of BIOs and returns the first that matches
270
+ // `type`, which is one of the `BIO_TYPE_*` values.
271
+ //
272
+ // If `type & 0xff` is non-zero, i.e. `type` is a complete type and contains an
273
+ // "index" component, the function looks for an exact match. If `type & 0xff` is
274
+ // zero, i.e. `type` just specifies `BIO_TYPE_DESCRIPTOR`, `BIO_TYPE_FILTER`,
275
+ // and `BIO_TYPE_SOURCE_SINK` bits, the function looks for any BIO whose type
276
+ // contains at least one of those bits.
277
+ OPENSSL_EXPORT BIO *BIO_find_type(BIO *bio, int type);
278
+
279
+ // BIO_copy_next_retry sets the retry flags and `retry_reason` of `bio` from
280
+ // the next BIO in the chain.
281
+ OPENSSL_EXPORT void BIO_copy_next_retry(BIO *bio);
282
+
283
+
284
+ // Printf functions.
285
+
286
+ // BIO_printf behaves like `printf` but outputs to `bio` rather than a `FILE`.
287
+ // It returns the number of bytes written or a negative number on error.
288
+ OPENSSL_EXPORT int BIO_printf(BIO *bio, const char *format, ...)
289
+ OPENSSL_PRINTF_FORMAT_FUNC(2, 3);
290
+
291
+
292
+ // Utility functions.
293
+
294
+ // BIO_indent prints min(`indent`, `max_indent`) spaces. It returns one on
295
+ // success and zero otherwise.
296
+ OPENSSL_EXPORT int BIO_indent(BIO *bio, unsigned indent, unsigned max_indent);
297
+
298
+ // BIO_hexdump writes a hex dump of `data` to `bio`. Each line will be indented
299
+ // by `indent` spaces. It returns one on success and zero otherwise.
300
+ OPENSSL_EXPORT int BIO_hexdump(BIO *bio, const uint8_t *data, size_t len,
301
+ unsigned indent);
302
+
303
+ // ERR_print_errors prints the current contents of the error stack to `bio`
304
+ // using human readable strings where possible.
305
+ OPENSSL_EXPORT void ERR_print_errors(BIO *bio);
306
+
307
+ // BIO_read_asn1 reads a single ASN.1 object from `bio`. If successful it sets
308
+ // `*out` to be an allocated buffer (that should be freed with `OPENSSL_free`),
309
+ // `*out_size` to the length, in bytes, of that buffer and returns one.
310
+ // Otherwise it returns zero.
311
+ //
312
+ // If the length of the object is greater than `max_len` or 2^32 then the
313
+ // function will fail. Long-form tags are not supported. If the length of the
314
+ // object is indefinite the full contents of `bio` are read, unless it would be
315
+ // greater than `max_len`, in which case the function fails.
316
+ //
317
+ // If the function fails then some unknown amount of data may have been read
318
+ // from `bio`.
319
+ OPENSSL_EXPORT int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len,
320
+ size_t max_len);
321
+
322
+
323
+ // Memory BIOs.
324
+ //
325
+ // Memory BIOs can be used as a read-only source (with `BIO_new_mem_buf`) or a
326
+ // writable sink (with `BIO_new`, `BIO_s_mem` and `BIO_mem_contents`). Data
327
+ // written to a writable, memory BIO can be recalled by reading from it.
328
+ //
329
+ // Calling `BIO_reset` on a read-only BIO resets it to the original contents.
330
+ // On a writable BIO, it clears any data.
331
+ //
332
+ // If the close flag is set to `BIO_NOCLOSE` (not the default) then the
333
+ // underlying `BUF_MEM` will not be freed when the `BIO` is freed.
334
+ //
335
+ // Memory BIOs support `BIO_gets` and `BIO_puts`.
336
+ //
337
+ // `BIO_ctrl_pending` returns the number of bytes currently stored.
338
+
339
+ // BIO_NOCLOSE and `BIO_CLOSE` can be used as symbolic arguments when a "close
340
+ // flag" is passed to a BIO function.
341
+ #define BIO_NOCLOSE 0
342
+ #define BIO_CLOSE 1
343
+
344
+ // BIO_s_mem returns a `BIO_METHOD` that uses an in-memory buffer.
345
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_mem(void);
346
+
347
+ // BIO_new_mem_buf creates read-only BIO that reads from `len` bytes at `buf`.
348
+ // It returns the BIO or NULL on error. This function does not copy or take
349
+ // ownership of `buf`. The caller must ensure the memory pointed to by `buf`
350
+ // outlives the `BIO`.
351
+ //
352
+ // If `len` is negative, then `buf` is treated as a NUL-terminated string, but
353
+ // don't depend on this in new code.
354
+ OPENSSL_EXPORT BIO *BIO_new_mem_buf(const void *buf, ossl_ssize_t len);
355
+
356
+ // BIO_mem_contents sets `*out_contents` to point to the current contents of
357
+ // `bio` and `*out_len` to contain the length of that data. It returns one on
358
+ // success and zero otherwise.
359
+ OPENSSL_EXPORT int BIO_mem_contents(const BIO *bio,
360
+ const uint8_t **out_contents,
361
+ size_t *out_len);
362
+
363
+ // BIO_get_mem_data sets `*contents` to point to the current contents of `bio`
364
+ // and returns the length of the data.
365
+ //
366
+ // WARNING: don't use this, use `BIO_mem_contents`. A return value of zero from
367
+ // this function can mean either that it failed or that the memory buffer is
368
+ // empty.
369
+ OPENSSL_EXPORT long BIO_get_mem_data(BIO *bio, char **contents);
370
+
371
+ // BIO_get_mem_ptr sets `*out` to a BUF_MEM containing the current contents of
372
+ // `bio`. It returns one on success or zero on error.
373
+ OPENSSL_EXPORT int BIO_get_mem_ptr(BIO *bio, BUF_MEM **out);
374
+
375
+ // BIO_set_mem_buf sets `b` as the contents of `bio`. If `take_ownership` is
376
+ // non-zero, then `b` will be freed when `bio` is closed. Returns one on
377
+ // success or zero otherwise.
378
+ OPENSSL_EXPORT int BIO_set_mem_buf(BIO *bio, BUF_MEM *b, int take_ownership);
379
+
380
+ // BIO_set_mem_eof_return sets the value that will be returned from reading
381
+ // `bio` when empty. If `eof_value` is zero then an empty memory BIO will
382
+ // return EOF (that is it will return zero and `BIO_should_retry` will be
383
+ // false). If `eof_value` is non zero then it will return `eof_value` when it
384
+ // is empty and it will set the read retry flag (that is `BIO_read_retry` is
385
+ // true). To avoid ambiguity with a normal positive return value, `eof_value`
386
+ // should be set to a negative value, typically -1.
387
+ //
388
+ // For a read-only BIO, the default is zero (EOF). For a writable BIO, the
389
+ // default is -1 so that additional data can be written once exhausted.
390
+ OPENSSL_EXPORT int BIO_set_mem_eof_return(BIO *bio, int eof_value);
391
+
392
+
393
+ // File descriptor BIOs.
394
+ //
395
+ // File descriptor BIOs are wrappers around the system's `read` and `write`
396
+ // functions. If the close flag is set then `close` is called on the
397
+ // underlying file descriptor when the BIO is freed.
398
+ //
399
+ // `BIO_reset` attempts to seek the file pointer to the start of file using
400
+ // `lseek`.
401
+
402
+ #if !defined(OPENSSL_NO_POSIX_IO)
403
+ // BIO_s_fd returns a `BIO_METHOD` for file descriptor fds.
404
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_fd(void);
405
+
406
+ // BIO_new_fd creates a new file descriptor BIO wrapping `fd`. If `close_flag`
407
+ // is non-zero, then `fd` will be closed when the BIO is.
408
+ OPENSSL_EXPORT BIO *BIO_new_fd(int fd, int close_flag);
409
+ #endif
410
+
411
+ // BIO_set_fd sets the file descriptor of `bio` to `fd`. If `close_flag` is
412
+ // non-zero then `fd` will be closed when `bio` is. It returns one on success
413
+ // or zero on error.
414
+ //
415
+ // This function may also be used with socket BIOs (see `BIO_s_socket` and
416
+ // `BIO_new_socket`).
417
+ OPENSSL_EXPORT int BIO_set_fd(BIO *bio, int fd, int close_flag);
418
+
419
+ // BIO_get_fd returns the file descriptor currently in use by `bio` or -1 if
420
+ // `bio` does not wrap a file descriptor. If there is a file descriptor and
421
+ // `out_fd` is not NULL, it also sets `*out_fd` to the file descriptor.
422
+ //
423
+ // This function may also be used with socket BIOs (see `BIO_s_socket` and
424
+ // `BIO_new_socket`).
425
+ OPENSSL_EXPORT int BIO_get_fd(BIO *bio, int *out_fd);
426
+
427
+
428
+ // File BIOs.
429
+ //
430
+ // File BIOs are wrappers around a C `FILE` object.
431
+ //
432
+ // `BIO_flush` on a file BIO calls `fflush` on the wrapped stream.
433
+ //
434
+ // `BIO_reset` attempts to seek the file pointer to the start of file using
435
+ // `fseek`.
436
+ //
437
+ // Setting the close flag causes `fclose` to be called on the stream when the
438
+ // BIO is freed.
439
+
440
+ // BIO_s_file returns a BIO_METHOD that wraps a `FILE`.
441
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_file(void);
442
+
443
+ // BIO_new_file creates a file BIO by opening `filename` with the given mode.
444
+ // See the `fopen` manual page for details of the mode argument. On Windows,
445
+ // files may be opened in either binary or text mode so, as in `fopen`, callers
446
+ // must specify the desired option in `mode`.
447
+ OPENSSL_EXPORT BIO *BIO_new_file(const char *filename, const char *mode);
448
+
449
+ // BIO_FP_TEXT indicates the `FILE` should be switched to text mode on Windows.
450
+ // It has no effect on non-Windows platforms.
451
+ #define BIO_FP_TEXT 0x10
452
+
453
+ // BIO_new_fp creates a new file BIO that wraps `file`. If `flags` contains
454
+ // `BIO_CLOSE`, then `fclose` will be called on `file` when the BIO is closed.
455
+ //
456
+ // On Windows, if `flags` contains `BIO_FP_TEXT`, this function will
457
+ // additionally switch `file` to text mode. This is not recommended, but may be
458
+ // required for OpenSSL compatibility. If `file` was not already in text mode,
459
+ // mode changes can cause unflushed data in `file` to be written in unexpected
460
+ // ways. See `_setmode` in Windows documentation for details.
461
+ //
462
+ // Unlike OpenSSL, if `flags` does not contain `BIO_FP_TEXT`, the translation
463
+ // mode of `file` is left as-is. In OpenSSL, `file` will be set to binary, with
464
+ // the same pitfalls as above. BoringSSL does not do this so that wrapping a
465
+ // `FILE` in a `BIO` will not inadvertently change its state.
466
+ //
467
+ // To avoid these pitfalls, callers should set the desired translation mode when
468
+ // opening the file. If targeting just BoringSSL, this is sufficient. If
469
+ // targeting both OpenSSL and BoringSSL, callers should set `BIO_FP_TEXT` to
470
+ // match the desired state of the file.
471
+ OPENSSL_EXPORT BIO *BIO_new_fp(FILE *file, int flags);
472
+
473
+ // BIO_get_fp sets `*out_file` to the current `FILE` for `bio`. It returns one
474
+ // on success and zero otherwise.
475
+ OPENSSL_EXPORT int BIO_get_fp(BIO *bio, FILE **out_file);
476
+
477
+ // BIO_set_fp sets the `FILE` for `bio`. If `flags` contains `BIO_CLOSE` then
478
+ // `fclose` will be called on `file` when `bio` is closed. It returns one on
479
+ // success and zero otherwise.
480
+ //
481
+ // On Windows, if `flags` contains `BIO_FP_TEXT`, this function will
482
+ // additionally switch `file` to text mode. This is not recommended, but may be
483
+ // required for OpenSSL compatibility. If `file` was not already in text mode,
484
+ // mode changes can cause unflushed data in `file` to be written in unexpected
485
+ // ways. See `_setmode` in Windows documentation for details.
486
+ //
487
+ // Unlike OpenSSL, if `flags` does not contain `BIO_FP_TEXT`, the translation
488
+ // mode of `file` is left as-is. In OpenSSL, `file` will be set to binary, with
489
+ // the same pitfalls as above. BoringSSL does not do this so that wrapping a
490
+ // `FILE` in a `BIO` will not inadvertently change its state.
491
+ //
492
+ // To avoid these pitfalls, callers should set the desired translation mode when
493
+ // opening the file. If targeting just BoringSSL, this is sufficient. If
494
+ // targeting both OpenSSL and BoringSSL, callers should set `BIO_FP_TEXT` to
495
+ // match the desired state of the file.
496
+ OPENSSL_EXPORT int BIO_set_fp(BIO *bio, FILE *file, int flags);
497
+
498
+ // BIO_read_filename opens `filename` for reading and sets the result as the
499
+ // `FILE` for `bio`. It returns one on success and zero otherwise. The `FILE`
500
+ // will be closed when `bio` is freed. On Windows, the file is opened in binary
501
+ // mode.
502
+ OPENSSL_EXPORT int BIO_read_filename(BIO *bio, const char *filename);
503
+
504
+ // BIO_write_filename opens `filename` for writing and sets the result as the
505
+ // `FILE` for `bio`. It returns one on success and zero otherwise. The `FILE`
506
+ // will be closed when `bio` is freed. On Windows, the file is opened in binary
507
+ // mode.
508
+ OPENSSL_EXPORT int BIO_write_filename(BIO *bio, const char *filename);
509
+
510
+ // BIO_append_filename opens `filename` for appending and sets the result as
511
+ // the `FILE` for `bio`. It returns one on success and zero otherwise. The
512
+ // `FILE` will be closed when `bio` is freed. On Windows, the file is opened in
513
+ // binary mode.
514
+ OPENSSL_EXPORT int BIO_append_filename(BIO *bio, const char *filename);
515
+
516
+ // BIO_rw_filename opens `filename` for reading and writing and sets the result
517
+ // as the `FILE` for `bio`. It returns one on success and zero otherwise. The
518
+ // `FILE` will be closed when `bio` is freed. On Windows, the file is opened in
519
+ // binary mode.
520
+ OPENSSL_EXPORT int BIO_rw_filename(BIO *bio, const char *filename);
521
+
522
+ // BIO_tell returns the file offset of `bio`, or a negative number on error or
523
+ // if `bio` does not support the operation.
524
+ //
525
+ // TODO(crbug.com/42290329): On platforms where `long` is 32-bit, this function
526
+ // cannot report 64-bit offsets.
527
+ OPENSSL_EXPORT long BIO_tell(BIO *bio);
528
+
529
+ // BIO_seek sets the file offset of `bio` to `offset`. It returns a non-negative
530
+ // number on success and a negative number on error. If `bio` is a file
531
+ // descriptor `BIO`, it returns the resulting file offset on success. If `bio`
532
+ // is a file `BIO`, it returns zero on success.
533
+ //
534
+ // WARNING: This function's return value conventions differs from most functions
535
+ // in this library.
536
+ //
537
+ // TODO(crbug.com/42290329): On platforms where `long` is 32-bit, this function
538
+ // cannot handle 64-bit offsets.
539
+ OPENSSL_EXPORT long BIO_seek(BIO *bio, long offset);
540
+
541
+
542
+ // Socket BIOs.
543
+ //
544
+ // Socket BIOs behave like file descriptor BIOs but, on Windows systems, wrap
545
+ // the system's `recv` and `send` functions instead of `read` and `write`. On
546
+ // Windows, file descriptors are provided by C runtime and are not
547
+ // interchangeable with sockets.
548
+ //
549
+ // Socket BIOs may be used with `BIO_set_fd` and `BIO_get_fd`.
550
+ //
551
+ // TODO(davidben): Add separate APIs and fix the internals to use `SOCKET`s
552
+ // around rather than rely on int casts.
553
+
554
+ #if !defined(OPENSSL_NO_SOCK)
555
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_socket(void);
556
+
557
+ // BIO_new_socket allocates and initialises a fresh BIO which will read and
558
+ // write to the socket `fd`. If `close_flag` is `BIO_CLOSE` then closing the
559
+ // BIO will close `fd`. It returns the fresh `BIO` or NULL on error.
560
+ OPENSSL_EXPORT BIO *BIO_new_socket(int fd, int close_flag);
561
+ #endif // !OPENSSL_NO_SOCK
562
+
563
+
564
+ // Connect BIOs.
565
+ //
566
+ // A connection BIO creates a network connection and transfers data over the
567
+ // resulting socket.
568
+
569
+ #if !defined(OPENSSL_NO_SOCK)
570
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_connect(void);
571
+
572
+ // BIO_new_connect returns a BIO that connects to the given hostname and port.
573
+ // The `host_and_optional_port` argument should be of the form
574
+ // "www.example.com" or "www.example.com:443". If the port is omitted, it must
575
+ // be provided with `BIO_set_conn_port`.
576
+ //
577
+ // It returns the new BIO on success, or NULL on error.
578
+ OPENSSL_EXPORT BIO *BIO_new_connect(const char *host_and_optional_port);
579
+
580
+ // BIO_set_conn_hostname sets `host_and_optional_port` as the hostname and
581
+ // optional port that `bio` will connect to. If the port is omitted, it must be
582
+ // provided with `BIO_set_conn_port`.
583
+ //
584
+ // It returns one on success and zero otherwise.
585
+ OPENSSL_EXPORT int BIO_set_conn_hostname(BIO *bio,
586
+ const char *host_and_optional_port);
587
+
588
+ // BIO_set_conn_port sets `port_str` as the port or service name that `bio`
589
+ // will connect to. It returns one on success and zero otherwise.
590
+ OPENSSL_EXPORT int BIO_set_conn_port(BIO *bio, const char *port_str);
591
+
592
+ // BIO_set_conn_int_port sets `*port` as the port that `bio` will connect to.
593
+ // It returns one on success and zero otherwise.
594
+ OPENSSL_EXPORT int BIO_set_conn_int_port(BIO *bio, const int *port);
595
+
596
+ // BIO_set_nbio sets whether `bio` will use non-blocking I/O operations. It
597
+ // returns one on success and zero otherwise. This only works for connect BIOs
598
+ // and must be called before `bio` is connected to take effect.
599
+ //
600
+ // For socket and fd BIOs, callers must configure blocking vs. non-blocking I/O
601
+ // using the underlying platform APIs.
602
+ OPENSSL_EXPORT int BIO_set_nbio(BIO *bio, int on);
603
+
604
+ // BIO_do_connect connects `bio` if it has not been connected yet. It returns
605
+ // one on success and <= 0 otherwise.
606
+ OPENSSL_EXPORT int BIO_do_connect(BIO *bio);
607
+ #endif // !OPENSSL_NO_SOCK
608
+
609
+
610
+ // Datagram BIOs.
611
+ //
612
+ // TODO(fork): not implemented.
613
+
614
+ #define BIO_CTRL_DGRAM_QUERY_MTU 40 // as kernel for current MTU
615
+
616
+ #define BIO_CTRL_DGRAM_SET_MTU 42 /* set cached value for MTU. want to use
617
+ this if asking the kernel fails */
618
+
619
+ #define BIO_CTRL_DGRAM_MTU_EXCEEDED 43 /* check whether the MTU was exceed in
620
+ the previous write operation. */
621
+
622
+ // BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT is unsupported as it is unused by consumers
623
+ // and depends on `timeval`, which is not 2038-clean on all platforms.
624
+
625
+ #define BIO_CTRL_DGRAM_GET_PEER 46
626
+
627
+ #define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47
628
+
629
+
630
+ // BIO Pairs.
631
+ //
632
+ // BIO pairs provide a "loopback" like system: a pair of BIOs where data
633
+ // written to one can be read from the other and vice versa.
634
+
635
+ // BIO_new_bio_pair sets `*out1` and `*out2` to two freshly created BIOs where
636
+ // data written to one can be read from the other and vice versa. The
637
+ // `writebuf1` argument gives the size of the buffer used in `*out1` and
638
+ // `writebuf2` for `*out2`. It returns one on success and zero on error.
639
+ OPENSSL_EXPORT int BIO_new_bio_pair(BIO **out1, size_t writebuf1, BIO **out2,
640
+ size_t writebuf2);
641
+
642
+ // BIO_ctrl_get_read_request returns the number of bytes that the other side of
643
+ // `bio` tried (unsuccessfully) to read.
644
+ OPENSSL_EXPORT size_t BIO_ctrl_get_read_request(BIO *bio);
645
+
646
+ // BIO_ctrl_get_write_guarantee returns the number of bytes that `bio` (which
647
+ // must have been returned by `BIO_new_bio_pair`) will accept on the next
648
+ // `BIO_write` call.
649
+ OPENSSL_EXPORT size_t BIO_ctrl_get_write_guarantee(BIO *bio);
650
+
651
+ // BIO_shutdown_wr marks `bio` as closed, from the point of view of the other
652
+ // side of the pair. Future `BIO_write` calls on `bio` will fail. It returns
653
+ // one on success and zero otherwise.
654
+ OPENSSL_EXPORT int BIO_shutdown_wr(BIO *bio);
655
+
656
+
657
+ // Custom BIOs.
658
+ //
659
+ // Consumers can create custom `BIO`s by filling in a `BIO_METHOD` and using
660
+ // low-level control functions to set state.
661
+
662
+ // BIO_get_new_index returns a new "type" value for a custom `BIO`, or -1 on
663
+ // error.
664
+ OPENSSL_EXPORT int BIO_get_new_index(void);
665
+
666
+ // BIO_meth_new returns a newly-allocated `BIO_METHOD` or NULL on allocation
667
+ // error. `type` and `name` optionally identify the `BIO_METHOD`. Most callers
668
+ // will not need to inspect the type of their own `BIO`s and can pass zero and
669
+ // NULL, respectively, to skip this mechanism.
670
+ //
671
+ // `type` specifies the type that will be returned by `BIO_method_type` and
672
+ // matched by `BIO_find_type`. If used, it should be a combination of an index,
673
+ // allocated by `BIO_get_new_index`, and optionally the `BIO_TYPE_DESCRIPTOR`,
674
+ // `BIO_TYPE_FILTER`, and `BIO_TYPE_SOURCE_SINK` flags. If `BIO_TYPE_DESCRIPTOR`
675
+ // is set, the `BIO_METHOD` must implement `BIO_C_GET_FD`.
676
+ //
677
+ // `name` is unused. BoringSSL does not currently implement `BIO_method_name`.
678
+ //
679
+ // Use the `BIO_meth_set_*` functions below to initialize the `BIO_METHOD`. The
680
+ // function implementations may use `BIO_set_data` and `BIO_get_data` to add
681
+ // method-specific state to associated `BIO`s. Additionally, `BIO_set_init` must
682
+ // be called after an associated `BIO` is fully initialized. State set via
683
+ // `BIO_set_data` may be released by configuring a destructor with
684
+ // `BIO_meth_set_destroy`.
685
+ OPENSSL_EXPORT BIO_METHOD *BIO_meth_new(int type, const char *name);
686
+
687
+ // BIO_meth_free releases memory associated with `method`.
688
+ OPENSSL_EXPORT void BIO_meth_free(BIO_METHOD *method);
689
+
690
+ // BIO_meth_set_create sets a function to be called on `BIO_new` for `method`
691
+ // and returns one. The function should return one on success and zero on
692
+ // error.
693
+ OPENSSL_EXPORT int BIO_meth_set_create(BIO_METHOD *method,
694
+ int (*create_func)(BIO *));
695
+
696
+ // BIO_meth_set_destroy sets a function to release data associated with a `BIO`
697
+ // and returns one. The function's return value is ignored.
698
+ //
699
+ // As the `BIO` is about to be destroyed, it is not necessary for `destroy_func`
700
+ // to clear the BIO's state with `BIO_set_data` or `BIO_set_init`. There is no
701
+ // harm in clearing them, but the `BIO` will not be passed to `BIO` operations,
702
+ // unless `destroy_func` itself does so.
703
+ OPENSSL_EXPORT int BIO_meth_set_destroy(BIO_METHOD *method,
704
+ int (*destroy_func)(BIO *));
705
+
706
+ // BIO_meth_set_write_ex sets the implementation of `BIO_write_ex` for `method`
707
+ // and returns one. `BIO_METHOD`s which implement `BIO_write_ex` should also
708
+ // implement `BIO_CTRL_FLUSH`. (See `BIO_meth_set_ctrl`.)
709
+ //
710
+ // `write_ex_func` can assume `BIO_get_init` returns one, the input size is
711
+ // greater than zero, and `out_written` is non-NULL. Those cases are handled
712
+ // before calling into the `BIO_METHOD`.
713
+ //
714
+ // If configured, `write_ex_func` will also be used to implement `BIO_write`,
715
+ // with the `BIO` framework converting the conventions. `BIO_meth_set_write_ex`
716
+ // and `BIO_meth_set_write` should not be configured on the same `BIO_METHOD`.
717
+ // Prefer `BIO_meth_set_write_ex` for a `size_t`-based API.
718
+ OPENSSL_EXPORT int BIO_meth_set_write_ex(
719
+ BIO_METHOD *method,
720
+ int (*write_ex_func)(BIO *, const char *, size_t, size_t *));
721
+
722
+ // BIO_meth_set_write sets the implementation of `BIO_write` for `method` and
723
+ // returns one. `BIO_METHOD`s which implement `BIO_write` should also implement
724
+ // `BIO_CTRL_FLUSH`. (See `BIO_meth_set_ctrl`.)
725
+ //
726
+ // `write_func` can assume `BIO_get_init` returns one and the input size is
727
+ // greater than zero. Those cases are handled before calling into the
728
+ // `BIO_METHOD`.
729
+ //
730
+ // If configured, `write_func` will also be used to implement `BIO_write_ex`,
731
+ // with the `BIO` framework converting the conventions. `BIO_meth_set_write_ex`
732
+ // and `BIO_meth_set_write` should not be configured on the same `BIO_METHOD`.
733
+ // Prefer `BIO_meth_set_write_ex` for a `size_t`-based API.
734
+ OPENSSL_EXPORT int BIO_meth_set_write(BIO_METHOD *method,
735
+ int (*write_func)(BIO *, const char *,
736
+ int));
737
+
738
+ // BIO_meth_set_read sets the implementation of `BIO_read` for `method` and
739
+ // returns one.
740
+ //
741
+ // `read_func` can assume `BIO_get_init` returns one and the output size is
742
+ // greater than zero. Those cases are handled before calling into the
743
+ // `BIO_METHOD`.
744
+ OPENSSL_EXPORT int BIO_meth_set_read(BIO_METHOD *method,
745
+ int (*read_func)(BIO *, char *, int));
746
+
747
+ // BIO_meth_set_gets sets the implementation of `BIO_gets` for `method` and
748
+ // returns one.
749
+ //
750
+ // `gets_func` can assume `BIO_get_init` returns one and the output size is
751
+ // greater than zero. Those cases are handled before calling into the
752
+ // `BIO_METHOD`.
753
+ OPENSSL_EXPORT int BIO_meth_set_gets(BIO_METHOD *method,
754
+ int (*gets_func)(BIO *, char *, int));
755
+
756
+ // BIO_meth_set_ctrl sets the implementation of `BIO_ctrl` for `method` and
757
+ // returns one.
758
+ OPENSSL_EXPORT int BIO_meth_set_ctrl(BIO_METHOD *method,
759
+ long (*ctrl_func)(BIO *, int, long,
760
+ void *));
761
+
762
+ // BIO_meth_set_callback_ctrl sets the implementation of `BIO_callback_ctrl` for
763
+ // `method` and returns one.
764
+ OPENSSL_EXPORT int BIO_meth_set_callback_ctrl(
765
+ BIO_METHOD *method, long (*callback_ctrl_func)(BIO *, int, BIO_info_cb *));
766
+
767
+ // BIO_set_data sets custom data on `bio`. It may be retried with
768
+ // `BIO_get_data`.
769
+ //
770
+ // This function should only be called by the implementation of a custom `BIO`.
771
+ // In particular, the data pointer of a built-in `BIO` is private to the
772
+ // library. For other uses, see `BIO_set_ex_data` and `BIO_set_app_data`.
773
+ OPENSSL_EXPORT void BIO_set_data(BIO *bio, void *ptr);
774
+
775
+ // BIO_get_data returns custom data on `bio` set by `BIO_get_data`.
776
+ //
777
+ // This function should only be called by the implementation of a custom `BIO`.
778
+ // In particular, the data pointer of a built-in `BIO` is private to the
779
+ // library. For other uses, see `BIO_get_ex_data` and `BIO_get_app_data`.
780
+ OPENSSL_EXPORT void *BIO_get_data(BIO *bio);
781
+
782
+ // BIO_set_init sets whether `bio` has been fully initialized. Until fully
783
+ // initialized, `BIO_read` and `BIO_write` will fail.
784
+ OPENSSL_EXPORT void BIO_set_init(BIO *bio, int init);
785
+
786
+ // BIO_get_init returns whether `bio` has been fully initialized.
787
+ OPENSSL_EXPORT int BIO_get_init(BIO *bio);
788
+
789
+ // These are values of the `cmd` argument to `BIO_ctrl`.
790
+
791
+ // BIO_CTRL_RESET implements `BIO_reset`. The arguments are unused.
792
+ #define BIO_CTRL_RESET 1
793
+
794
+ // BIO_CTRL_EOF implements `BIO_eof`. The arguments are unused.
795
+ #define BIO_CTRL_EOF 2
796
+
797
+ // BIO_CTRL_INFO is a legacy command that returns information specific to the
798
+ // type of `BIO`. It is not safe to call generically and should not be
799
+ // implemented in new `BIO` types.
800
+ #define BIO_CTRL_INFO 3
801
+
802
+ // BIO_CTRL_GET_CLOSE returns the close flag set by `BIO_CTRL_SET_CLOSE`. The
803
+ // arguments are unused.
804
+ #define BIO_CTRL_GET_CLOSE 8
805
+
806
+ // BIO_CTRL_SET_CLOSE implements `BIO_set_close`. The `larg` argument is the
807
+ // close flag.
808
+ #define BIO_CTRL_SET_CLOSE 9
809
+
810
+ // BIO_CTRL_PENDING implements `BIO_pending`. The arguments are unused.
811
+ #define BIO_CTRL_PENDING 10
812
+
813
+ // BIO_CTRL_FLUSH implements `BIO_flush`. The arguments are unused.
814
+ #define BIO_CTRL_FLUSH 11
815
+
816
+ // BIO_CTRL_WPENDING implements `BIO_wpending`. The arguments are unused.
817
+ #define BIO_CTRL_WPENDING 13
818
+
819
+ // BIO_CTRL_SET_CALLBACK sets an informational callback of type
820
+ // int cb(BIO *bio, int state, int ret)
821
+ #define BIO_CTRL_SET_CALLBACK 14
822
+
823
+ // BIO_CTRL_GET_CALLBACK returns the callback set by `BIO_CTRL_SET_CALLBACK`.
824
+ #define BIO_CTRL_GET_CALLBACK 15
825
+
826
+ // The following are never used, but are defined to aid porting existing code.
827
+ #define BIO_CTRL_SET 4
828
+ #define BIO_CTRL_GET 5
829
+ #define BIO_CTRL_PUSH 6
830
+ #define BIO_CTRL_POP 7
831
+ #define BIO_CTRL_DUP 12
832
+ #define BIO_CTRL_SET_FILENAME 30
833
+
834
+
835
+ // ex_data functions.
836
+ //
837
+ // See `ex_data.h` for details.
838
+
839
+ OPENSSL_EXPORT int BIO_get_ex_new_index(long argl, void *argp,
840
+ CRYPTO_EX_unused *unused,
841
+ CRYPTO_EX_dup *dup_unused,
842
+ CRYPTO_EX_free *free_func);
843
+ OPENSSL_EXPORT int BIO_set_ex_data(BIO *bio, int idx, void *arg);
844
+ OPENSSL_EXPORT void *BIO_get_ex_data(const BIO *bio, int idx);
845
+
846
+ #define BIO_set_app_data(bio, arg) (BIO_set_ex_data(bio, 0, (char *)(arg)))
847
+ #define BIO_get_app_data(bio) (BIO_get_ex_data(bio, 0))
848
+
849
+
850
+ // Deprecated functions.
851
+
852
+ // BIO_free_all calls `BIO_free`. Code that targets BoringSSL does not need to
853
+ // call a separate free function for `BIO`s that are part of a chain.
854
+ OPENSSL_EXPORT void BIO_free_all(BIO *bio);
855
+
856
+ typedef BIO_info_cb bio_info_cb;
857
+
858
+ // BIO_f_base64 returns a filter `BIO` that base64-encodes data written into
859
+ // it, and decodes data read from it. `BIO_gets` is not supported. Call
860
+ // `BIO_flush` when done writing, to signal that no more data are to be
861
+ // encoded. The flag `BIO_FLAGS_BASE64_NO_NL` may be set to encode all the data
862
+ // on one line.
863
+ //
864
+ // Use `EVP_EncodeBlock` and `EVP_DecodeBase64` instead.
865
+ OPENSSL_EXPORT const BIO_METHOD *BIO_f_base64(void);
866
+
867
+ OPENSSL_EXPORT void BIO_set_retry_special(BIO *bio);
868
+
869
+ // BIO_set_write_buffer_size returns zero.
870
+ OPENSSL_EXPORT int BIO_set_write_buffer_size(BIO *bio, int buffer_size);
871
+
872
+ // BIO_set_shutdown sets a method-specific "shutdown" bit on `bio`.
873
+ OPENSSL_EXPORT void BIO_set_shutdown(BIO *bio, int shutdown);
874
+
875
+ // BIO_get_shutdown returns the method-specific "shutdown" bit.
876
+ OPENSSL_EXPORT int BIO_get_shutdown(BIO *bio);
877
+
878
+ // BIO_meth_set_puts returns one. `BIO_puts` is implemented with `BIO_write` in
879
+ // BoringSSL.
880
+ OPENSSL_EXPORT int BIO_meth_set_puts(BIO_METHOD *method,
881
+ int (*puts)(BIO *, const char *));
882
+
883
+ #if !defined(OPENSSL_NO_SOCK)
884
+ // The following functions return function pointers, possibly NULL, which are
885
+ // compatible with the corresponding `BIO_meth_set_*` function. `method` must be
886
+ // `BIO_s_socket` or the program will abort.
887
+ //
888
+ // Using these functions is inherently unsafe and fragile. It is not possible to
889
+ // use them in a future-proof way. See
890
+ // https://github.com/openssl/openssl/issues/26047 for details. BoringSSL
891
+ // implements them solely for compatibility with Folly and older versions of
892
+ // PostgreSQL. To work around the future-proofing problems, the return values
893
+ // may diverge from the true implementation of `BIO_s_socket`.
894
+ //
895
+ // Caller should not use these functions. They are not necessary to define
896
+ // custom `BIO_METHOD`s. Instead, callers should either:
897
+ //
898
+ // - Define a custom `BIO_METHOD` that owns a socket `BIO` somewhere in the
899
+ // custom data. See `BIO_set_data`.
900
+ //
901
+ // - Define a custom `BIO_METHOD` that wraps a socket `BIO` as a filter. See
902
+ // `BIO_push` and `BIO_next`.
903
+ //
904
+ // - Define a custom `BIO_METHOD` without `BIO_s_socket` at all. If not using
905
+ // the built-in read or write functions, `BIO_s_socket` only provides a no-op
906
+ // `BIO_CTRL_FLUSH` implementation. This can be implemented by the caller.
907
+ OPENSSL_EXPORT int (*BIO_meth_get_write(const BIO_METHOD *method))(BIO *,
908
+ const char *,
909
+ int);
910
+ OPENSSL_EXPORT int (*BIO_meth_get_read(const BIO_METHOD *method))(BIO *, char *,
911
+ int);
912
+ OPENSSL_EXPORT int (*BIO_meth_get_gets(const BIO_METHOD *method))(BIO *, char *,
913
+ int);
914
+ OPENSSL_EXPORT int (*BIO_meth_get_puts(const BIO_METHOD *method))(BIO *,
915
+ const char *);
916
+ OPENSSL_EXPORT long (*BIO_meth_get_ctrl(const BIO_METHOD *method))(BIO *, int,
917
+ long,
918
+ void *);
919
+ OPENSSL_EXPORT int (*BIO_meth_get_create(const BIO_METHOD *method))(BIO *);
920
+ OPENSSL_EXPORT int (*BIO_meth_get_destroy(const BIO_METHOD *method))(BIO *);
921
+ OPENSSL_EXPORT long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *method))(
922
+ BIO *, int, BIO_info_cb *);
923
+ #endif // !OPENSSL_NO_SOCK
924
+
925
+
926
+ // Private functions
927
+
928
+ #define BIO_FLAGS_READ 0x01
929
+ #define BIO_FLAGS_WRITE 0x02
930
+ #define BIO_FLAGS_IO_SPECIAL 0x04
931
+ #define BIO_FLAGS_RWS (BIO_FLAGS_READ | BIO_FLAGS_WRITE | BIO_FLAGS_IO_SPECIAL)
932
+ #define BIO_FLAGS_SHOULD_RETRY 0x08
933
+ #define BIO_FLAGS_BASE64_NO_NL 0x100
934
+ // BIO_FLAGS_MEM_RDONLY is used with memory BIOs. It means we shouldn't free up
935
+ // or change the data in any way.
936
+ #define BIO_FLAGS_MEM_RDONLY 0x200
937
+
938
+ // BIO_TYPE_DESCRIPTOR denotes that the `BIO` responds to the `BIO_C_SET_FD`
939
+ // (`BIO_set_fd`) and `BIO_C_GET_FD` (`BIO_get_fd`) control hooks.
940
+ #define BIO_TYPE_DESCRIPTOR 0x0100 // socket, fd, connect or accept
941
+ #define BIO_TYPE_FILTER 0x0200
942
+ #define BIO_TYPE_SOURCE_SINK 0x0400
943
+
944
+ // These are the 'types' of BIOs
945
+ #define BIO_TYPE_NONE 0
946
+ #define BIO_TYPE_MEM (1 | BIO_TYPE_SOURCE_SINK)
947
+ #define BIO_TYPE_FILE (2 | BIO_TYPE_SOURCE_SINK)
948
+ #define BIO_TYPE_FD (4 | BIO_TYPE_SOURCE_SINK | BIO_TYPE_DESCRIPTOR)
949
+ #define BIO_TYPE_SOCKET (5 | BIO_TYPE_SOURCE_SINK | BIO_TYPE_DESCRIPTOR)
950
+ #define BIO_TYPE_NULL (6 | BIO_TYPE_SOURCE_SINK)
951
+ #define BIO_TYPE_SSL (7 | BIO_TYPE_FILTER)
952
+ #define BIO_TYPE_MD (8 | BIO_TYPE_FILTER)
953
+ #define BIO_TYPE_BUFFER (9 | BIO_TYPE_FILTER)
954
+ #define BIO_TYPE_CIPHER (10 | BIO_TYPE_FILTER)
955
+ #define BIO_TYPE_BASE64 (11 | BIO_TYPE_FILTER)
956
+ #define BIO_TYPE_CONNECT (12 | BIO_TYPE_SOURCE_SINK | BIO_TYPE_DESCRIPTOR)
957
+ #define BIO_TYPE_ACCEPT (13 | BIO_TYPE_SOURCE_SINK | BIO_TYPE_DESCRIPTOR)
958
+ #define BIO_TYPE_PROXY_CLIENT (14 | BIO_TYPE_FILTER)
959
+ #define BIO_TYPE_PROXY_SERVER (15 | BIO_TYPE_FILTER)
960
+ #define BIO_TYPE_NBIO_TEST (16 | BIO_TYPE_FILTER)
961
+ #define BIO_TYPE_NULL_FILTER (17 | BIO_TYPE_FILTER)
962
+ #define BIO_TYPE_BER (18 | BIO_TYPE_FILTER) // BER -> bin filter
963
+ #define BIO_TYPE_BIO (19 | BIO_TYPE_SOURCE_SINK) // (half a) BIO pair
964
+ #define BIO_TYPE_LINEBUFFER (20 | BIO_TYPE_FILTER)
965
+ #define BIO_TYPE_DGRAM (21 | BIO_TYPE_SOURCE_SINK | BIO_TYPE_DESCRIPTOR)
966
+ #define BIO_TYPE_ASN1 (22 | BIO_TYPE_FILTER)
967
+ #define BIO_TYPE_COMP (23 | BIO_TYPE_FILTER)
968
+
969
+ // BIO_TYPE_START is the first user-allocated `BIO` type. No pre-defined type,
970
+ // flag bits aside, may exceed this value.
971
+ #define BIO_TYPE_START 128
972
+
973
+ #define BIO_C_SET_CONNECT 100
974
+ #define BIO_C_DO_STATE_MACHINE 101
975
+ #define BIO_C_SET_NBIO 102
976
+ #define BIO_C_SET_PROXY_PARAM 103
977
+ #define BIO_C_SET_FD 104
978
+ #define BIO_C_GET_FD 105
979
+ #define BIO_C_SET_FILE_PTR 106
980
+ #define BIO_C_GET_FILE_PTR 107
981
+ #define BIO_C_SET_FILENAME 108
982
+ #define BIO_C_SET_SSL 109
983
+ #define BIO_C_SET_MD 111
984
+ #define BIO_C_GET_MD 112
985
+ #define BIO_C_GET_CIPHER_STATUS 113
986
+ #define BIO_C_SET_BUF_MEM 114
987
+ #define BIO_C_GET_BUF_MEM_PTR 115
988
+ #define BIO_C_GET_BUFF_NUM_LINES 116
989
+ #define BIO_C_SET_BUFF_SIZE 117
990
+ #define BIO_C_SET_ACCEPT 118
991
+ #define BIO_C_SSL_MODE 119
992
+ #define BIO_C_GET_MD_CTX 120
993
+ #define BIO_C_GET_PROXY_PARAM 121
994
+ #define BIO_C_SET_BUFF_READ_DATA 122 // data to read first
995
+ #define BIO_C_GET_ACCEPT 124
996
+ #define BIO_C_FILE_SEEK 128
997
+ #define BIO_C_GET_CIPHER_CTX 129
998
+ #define BIO_C_SET_BUF_MEM_EOF_RETURN 130 // return end of input value
999
+ #define BIO_C_SET_BIND_MODE 131
1000
+ #define BIO_C_GET_BIND_MODE 132
1001
+ #define BIO_C_FILE_TELL 133
1002
+ #define BIO_C_GET_SOCKS 134
1003
+ #define BIO_C_SET_SOCKS 135
1004
+
1005
+ #define BIO_C_SET_WRITE_BUF_SIZE 136 // for BIO_s_bio
1006
+ #define BIO_C_GET_WRITE_BUF_SIZE 137
1007
+ #define BIO_C_GET_WRITE_GUARANTEE 140
1008
+ #define BIO_C_GET_READ_REQUEST 141
1009
+ #define BIO_C_SHUTDOWN_WR 142
1010
+ #define BIO_C_NREAD0 143
1011
+ #define BIO_C_NREAD 144
1012
+ #define BIO_C_NWRITE0 145
1013
+ #define BIO_C_NWRITE 146
1014
+ #define BIO_C_RESET_READ_REQUEST 147
1015
+ #define BIO_C_SET_MD_CTX 148
1016
+
1017
+ #define BIO_C_SET_PREFIX 149
1018
+ #define BIO_C_GET_PREFIX 150
1019
+ #define BIO_C_SET_SUFFIX 151
1020
+ #define BIO_C_GET_SUFFIX 152
1021
+
1022
+ #define BIO_C_SET_EX_ARG 153
1023
+ #define BIO_C_GET_EX_ARG 154
1024
+
1025
+
1026
+ #if defined(__cplusplus)
1027
+ } // extern C
1028
+
1029
+ extern "C++" {
1030
+
1031
+ BSSL_NAMESPACE_BEGIN
1032
+
1033
+ BORINGSSL_MAKE_DELETER(BIO, BIO_free)
1034
+ BORINGSSL_MAKE_UP_REF(BIO, BIO_up_ref)
1035
+ BORINGSSL_MAKE_DELETER(BIO_METHOD, BIO_meth_free)
1036
+
1037
+ BSSL_NAMESPACE_END
1038
+
1039
+ } // extern C++
1040
+
1041
+ #endif
1042
+
1043
+ #define BIO_R_BAD_FOPEN_MODE 100
1044
+ #define BIO_R_BROKEN_PIPE 101
1045
+ #define BIO_R_CONNECT_ERROR 102
1046
+ #define BIO_R_ERROR_SETTING_NBIO 103
1047
+ #define BIO_R_INVALID_ARGUMENT 104
1048
+ #define BIO_R_IN_USE 105
1049
+ #define BIO_R_KEEPALIVE 106
1050
+ #define BIO_R_NBIO_CONNECT_ERROR 107
1051
+ #define BIO_R_NO_HOSTNAME_SPECIFIED 108
1052
+ #define BIO_R_NO_PORT_SPECIFIED 109
1053
+ #define BIO_R_NO_SUCH_FILE 110
1054
+ #define BIO_R_NULL_PARAMETER 111
1055
+ #define BIO_R_SYS_LIB 112
1056
+ #define BIO_R_UNABLE_TO_CREATE_SOCKET 113
1057
+ #define BIO_R_UNINITIALIZED 114
1058
+ #define BIO_R_UNSUPPORTED_METHOD 115
1059
+ #define BIO_R_WRITE_TO_READ_ONLY_BIO 116
1060
+
1061
+ #endif // OPENSSL_HEADER_BIO_H