@fails-components/webtransport 0.0.1 → 0.0.2

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 (300) hide show
  1. package/package.json +1 -1
  2. package/readme.md +1 -3
  3. package/src/http3eventloop.cc +83 -9
  4. package/src/http3eventloop.h +13 -3
  5. package/src/http3server.cc +22 -22
  6. package/src/http3server.h +7 -20
  7. package/src/http3wtstreamvisitor.cc +31 -10
  8. package/src/http3wtstreamvisitor.h +38 -11
  9. package/src/webtransport.js +91 -23
  10. package/test/echoserver.js +29 -5
  11. package/test/testsuite.js +242 -220
  12. package/third_party/boringssl/src/CMakeLists.txt +2 -0
  13. package/third_party/boringssl/src/crypto/CMakeLists.txt +1 -0
  14. package/third_party/boringssl/src/crypto/asn1/a_bitstr.c +174 -177
  15. package/third_party/boringssl/src/crypto/asn1/a_bool.c +46 -48
  16. package/third_party/boringssl/src/crypto/asn1/a_d2i_fp.c +21 -23
  17. package/third_party/boringssl/src/crypto/asn1/a_dup.c +21 -23
  18. package/third_party/boringssl/src/crypto/asn1/a_gentm.c +84 -187
  19. package/third_party/boringssl/src/crypto/asn1/a_i2d_fp.c +19 -21
  20. package/third_party/boringssl/src/crypto/asn1/a_int.c +305 -329
  21. package/third_party/boringssl/src/crypto/asn1/a_mbstr.c +190 -195
  22. package/third_party/boringssl/src/crypto/asn1/a_object.c +182 -189
  23. package/third_party/boringssl/src/crypto/asn1/a_octet.c +6 -9
  24. package/third_party/boringssl/src/crypto/asn1/a_print.c +15 -16
  25. package/third_party/boringssl/src/crypto/asn1/a_strex.c +386 -399
  26. package/third_party/boringssl/src/crypto/asn1/a_strnid.c +110 -131
  27. package/third_party/boringssl/src/crypto/asn1/a_time.c +118 -111
  28. package/third_party/boringssl/src/crypto/asn1/a_type.c +59 -60
  29. package/third_party/boringssl/src/crypto/asn1/a_utctm.c +114 -186
  30. package/third_party/boringssl/src/crypto/asn1/a_utf8.c +171 -159
  31. package/third_party/boringssl/src/crypto/asn1/asn1_lib.c +245 -260
  32. package/third_party/boringssl/src/crypto/asn1/asn1_par.c +41 -40
  33. package/third_party/boringssl/src/crypto/asn1/asn1_test.cc +31 -0
  34. package/third_party/boringssl/src/crypto/asn1/asn_pack.c +31 -33
  35. package/third_party/boringssl/src/crypto/asn1/f_int.c +36 -33
  36. package/third_party/boringssl/src/crypto/asn1/f_string.c +29 -26
  37. package/third_party/boringssl/src/crypto/asn1/internal.h +62 -61
  38. package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +706 -702
  39. package/third_party/boringssl/src/crypto/asn1/tasn_enc.c +507 -524
  40. package/third_party/boringssl/src/crypto/asn1/tasn_fre.c +141 -133
  41. package/third_party/boringssl/src/crypto/asn1/tasn_new.c +207 -199
  42. package/third_party/boringssl/src/crypto/asn1/tasn_typ.c +19 -22
  43. package/third_party/boringssl/src/crypto/asn1/tasn_utl.c +24 -24
  44. package/third_party/boringssl/src/crypto/asn1/time_support.c +13 -13
  45. package/third_party/boringssl/src/crypto/bio/connect.c +9 -3
  46. package/third_party/boringssl/src/crypto/bytestring/bytestring_test.cc +125 -1
  47. package/third_party/boringssl/src/crypto/bytestring/cbb.c +4 -7
  48. package/third_party/boringssl/src/crypto/bytestring/cbs.c +167 -9
  49. package/third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c +0 -2
  50. package/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c +23 -54
  51. package/third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -2
  52. package/third_party/boringssl/src/crypto/cipher_extra/e_tls.c +0 -2
  53. package/third_party/boringssl/src/crypto/curve25519/curve25519.c +6 -8
  54. package/third_party/boringssl/src/crypto/evp/evp_ctx.c +25 -22
  55. package/third_party/boringssl/src/crypto/evp/internal.h +15 -9
  56. package/third_party/boringssl/src/crypto/evp/p_dsa_asn1.c +2 -0
  57. package/third_party/boringssl/src/crypto/evp/p_ec_asn1.c +2 -0
  58. package/third_party/boringssl/src/crypto/evp/p_ed25519.c +3 -3
  59. package/third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c +10 -7
  60. package/third_party/boringssl/src/crypto/evp/p_hkdf.c +241 -0
  61. package/third_party/boringssl/src/crypto/evp/p_rsa_asn1.c +2 -0
  62. package/third_party/boringssl/src/crypto/evp/p_x25519_asn1.c +1 -0
  63. package/third_party/boringssl/src/crypto/fipsmodule/aes/aes_nohw.c +9 -10
  64. package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +2 -6
  65. package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +5 -11
  66. package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +1 -1
  67. package/third_party/boringssl/src/crypto/fipsmodule/bn/prime.c +2 -0
  68. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +10 -26
  69. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aesccm.c +2 -3
  70. package/third_party/boringssl/src/crypto/fipsmodule/digestsign/digestsign.c +1 -0
  71. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +44 -43
  72. package/third_party/boringssl/src/crypto/fipsmodule/modes/cbc.c +5 -9
  73. package/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c +14 -21
  74. package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +8 -8
  75. package/third_party/boringssl/src/crypto/fipsmodule/rand/internal.h +1 -4
  76. package/third_party/boringssl/src/crypto/hkdf/hkdf_test.cc +104 -0
  77. package/third_party/boringssl/src/crypto/internal.h +18 -4
  78. package/third_party/boringssl/src/crypto/lhash/internal.h +13 -1
  79. package/third_party/boringssl/src/crypto/obj/obj_dat.h +4 -1
  80. package/third_party/boringssl/src/crypto/obj/obj_mac.num +1 -0
  81. package/third_party/boringssl/src/crypto/obj/objects.txt +2 -0
  82. package/third_party/boringssl/src/crypto/pem/pem_all.c +77 -86
  83. package/third_party/boringssl/src/crypto/pem/pem_info.c +221 -233
  84. package/third_party/boringssl/src/crypto/pem/pem_lib.c +639 -608
  85. package/third_party/boringssl/src/crypto/pem/pem_oth.c +17 -16
  86. package/third_party/boringssl/src/crypto/pem/pem_pk8.c +133 -142
  87. package/third_party/boringssl/src/crypto/pem/pem_pkey.c +96 -92
  88. package/third_party/boringssl/src/crypto/poly1305/poly1305_vec.c +12 -28
  89. package/third_party/boringssl/src/crypto/siphash/siphash.c +8 -11
  90. package/third_party/boringssl/src/crypto/siphash/siphash_test.cc +5 -7
  91. package/third_party/boringssl/src/crypto/stack/stack.c +33 -16
  92. package/third_party/boringssl/src/crypto/thread_pthread.c +0 -2
  93. package/third_party/boringssl/src/crypto/thread_win.c +0 -2
  94. package/third_party/boringssl/src/crypto/trust_token/internal.h +14 -0
  95. package/third_party/boringssl/src/crypto/trust_token/pmbtoken.c +127 -30
  96. package/third_party/boringssl/src/crypto/trust_token/trust_token.c +40 -0
  97. package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +165 -0
  98. package/third_party/boringssl/src/crypto/trust_token/voprf.c +55 -6
  99. package/third_party/boringssl/src/crypto/x509/a_digest.c +23 -24
  100. package/third_party/boringssl/src/crypto/x509/a_sign.c +52 -55
  101. package/third_party/boringssl/src/crypto/x509/a_verify.c +33 -34
  102. package/third_party/boringssl/src/crypto/x509/algorithm.c +17 -18
  103. package/third_party/boringssl/src/crypto/x509/asn1_gen.c +618 -612
  104. package/third_party/boringssl/src/crypto/x509/by_dir.c +320 -337
  105. package/third_party/boringssl/src/crypto/x509/by_file.c +186 -186
  106. package/third_party/boringssl/src/crypto/x509/i2d_pr.c +11 -14
  107. package/third_party/boringssl/src/crypto/x509/internal.h +22 -22
  108. package/third_party/boringssl/src/crypto/x509/name_print.c +155 -150
  109. package/third_party/boringssl/src/crypto/x509/rsa_pss.c +27 -29
  110. package/third_party/boringssl/src/crypto/x509/t_crl.c +67 -70
  111. package/third_party/boringssl/src/crypto/x509/t_req.c +3 -5
  112. package/third_party/boringssl/src/crypto/x509/t_x509.c +280 -251
  113. package/third_party/boringssl/src/crypto/x509/t_x509a.c +52 -47
  114. package/third_party/boringssl/src/crypto/x509/x509.c +3 -4
  115. package/third_party/boringssl/src/crypto/x509/x509_att.c +234 -223
  116. package/third_party/boringssl/src/crypto/x509/x509_cmp.c +286 -296
  117. package/third_party/boringssl/src/crypto/x509/x509_d2.c +37 -32
  118. package/third_party/boringssl/src/crypto/x509/x509_def.c +14 -30
  119. package/third_party/boringssl/src/crypto/x509/x509_ext.c +55 -84
  120. package/third_party/boringssl/src/crypto/x509/x509_lu.c +545 -581
  121. package/third_party/boringssl/src/crypto/x509/x509_obj.c +131 -121
  122. package/third_party/boringssl/src/crypto/x509/x509_req.c +120 -139
  123. package/third_party/boringssl/src/crypto/x509/x509_set.c +128 -142
  124. package/third_party/boringssl/src/crypto/x509/x509_trs.c +185 -193
  125. package/third_party/boringssl/src/crypto/x509/x509_txt.c +70 -72
  126. package/third_party/boringssl/src/crypto/x509/x509_v3.c +172 -161
  127. package/third_party/boringssl/src/crypto/x509/x509_vfy.c +2041 -2053
  128. package/third_party/boringssl/src/crypto/x509/x509_vpm.c +441 -461
  129. package/third_party/boringssl/src/crypto/x509/x509cset.c +152 -170
  130. package/third_party/boringssl/src/crypto/x509/x509name.c +274 -260
  131. package/third_party/boringssl/src/crypto/x509/x509rset.c +43 -20
  132. package/third_party/boringssl/src/crypto/x509/x509spki.c +62 -63
  133. package/third_party/boringssl/src/crypto/x509/x_algor.c +64 -62
  134. package/third_party/boringssl/src/crypto/x509/x_all.c +103 -133
  135. package/third_party/boringssl/src/crypto/x509/x_attrib.c +23 -24
  136. package/third_party/boringssl/src/crypto/x509/x_crl.c +310 -321
  137. package/third_party/boringssl/src/crypto/x509/x_exten.c +6 -5
  138. package/third_party/boringssl/src/crypto/x509/x_info.c +31 -28
  139. package/third_party/boringssl/src/crypto/x509/x_name.c +361 -365
  140. package/third_party/boringssl/src/crypto/x509/x_pkey.c +38 -32
  141. package/third_party/boringssl/src/crypto/x509/x_pubkey.c +114 -117
  142. package/third_party/boringssl/src/crypto/x509/x_req.c +27 -29
  143. package/third_party/boringssl/src/crypto/x509/x_sig.c +2 -2
  144. package/third_party/boringssl/src/crypto/x509/x_spki.c +8 -10
  145. package/third_party/boringssl/src/crypto/x509/x_val.c +2 -2
  146. package/third_party/boringssl/src/crypto/x509/x_x509.c +212 -226
  147. package/third_party/boringssl/src/crypto/x509/x_x509a.c +112 -109
  148. package/third_party/boringssl/src/crypto/x509v3/ext_dat.h +10 -13
  149. package/third_party/boringssl/src/crypto/x509v3/internal.h +72 -87
  150. package/third_party/boringssl/src/crypto/x509v3/pcy_cache.c +184 -176
  151. package/third_party/boringssl/src/crypto/x509v3/pcy_data.c +58 -56
  152. package/third_party/boringssl/src/crypto/x509v3/pcy_lib.c +71 -70
  153. package/third_party/boringssl/src/crypto/x509v3/pcy_map.c +56 -58
  154. package/third_party/boringssl/src/crypto/x509v3/pcy_node.c +89 -91
  155. package/third_party/boringssl/src/crypto/x509v3/pcy_tree.c +585 -590
  156. package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +118 -112
  157. package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +3 -3
  158. package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +447 -451
  159. package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +44 -38
  160. package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +39 -43
  161. package/third_party/boringssl/src/crypto/x509v3/v3_conf.c +321 -320
  162. package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +352 -327
  163. package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +437 -383
  164. package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +23 -16
  165. package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +62 -53
  166. package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +118 -115
  167. package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +30 -31
  168. package/third_party/boringssl/src/crypto/x509v3/v3_info.c +112 -98
  169. package/third_party/boringssl/src/crypto/x509v3/v3_int.c +40 -15
  170. package/third_party/boringssl/src/crypto/x509v3/v3_lib.c +248 -252
  171. package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +390 -386
  172. package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +45 -32
  173. package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +206 -209
  174. package/third_party/boringssl/src/crypto/x509v3/v3_pcia.c +6 -8
  175. package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +54 -50
  176. package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +66 -65
  177. package/third_party/boringssl/src/crypto/x509v3/v3_prn.c +144 -133
  178. package/third_party/boringssl/src/crypto/x509v3/v3_purp.c +695 -709
  179. package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +75 -69
  180. package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +1102 -1082
  181. package/third_party/boringssl/src/include/openssl/base.h +3 -1
  182. package/third_party/boringssl/src/include/openssl/bn.h +3 -0
  183. package/third_party/boringssl/src/include/openssl/bytestring.h +20 -0
  184. package/third_party/boringssl/src/include/openssl/evp.h +6 -5
  185. package/third_party/boringssl/src/include/openssl/kdf.h +91 -0
  186. package/third_party/boringssl/src/include/openssl/nid.h +4 -0
  187. package/third_party/boringssl/src/include/openssl/ssl.h +6 -1
  188. package/third_party/boringssl/src/include/openssl/stack.h +47 -32
  189. package/third_party/boringssl/src/include/openssl/trust_token.h +18 -3
  190. package/third_party/boringssl/src/include/openssl/x509.h +18 -0
  191. package/third_party/boringssl/src/ssl/ssl_file.cc +61 -99
  192. package/third_party/boringssl/src/ssl/ssl_test.cc +101 -0
  193. package/third_party/boringssl/src/util/doc.config +2 -1
  194. package/third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/subprocess.go +8 -0
  195. package/third_party/googleurl/AUTHORS +16 -2
  196. package/third_party/googleurl/base/BUILD +1 -0
  197. package/third_party/googleurl/base/compiler_specific.h +16 -17
  198. package/third_party/googleurl/base/containers/contiguous_iterator.h +13 -9
  199. package/third_party/googleurl/base/containers/span.h +23 -8
  200. package/third_party/googleurl/base/memory/raw_ptr.h +17 -25
  201. package/third_party/googleurl/base/memory/raw_ptr_exclusion.h +21 -0
  202. package/third_party/googleurl/base/strings/escape.cc +14 -2
  203. package/third_party/googleurl/base/strings/safe_sprintf.h +1 -1
  204. package/third_party/googleurl/base/strings/string_number_conversions.cc +5 -3
  205. package/third_party/googleurl/base/strings/string_number_conversions_internal.h +5 -5
  206. package/third_party/googleurl/base/strings/string_piece.h +3 -3
  207. package/third_party/googleurl/base/strings/string_util.cc +4 -27
  208. package/third_party/googleurl/base/strings/string_util.h +43 -8
  209. package/third_party/googleurl/base/strings/string_util_internal.h +11 -12
  210. package/third_party/googleurl/base/strings/string_util_unittest.cc +33 -0
  211. package/third_party/googleurl/base/strings/string_util_win.cc +0 -5
  212. package/third_party/googleurl/base/strings/string_util_win.h +9 -1
  213. package/third_party/googleurl/base/strings/utf_offset_string_conversions.cc +1 -1
  214. package/third_party/googleurl/base/strings/utf_string_conversion_utils.cc +5 -8
  215. package/third_party/googleurl/base/strings/utf_string_conversion_utils.h +13 -10
  216. package/third_party/googleurl/base/strings/utf_string_conversions.cc +32 -25
  217. package/third_party/googleurl/base/template_util.h +23 -35
  218. package/third_party/googleurl/build/build_config.h +14 -3
  219. package/third_party/googleurl/copy.bara.sky +1 -1
  220. package/third_party/googleurl/url/gurl.cc +8 -4
  221. package/third_party/googleurl/url/gurl.h +1 -0
  222. package/third_party/googleurl/url/gurl_unittest.cc +1 -0
  223. package/third_party/googleurl/url/origin.h +36 -26
  224. package/third_party/googleurl/url/scheme_host_port.h +4 -1
  225. package/third_party/googleurl/url/url_canon.h +2 -1
  226. package/third_party/googleurl/url/url_canon_internal.cc +9 -7
  227. package/third_party/googleurl/url/url_canon_internal.h +16 -16
  228. package/third_party/googleurl/url/url_canon_stdstring.h +2 -1
  229. package/third_party/googleurl/url/url_util.cc +9 -8
  230. package/third_party/quiche/build/source_list.bzl +7 -0
  231. package/third_party/quiche/build/source_list.gni +7 -0
  232. package/third_party/quiche/build/source_list.json +7 -0
  233. package/third_party/quiche/quiche/common/platform/api/quiche_mem_slice.h +7 -3
  234. package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +86 -2
  235. package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +104 -2
  236. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -0
  237. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +6 -1
  238. package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_test.cc +0 -16
  239. package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -1
  240. package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +56 -2
  241. package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -0
  242. package/third_party/quiche/quiche/quic/core/http/http_constants.h +1 -0
  243. package/third_party/quiche/quiche/quic/core/http/http_encoder.cc +28 -17
  244. package/third_party/quiche/quiche/quic/core/http/http_encoder.h +5 -0
  245. package/third_party/quiche/quiche/quic/core/http/http_encoder_test.cc +26 -30
  246. package/third_party/quiche/quiche/quic/core/http/http_frames.h +1 -0
  247. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -4
  248. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base_test.cc +1 -1
  249. package/third_party/quiche/quiche/quic/core/http/quic_spdy_client_session.cc +5 -1
  250. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +6 -33
  251. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +0 -17
  252. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +5 -20
  253. package/third_party/quiche/quiche/quic/core/io/quic_event_loop.h +81 -0
  254. package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop.cc +265 -0
  255. package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop.h +152 -0
  256. package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop_test.cc +341 -0
  257. package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store.cc +3 -1
  258. package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store.h +7 -7
  259. package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store_test.cc +4 -3
  260. package/third_party/quiche/quiche/quic/core/quic_connection.cc +69 -19
  261. package/third_party/quiche/quiche/quic/core/quic_connection.h +9 -3
  262. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager.cc +29 -10
  263. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager.h +5 -3
  264. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +85 -22
  265. package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +186 -30
  266. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +2 -1
  267. package/third_party/quiche/quiche/quic/core/quic_default_clock.cc +31 -0
  268. package/third_party/quiche/quiche/quic/core/quic_default_clock.h +34 -0
  269. package/third_party/quiche/quiche/quic/core/quic_default_connection_helper.h +49 -0
  270. package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +53 -37
  271. package/third_party/quiche/quiche/quic/core/quic_dispatcher.h +19 -11
  272. package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +15 -2
  273. package/third_party/quiche/quiche/quic/core/quic_flags_list.h +10 -4
  274. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +2 -2
  275. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +4 -4
  276. package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +14 -3
  277. package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +145 -2
  278. package/third_party/quiche/quiche/quic/core/quic_packets.cc +3 -1
  279. package/third_party/quiche/quiche/quic/core/quic_packets.h +4 -0
  280. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +13 -11
  281. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +9 -0
  282. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +6 -0
  283. package/third_party/quiche/quiche/quic/core/quic_session.cc +3 -2
  284. package/third_party/quiche/quiche/quic/core/quic_session.h +8 -3
  285. package/third_party/quiche/quiche/quic/core/quic_types.cc +18 -0
  286. package/third_party/quiche/quiche/quic/core/quic_types.h +3 -0
  287. package/third_party/quiche/quiche/quic/core/tls_chlo_extractor.cc +3 -0
  288. package/third_party/quiche/quiche/quic/core/tls_chlo_extractor.h +10 -0
  289. package/third_party/quiche/quiche/quic/test_tools/mock_quic_session_visitor.h +1 -1
  290. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +1 -1
  291. package/third_party/quiche/quiche/quic/test_tools/server_thread.cc +3 -2
  292. package/third_party/quiche/quiche/quic/test_tools/simple_session_notifier.cc +7 -1
  293. package/third_party/quiche/quiche/quic/test_tools/simple_session_notifier.h +3 -0
  294. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +4 -2
  295. package/certs/ca.cnf +0 -69
  296. package/certs/generate_certs.sh +0 -53
  297. package/certs/generate_certs_leaf.sh +0 -53
  298. package/certs/leaf.cnf +0 -24
  299. package/certs/readme.txt +0 -2
  300. package/third_party/quiche/build/BUILD.bazel +0 -7
@@ -63,171 +63,179 @@
63
63
 
64
64
  #include "internal.h"
65
65
 
66
- /* Free up an ASN1 structure */
66
+ // Free up an ASN1 structure
67
67
 
68
- void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
69
- {
70
- asn1_item_combine_free(&val, it, 0);
68
+ void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it) {
69
+ asn1_item_combine_free(&val, it, 0);
71
70
  }
72
71
 
73
- void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
74
- {
75
- asn1_item_combine_free(pval, it, 0);
72
+ void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it) {
73
+ asn1_item_combine_free(pval, it, 0);
76
74
  }
77
75
 
78
- void asn1_item_combine_free(ASN1_VALUE **pval, const ASN1_ITEM *it, int combine)
79
- {
80
- const ASN1_TEMPLATE *tt = NULL, *seqtt;
81
- const ASN1_EXTERN_FUNCS *ef;
82
- int i;
83
- if (!pval)
84
- return;
85
- if ((it->itype != ASN1_ITYPE_PRIMITIVE) && !*pval)
86
- return;
87
-
88
- switch (it->itype) {
89
-
76
+ void asn1_item_combine_free(ASN1_VALUE **pval, const ASN1_ITEM *it,
77
+ int combine) {
78
+ const ASN1_TEMPLATE *tt = NULL, *seqtt;
79
+ const ASN1_EXTERN_FUNCS *ef;
80
+ int i;
81
+ if (!pval) {
82
+ return;
83
+ }
84
+ if ((it->itype != ASN1_ITYPE_PRIMITIVE) && !*pval) {
85
+ return;
86
+ }
87
+
88
+ switch (it->itype) {
90
89
  case ASN1_ITYPE_PRIMITIVE:
91
- if (it->templates)
92
- ASN1_template_free(pval, it->templates);
93
- else
94
- ASN1_primitive_free(pval, it);
95
- break;
90
+ if (it->templates) {
91
+ ASN1_template_free(pval, it->templates);
92
+ } else {
93
+ ASN1_primitive_free(pval, it);
94
+ }
95
+ break;
96
96
 
97
97
  case ASN1_ITYPE_MSTRING:
98
- ASN1_primitive_free(pval, it);
99
- break;
98
+ ASN1_primitive_free(pval, it);
99
+ break;
100
100
 
101
101
  case ASN1_ITYPE_CHOICE: {
102
- const ASN1_AUX *aux = it->funcs;
103
- ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
104
- if (asn1_cb) {
105
- i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
106
- if (i == 2)
107
- return;
108
- }
109
- i = asn1_get_choice_selector(pval, it);
110
- if ((i >= 0) && (i < it->tcount)) {
111
- ASN1_VALUE **pchval;
112
- tt = it->templates + i;
113
- pchval = asn1_get_field_ptr(pval, tt);
114
- ASN1_template_free(pchval, tt);
102
+ const ASN1_AUX *aux = it->funcs;
103
+ ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
104
+ if (asn1_cb) {
105
+ i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
106
+ if (i == 2) {
107
+ return;
115
108
  }
116
- if (asn1_cb)
117
- asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
118
- if (!combine) {
119
- OPENSSL_free(*pval);
120
- *pval = NULL;
121
- }
122
- break;
109
+ }
110
+ i = asn1_get_choice_selector(pval, it);
111
+ if ((i >= 0) && (i < it->tcount)) {
112
+ ASN1_VALUE **pchval;
113
+ tt = it->templates + i;
114
+ pchval = asn1_get_field_ptr(pval, tt);
115
+ ASN1_template_free(pchval, tt);
116
+ }
117
+ if (asn1_cb) {
118
+ asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
119
+ }
120
+ if (!combine) {
121
+ OPENSSL_free(*pval);
122
+ *pval = NULL;
123
+ }
124
+ break;
123
125
  }
124
126
 
125
127
  case ASN1_ITYPE_EXTERN:
126
- ef = it->funcs;
127
- if (ef && ef->asn1_ex_free)
128
- ef->asn1_ex_free(pval, it);
129
- break;
128
+ ef = it->funcs;
129
+ if (ef && ef->asn1_ex_free) {
130
+ ef->asn1_ex_free(pval, it);
131
+ }
132
+ break;
130
133
 
131
134
  case ASN1_ITYPE_SEQUENCE: {
132
- if (!asn1_refcount_dec_and_test_zero(pval, it))
133
- return;
134
- const ASN1_AUX *aux = it->funcs;
135
- ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
136
- if (asn1_cb) {
137
- i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
138
- if (i == 2)
139
- return;
140
- }
141
- asn1_enc_free(pval, it);
142
- /*
143
- * If we free up as normal we will invalidate any ANY DEFINED BY
144
- * field and we wont be able to determine the type of the field it
145
- * defines. So free up in reverse order.
146
- */
147
- tt = it->templates + it->tcount - 1;
148
- for (i = 0; i < it->tcount; tt--, i++) {
149
- ASN1_VALUE **pseqval;
150
- seqtt = asn1_do_adb(pval, tt, 0);
151
- if (!seqtt)
152
- continue;
153
- pseqval = asn1_get_field_ptr(pval, seqtt);
154
- ASN1_template_free(pseqval, seqtt);
135
+ if (!asn1_refcount_dec_and_test_zero(pval, it)) {
136
+ return;
137
+ }
138
+ const ASN1_AUX *aux = it->funcs;
139
+ ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
140
+ if (asn1_cb) {
141
+ i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
142
+ if (i == 2) {
143
+ return;
155
144
  }
156
- if (asn1_cb)
157
- asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
158
- if (!combine) {
159
- OPENSSL_free(*pval);
160
- *pval = NULL;
145
+ }
146
+ asn1_enc_free(pval, it);
147
+ // If we free up as normal we will invalidate any ANY DEFINED BY
148
+ // field and we wont be able to determine the type of the field it
149
+ // defines. So free up in reverse order.
150
+ tt = it->templates + it->tcount - 1;
151
+ for (i = 0; i < it->tcount; tt--, i++) {
152
+ ASN1_VALUE **pseqval;
153
+ seqtt = asn1_do_adb(pval, tt, 0);
154
+ if (!seqtt) {
155
+ continue;
161
156
  }
162
- break;
163
- }
157
+ pseqval = asn1_get_field_ptr(pval, seqtt);
158
+ ASN1_template_free(pseqval, seqtt);
159
+ }
160
+ if (asn1_cb) {
161
+ asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
162
+ }
163
+ if (!combine) {
164
+ OPENSSL_free(*pval);
165
+ *pval = NULL;
166
+ }
167
+ break;
164
168
  }
169
+ }
165
170
  }
166
171
 
167
- void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
168
- {
169
- size_t i;
170
- if (tt->flags & ASN1_TFLG_SK_MASK) {
171
- STACK_OF(ASN1_VALUE) *sk = (STACK_OF(ASN1_VALUE) *)*pval;
172
- for (i = 0; i < sk_ASN1_VALUE_num(sk); i++) {
173
- ASN1_VALUE *vtmp;
174
- vtmp = sk_ASN1_VALUE_value(sk, i);
175
- asn1_item_combine_free(&vtmp, ASN1_ITEM_ptr(tt->item), 0);
176
- }
177
- sk_ASN1_VALUE_free(sk);
178
- *pval = NULL;
179
- } else
180
- asn1_item_combine_free(pval, ASN1_ITEM_ptr(tt->item),
181
- tt->flags & ASN1_TFLG_COMBINE);
172
+ void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt) {
173
+ size_t i;
174
+ if (tt->flags & ASN1_TFLG_SK_MASK) {
175
+ STACK_OF(ASN1_VALUE) *sk = (STACK_OF(ASN1_VALUE) *)*pval;
176
+ for (i = 0; i < sk_ASN1_VALUE_num(sk); i++) {
177
+ ASN1_VALUE *vtmp;
178
+ vtmp = sk_ASN1_VALUE_value(sk, i);
179
+ asn1_item_combine_free(&vtmp, ASN1_ITEM_ptr(tt->item), 0);
180
+ }
181
+ sk_ASN1_VALUE_free(sk);
182
+ *pval = NULL;
183
+ } else {
184
+ asn1_item_combine_free(pval, ASN1_ITEM_ptr(tt->item),
185
+ tt->flags & ASN1_TFLG_COMBINE);
186
+ }
182
187
  }
183
188
 
184
- void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
185
- {
186
- int utype;
187
- /* Historically, |it->funcs| for primitive types contained an
188
- * |ASN1_PRIMITIVE_FUNCS| table of calbacks. */
189
- assert(it == NULL || it->funcs == NULL);
190
- /* Special case: if 'it' is NULL free contents of ASN1_TYPE */
191
- if (!it) {
192
- ASN1_TYPE *typ = (ASN1_TYPE *)*pval;
193
- utype = typ->type;
194
- pval = &typ->value.asn1_value;
195
- if (utype != V_ASN1_BOOLEAN && !*pval)
196
- return;
197
- } else if (it->itype == ASN1_ITYPE_MSTRING) {
198
- utype = -1;
199
- if (!*pval)
200
- return;
201
- } else {
202
- utype = it->utype;
203
- if ((utype != V_ASN1_BOOLEAN) && !*pval)
204
- return;
189
+ void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it) {
190
+ int utype;
191
+ // Historically, |it->funcs| for primitive types contained an
192
+ // |ASN1_PRIMITIVE_FUNCS| table of calbacks.
193
+ assert(it == NULL || it->funcs == NULL);
194
+ // Special case: if 'it' is NULL free contents of ASN1_TYPE
195
+ if (!it) {
196
+ ASN1_TYPE *typ = (ASN1_TYPE *)*pval;
197
+ utype = typ->type;
198
+ pval = &typ->value.asn1_value;
199
+ if (utype != V_ASN1_BOOLEAN && !*pval) {
200
+ return;
201
+ }
202
+ } else if (it->itype == ASN1_ITYPE_MSTRING) {
203
+ utype = -1;
204
+ if (!*pval) {
205
+ return;
205
206
  }
207
+ } else {
208
+ utype = it->utype;
209
+ if ((utype != V_ASN1_BOOLEAN) && !*pval) {
210
+ return;
211
+ }
212
+ }
206
213
 
207
- switch (utype) {
214
+ switch (utype) {
208
215
  case V_ASN1_OBJECT:
209
- ASN1_OBJECT_free((ASN1_OBJECT *)*pval);
210
- break;
216
+ ASN1_OBJECT_free((ASN1_OBJECT *)*pval);
217
+ break;
211
218
 
212
219
  case V_ASN1_BOOLEAN:
213
- if (it)
214
- *(ASN1_BOOLEAN *)pval = it->size;
215
- else
216
- *(ASN1_BOOLEAN *)pval = -1;
217
- return;
220
+ if (it) {
221
+ *(ASN1_BOOLEAN *)pval = it->size;
222
+ } else {
223
+ *(ASN1_BOOLEAN *)pval = -1;
224
+ }
225
+ return;
218
226
 
219
227
  case V_ASN1_NULL:
220
- break;
228
+ break;
221
229
 
222
230
  case V_ASN1_ANY:
223
- ASN1_primitive_free(pval, NULL);
224
- OPENSSL_free(*pval);
225
- break;
231
+ ASN1_primitive_free(pval, NULL);
232
+ OPENSSL_free(*pval);
233
+ break;
226
234
 
227
235
  default:
228
- ASN1_STRING_free((ASN1_STRING *)*pval);
229
- *pval = NULL;
230
- break;
231
- }
232
- *pval = NULL;
236
+ ASN1_STRING_free((ASN1_STRING *)*pval);
237
+ *pval = NULL;
238
+ break;
239
+ }
240
+ *pval = NULL;
233
241
  }