@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
@@ -74,306 +74,302 @@ static STACK_OF(X509V3_EXT_METHOD) *ext_list = NULL;
74
74
  static void ext_list_free(X509V3_EXT_METHOD *ext);
75
75
 
76
76
  static int ext_stack_cmp(const X509V3_EXT_METHOD **a,
77
- const X509V3_EXT_METHOD **b)
78
- {
79
- return ((*a)->ext_nid - (*b)->ext_nid);
77
+ const X509V3_EXT_METHOD **b) {
78
+ return ((*a)->ext_nid - (*b)->ext_nid);
80
79
  }
81
80
 
82
- int X509V3_EXT_add(X509V3_EXT_METHOD *ext)
83
- {
84
- if (!ext_list && !(ext_list = sk_X509V3_EXT_METHOD_new(ext_stack_cmp))) {
85
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
86
- ext_list_free(ext);
87
- return 0;
88
- }
89
- if (!sk_X509V3_EXT_METHOD_push(ext_list, ext)) {
90
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
91
- ext_list_free(ext);
92
- return 0;
93
- }
94
- return 1;
81
+ int X509V3_EXT_add(X509V3_EXT_METHOD *ext) {
82
+ if (!ext_list && !(ext_list = sk_X509V3_EXT_METHOD_new(ext_stack_cmp))) {
83
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
84
+ ext_list_free(ext);
85
+ return 0;
86
+ }
87
+ if (!sk_X509V3_EXT_METHOD_push(ext_list, ext)) {
88
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
89
+ ext_list_free(ext);
90
+ return 0;
91
+ }
92
+ return 1;
95
93
  }
96
94
 
97
- static int ext_cmp(const void *void_a, const void *void_b)
98
- {
99
- const X509V3_EXT_METHOD **a = (const X509V3_EXT_METHOD **)void_a;
100
- const X509V3_EXT_METHOD **b = (const X509V3_EXT_METHOD **)void_b;
101
- return ext_stack_cmp(a, b);
95
+ static int ext_cmp(const void *void_a, const void *void_b) {
96
+ const X509V3_EXT_METHOD **a = (const X509V3_EXT_METHOD **)void_a;
97
+ const X509V3_EXT_METHOD **b = (const X509V3_EXT_METHOD **)void_b;
98
+ return ext_stack_cmp(a, b);
102
99
  }
103
100
 
104
- const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid)
105
- {
106
- X509V3_EXT_METHOD tmp;
107
- const X509V3_EXT_METHOD *t = &tmp, *const *ret;
108
- size_t idx;
101
+ const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid) {
102
+ X509V3_EXT_METHOD tmp;
103
+ const X509V3_EXT_METHOD *t = &tmp, *const * ret;
104
+ size_t idx;
109
105
 
110
- if (nid < 0)
111
- return NULL;
112
- tmp.ext_nid = nid;
113
- ret =
114
- bsearch(&t, standard_exts, STANDARD_EXTENSION_COUNT,
106
+ if (nid < 0) {
107
+ return NULL;
108
+ }
109
+ tmp.ext_nid = nid;
110
+ ret = bsearch(&t, standard_exts, STANDARD_EXTENSION_COUNT,
115
111
  sizeof(X509V3_EXT_METHOD *), ext_cmp);
116
- if (ret)
117
- return *ret;
118
- if (!ext_list)
119
- return NULL;
112
+ if (ret) {
113
+ return *ret;
114
+ }
115
+ if (!ext_list) {
116
+ return NULL;
117
+ }
120
118
 
121
- sk_X509V3_EXT_METHOD_sort(ext_list);
122
- if (!sk_X509V3_EXT_METHOD_find(ext_list, &idx, &tmp))
123
- return NULL;
124
- return sk_X509V3_EXT_METHOD_value(ext_list, idx);
119
+ sk_X509V3_EXT_METHOD_sort(ext_list);
120
+ if (!sk_X509V3_EXT_METHOD_find(ext_list, &idx, &tmp)) {
121
+ return NULL;
122
+ }
123
+ return sk_X509V3_EXT_METHOD_value(ext_list, idx);
125
124
  }
126
125
 
127
- const X509V3_EXT_METHOD *X509V3_EXT_get(const X509_EXTENSION *ext)
128
- {
129
- int nid;
130
- if ((nid = OBJ_obj2nid(ext->object)) == NID_undef)
131
- return NULL;
132
- return X509V3_EXT_get_nid(nid);
126
+ const X509V3_EXT_METHOD *X509V3_EXT_get(const X509_EXTENSION *ext) {
127
+ int nid;
128
+ if ((nid = OBJ_obj2nid(ext->object)) == NID_undef) {
129
+ return NULL;
130
+ }
131
+ return X509V3_EXT_get_nid(nid);
133
132
  }
134
133
 
135
- int X509V3_EXT_free(int nid, void *ext_data)
136
- {
137
- const X509V3_EXT_METHOD *ext_method = X509V3_EXT_get_nid(nid);
138
- if (ext_method == NULL) {
139
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_CANNOT_FIND_FREE_FUNCTION);
140
- return 0;
141
- }
142
-
143
- if (ext_method->it != NULL)
144
- ASN1_item_free(ext_data, ASN1_ITEM_ptr(ext_method->it));
145
- else if (ext_method->ext_free != NULL)
146
- ext_method->ext_free(ext_data);
147
- else {
148
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_CANNOT_FIND_FREE_FUNCTION);
149
- return 0;
150
- }
134
+ int X509V3_EXT_free(int nid, void *ext_data) {
135
+ const X509V3_EXT_METHOD *ext_method = X509V3_EXT_get_nid(nid);
136
+ if (ext_method == NULL) {
137
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_CANNOT_FIND_FREE_FUNCTION);
138
+ return 0;
139
+ }
140
+
141
+ if (ext_method->it != NULL) {
142
+ ASN1_item_free(ext_data, ASN1_ITEM_ptr(ext_method->it));
143
+ } else if (ext_method->ext_free != NULL) {
144
+ ext_method->ext_free(ext_data);
145
+ } else {
146
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_CANNOT_FIND_FREE_FUNCTION);
147
+ return 0;
148
+ }
151
149
 
152
- return 1;
150
+ return 1;
153
151
  }
154
152
 
155
- int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist)
156
- {
157
- for (; extlist->ext_nid != -1; extlist++)
158
- if (!X509V3_EXT_add(extlist))
159
- return 0;
160
- return 1;
153
+ int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist) {
154
+ for (; extlist->ext_nid != -1; extlist++) {
155
+ if (!X509V3_EXT_add(extlist)) {
156
+ return 0;
157
+ }
158
+ }
159
+ return 1;
161
160
  }
162
161
 
163
- int X509V3_EXT_add_alias(int nid_to, int nid_from)
164
- {
165
- const X509V3_EXT_METHOD *ext;
166
- X509V3_EXT_METHOD *tmpext;
162
+ int X509V3_EXT_add_alias(int nid_to, int nid_from) {
163
+ const X509V3_EXT_METHOD *ext;
164
+ X509V3_EXT_METHOD *tmpext;
167
165
 
168
- if (!(ext = X509V3_EXT_get_nid(nid_from))) {
169
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_NOT_FOUND);
170
- return 0;
171
- }
172
- if (!
173
- (tmpext =
174
- (X509V3_EXT_METHOD *)OPENSSL_malloc(sizeof(X509V3_EXT_METHOD)))) {
175
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
176
- return 0;
177
- }
178
- *tmpext = *ext;
179
- tmpext->ext_nid = nid_to;
180
- tmpext->ext_flags |= X509V3_EXT_DYNAMIC;
181
- return X509V3_EXT_add(tmpext);
166
+ if (!(ext = X509V3_EXT_get_nid(nid_from))) {
167
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_NOT_FOUND);
168
+ return 0;
169
+ }
170
+ if (!(tmpext =
171
+ (X509V3_EXT_METHOD *)OPENSSL_malloc(sizeof(X509V3_EXT_METHOD)))) {
172
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
173
+ return 0;
174
+ }
175
+ *tmpext = *ext;
176
+ tmpext->ext_nid = nid_to;
177
+ tmpext->ext_flags |= X509V3_EXT_DYNAMIC;
178
+ return X509V3_EXT_add(tmpext);
182
179
  }
183
180
 
184
- void X509V3_EXT_cleanup(void)
185
- {
186
- sk_X509V3_EXT_METHOD_pop_free(ext_list, ext_list_free);
187
- ext_list = NULL;
181
+ void X509V3_EXT_cleanup(void) {
182
+ sk_X509V3_EXT_METHOD_pop_free(ext_list, ext_list_free);
183
+ ext_list = NULL;
188
184
  }
189
185
 
190
- static void ext_list_free(X509V3_EXT_METHOD *ext)
191
- {
192
- if (ext->ext_flags & X509V3_EXT_DYNAMIC)
193
- OPENSSL_free(ext);
186
+ static void ext_list_free(X509V3_EXT_METHOD *ext) {
187
+ if (ext->ext_flags & X509V3_EXT_DYNAMIC) {
188
+ OPENSSL_free(ext);
189
+ }
194
190
  }
195
191
 
196
- /*
197
- * Legacy function: we don't need to add standard extensions any more because
198
- * they are now kept in ext_dat.h.
199
- */
192
+ // Legacy function: we don't need to add standard extensions any more because
193
+ // they are now kept in ext_dat.h.
200
194
 
201
- int X509V3_add_standard_extensions(void)
202
- {
203
- return 1;
204
- }
195
+ int X509V3_add_standard_extensions(void) { return 1; }
205
196
 
206
- /* Return an extension internal structure */
197
+ // Return an extension internal structure
207
198
 
208
- void *X509V3_EXT_d2i(const X509_EXTENSION *ext)
209
- {
210
- const X509V3_EXT_METHOD *method;
211
- const unsigned char *p;
199
+ void *X509V3_EXT_d2i(const X509_EXTENSION *ext) {
200
+ const X509V3_EXT_METHOD *method;
201
+ const unsigned char *p;
212
202
 
213
- if (!(method = X509V3_EXT_get(ext)))
214
- return NULL;
215
- p = ext->value->data;
216
- void *ret;
203
+ if (!(method = X509V3_EXT_get(ext))) {
204
+ return NULL;
205
+ }
206
+ p = ext->value->data;
207
+ void *ret;
208
+ if (method->it) {
209
+ ret =
210
+ ASN1_item_d2i(NULL, &p, ext->value->length, ASN1_ITEM_ptr(method->it));
211
+ } else {
212
+ ret = method->d2i(NULL, &p, ext->value->length);
213
+ }
214
+ if (ret == NULL) {
215
+ return NULL;
216
+ }
217
+ // Check for trailing data.
218
+ if (p != ext->value->data + ext->value->length) {
217
219
  if (method->it) {
218
- ret = ASN1_item_d2i(NULL, &p, ext->value->length,
219
- ASN1_ITEM_ptr(method->it));
220
+ ASN1_item_free(ret, ASN1_ITEM_ptr(method->it));
220
221
  } else {
221
- ret = method->d2i(NULL, &p, ext->value->length);
222
- }
223
- if (ret == NULL) {
224
- return NULL;
225
- }
226
- /* Check for trailing data. */
227
- if (p != ext->value->data + ext->value->length) {
228
- if (method->it) {
229
- ASN1_item_free(ret, ASN1_ITEM_ptr(method->it));
230
- } else {
231
- method->ext_free(ret);
232
- }
233
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_TRAILING_DATA_IN_EXTENSION);
234
- return NULL;
222
+ method->ext_free(ret);
235
223
  }
236
- return ret;
224
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_TRAILING_DATA_IN_EXTENSION);
225
+ return NULL;
226
+ }
227
+ return ret;
237
228
  }
238
229
 
239
230
  void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *extensions, int nid,
240
- int *out_critical, int *out_idx)
241
- {
242
- int lastpos;
243
- size_t i;
244
- X509_EXTENSION *ex, *found_ex = NULL;
245
- if (!extensions) {
246
- if (out_idx)
247
- *out_idx = -1;
248
- if (out_critical)
249
- *out_critical = -1;
250
- return NULL;
231
+ int *out_critical, int *out_idx) {
232
+ int lastpos;
233
+ size_t i;
234
+ X509_EXTENSION *ex, *found_ex = NULL;
235
+ if (!extensions) {
236
+ if (out_idx) {
237
+ *out_idx = -1;
251
238
  }
252
- if (out_idx)
253
- lastpos = *out_idx + 1;
254
- else
255
- lastpos = 0;
256
- if (lastpos < 0)
257
- lastpos = 0;
258
- for (i = lastpos; i < sk_X509_EXTENSION_num(extensions); i++) {
259
- ex = sk_X509_EXTENSION_value(extensions, i);
260
- if (OBJ_obj2nid(ex->object) == nid) {
261
- if (out_idx) {
262
- /* TODO(https://crbug.com/boringssl/379): Consistently reject
263
- * duplicate extensions. */
264
- *out_idx = i;
265
- found_ex = ex;
266
- break;
267
- } else if (found_ex) {
268
- /* Found more than one */
269
- if (out_critical)
270
- *out_critical = -2;
271
- return NULL;
272
- }
273
- found_ex = ex;
239
+ if (out_critical) {
240
+ *out_critical = -1;
241
+ }
242
+ return NULL;
243
+ }
244
+ if (out_idx) {
245
+ lastpos = *out_idx + 1;
246
+ } else {
247
+ lastpos = 0;
248
+ }
249
+ if (lastpos < 0) {
250
+ lastpos = 0;
251
+ }
252
+ for (i = lastpos; i < sk_X509_EXTENSION_num(extensions); i++) {
253
+ ex = sk_X509_EXTENSION_value(extensions, i);
254
+ if (OBJ_obj2nid(ex->object) == nid) {
255
+ if (out_idx) {
256
+ // TODO(https://crbug.com/boringssl/379): Consistently reject
257
+ // duplicate extensions.
258
+ *out_idx = i;
259
+ found_ex = ex;
260
+ break;
261
+ } else if (found_ex) {
262
+ // Found more than one
263
+ if (out_critical) {
264
+ *out_critical = -2;
274
265
  }
266
+ return NULL;
267
+ }
268
+ found_ex = ex;
275
269
  }
276
- if (found_ex) {
277
- /* Found it */
278
- if (out_critical)
279
- *out_critical = X509_EXTENSION_get_critical(found_ex);
280
- return X509V3_EXT_d2i(found_ex);
270
+ }
271
+ if (found_ex) {
272
+ // Found it
273
+ if (out_critical) {
274
+ *out_critical = X509_EXTENSION_get_critical(found_ex);
281
275
  }
282
-
283
- /* Extension not found */
284
- if (out_idx)
285
- *out_idx = -1;
286
- if (out_critical)
287
- *out_critical = -1;
288
- return NULL;
276
+ return X509V3_EXT_d2i(found_ex);
277
+ }
278
+
279
+ // Extension not found
280
+ if (out_idx) {
281
+ *out_idx = -1;
282
+ }
283
+ if (out_critical) {
284
+ *out_critical = -1;
285
+ }
286
+ return NULL;
289
287
  }
290
288
 
291
- /*
292
- * This function is a general extension append, replace and delete utility.
293
- * The precise operation is governed by the 'flags' value. The 'crit' and
294
- * 'value' arguments (if relevant) are the extensions internal structure.
295
- */
289
+ // This function is a general extension append, replace and delete utility.
290
+ // The precise operation is governed by the 'flags' value. The 'crit' and
291
+ // 'value' arguments (if relevant) are the extensions internal structure.
296
292
 
297
293
  int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value,
298
- int crit, unsigned long flags)
299
- {
300
- int errcode, extidx = -1;
301
- X509_EXTENSION *ext = NULL, *extmp;
302
- STACK_OF(X509_EXTENSION) *ret = NULL;
303
- unsigned long ext_op = flags & X509V3_ADD_OP_MASK;
304
-
305
- /*
306
- * If appending we don't care if it exists, otherwise look for existing
307
- * extension.
308
- */
309
- if (ext_op != X509V3_ADD_APPEND)
310
- extidx = X509v3_get_ext_by_NID(*x, nid, -1);
311
-
312
- /* See if extension exists */
313
- if (extidx >= 0) {
314
- /* If keep existing, nothing to do */
315
- if (ext_op == X509V3_ADD_KEEP_EXISTING)
316
- return 1;
317
- /* If default then its an error */
318
- if (ext_op == X509V3_ADD_DEFAULT) {
319
- errcode = X509V3_R_EXTENSION_EXISTS;
320
- goto err;
321
- }
322
- /* If delete, just delete it */
323
- if (ext_op == X509V3_ADD_DELETE) {
324
- if (!sk_X509_EXTENSION_delete(*x, extidx))
325
- return -1;
326
- return 1;
327
- }
328
- } else {
329
- /*
330
- * If replace existing or delete, error since extension must exist
331
- */
332
- if ((ext_op == X509V3_ADD_REPLACE_EXISTING) ||
333
- (ext_op == X509V3_ADD_DELETE)) {
334
- errcode = X509V3_R_EXTENSION_NOT_FOUND;
335
- goto err;
336
- }
294
+ int crit, unsigned long flags) {
295
+ int errcode, extidx = -1;
296
+ X509_EXTENSION *ext = NULL, *extmp;
297
+ STACK_OF(X509_EXTENSION) *ret = NULL;
298
+ unsigned long ext_op = flags & X509V3_ADD_OP_MASK;
299
+
300
+ // If appending we don't care if it exists, otherwise look for existing
301
+ // extension.
302
+ if (ext_op != X509V3_ADD_APPEND) {
303
+ extidx = X509v3_get_ext_by_NID(*x, nid, -1);
304
+ }
305
+
306
+ // See if extension exists
307
+ if (extidx >= 0) {
308
+ // If keep existing, nothing to do
309
+ if (ext_op == X509V3_ADD_KEEP_EXISTING) {
310
+ return 1;
337
311
  }
338
-
339
- /*
340
- * If we get this far then we have to create an extension: could have
341
- * some flags for alternative encoding schemes...
342
- */
343
-
344
- ext = X509V3_EXT_i2d(nid, crit, value);
345
-
346
- if (!ext) {
347
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_ERROR_CREATING_EXTENSION);
348
- return 0;
312
+ // If default then its an error
313
+ if (ext_op == X509V3_ADD_DEFAULT) {
314
+ errcode = X509V3_R_EXTENSION_EXISTS;
315
+ goto err;
349
316
  }
350
-
351
- /* If extension exists replace it.. */
352
- if (extidx >= 0) {
353
- extmp = sk_X509_EXTENSION_value(*x, extidx);
354
- X509_EXTENSION_free(extmp);
355
- if (!sk_X509_EXTENSION_set(*x, extidx, ext))
356
- return -1;
357
- return 1;
317
+ // If delete, just delete it
318
+ if (ext_op == X509V3_ADD_DELETE) {
319
+ if (!sk_X509_EXTENSION_delete(*x, extidx)) {
320
+ return -1;
321
+ }
322
+ return 1;
358
323
  }
324
+ } else {
325
+ // If replace existing or delete, error since extension must exist
326
+ if ((ext_op == X509V3_ADD_REPLACE_EXISTING) ||
327
+ (ext_op == X509V3_ADD_DELETE)) {
328
+ errcode = X509V3_R_EXTENSION_NOT_FOUND;
329
+ goto err;
330
+ }
331
+ }
359
332
 
360
- if ((ret = *x) == NULL
361
- && (ret = sk_X509_EXTENSION_new_null()) == NULL)
362
- goto m_fail;
363
- if (!sk_X509_EXTENSION_push(ret, ext))
364
- goto m_fail;
333
+ // If we get this far then we have to create an extension: could have
334
+ // some flags for alternative encoding schemes...
365
335
 
366
- *x = ret;
367
- return 1;
336
+ ext = X509V3_EXT_i2d(nid, crit, value);
368
337
 
369
- m_fail:
370
- if (ret != *x)
371
- sk_X509_EXTENSION_free(ret);
372
- X509_EXTENSION_free(ext);
373
- return -1;
374
-
375
- err:
376
- if (!(flags & X509V3_ADD_SILENT))
377
- OPENSSL_PUT_ERROR(X509V3, errcode);
338
+ if (!ext) {
339
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_ERROR_CREATING_EXTENSION);
378
340
  return 0;
341
+ }
342
+
343
+ // If extension exists replace it..
344
+ if (extidx >= 0) {
345
+ extmp = sk_X509_EXTENSION_value(*x, extidx);
346
+ X509_EXTENSION_free(extmp);
347
+ if (!sk_X509_EXTENSION_set(*x, extidx, ext)) {
348
+ return -1;
349
+ }
350
+ return 1;
351
+ }
352
+
353
+ if ((ret = *x) == NULL && (ret = sk_X509_EXTENSION_new_null()) == NULL) {
354
+ goto m_fail;
355
+ }
356
+ if (!sk_X509_EXTENSION_push(ret, ext)) {
357
+ goto m_fail;
358
+ }
359
+
360
+ *x = ret;
361
+ return 1;
362
+
363
+ m_fail:
364
+ if (ret != *x) {
365
+ sk_X509_EXTENSION_free(ret);
366
+ }
367
+ X509_EXTENSION_free(ext);
368
+ return -1;
369
+
370
+ err:
371
+ if (!(flags & X509V3_ADD_SILENT)) {
372
+ OPENSSL_PUT_ERROR(X509V3, errcode);
373
+ }
374
+ return 0;
379
375
  }