@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
@@ -67,233 +67,226 @@
67
67
  #include "internal.h"
68
68
 
69
69
 
70
- int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp)
71
- {
72
- if (a == NULL) {
73
- OPENSSL_PUT_ERROR(ASN1, ERR_R_PASSED_NULL_PARAMETER);
74
- return -1;
75
- }
70
+ int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp) {
71
+ if (a == NULL) {
72
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_PASSED_NULL_PARAMETER);
73
+ return -1;
74
+ }
76
75
 
77
- if (a->length == 0) {
78
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_OBJECT);
79
- return -1;
80
- }
76
+ if (a->length == 0) {
77
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_OBJECT);
78
+ return -1;
79
+ }
81
80
 
82
- int objsize = ASN1_object_size(0, a->length, V_ASN1_OBJECT);
83
- if (pp == NULL || objsize == -1) {
84
- return objsize;
85
- }
81
+ int objsize = ASN1_object_size(0, a->length, V_ASN1_OBJECT);
82
+ if (pp == NULL || objsize == -1) {
83
+ return objsize;
84
+ }
86
85
 
87
- unsigned char *p, *allocated = NULL;
88
- if (*pp == NULL) {
89
- if ((p = allocated = OPENSSL_malloc(objsize)) == NULL) {
90
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
91
- return -1;
92
- }
93
- } else {
94
- p = *pp;
86
+ unsigned char *p, *allocated = NULL;
87
+ if (*pp == NULL) {
88
+ if ((p = allocated = OPENSSL_malloc(objsize)) == NULL) {
89
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
90
+ return -1;
95
91
  }
92
+ } else {
93
+ p = *pp;
94
+ }
96
95
 
97
- ASN1_put_object(&p, 0, a->length, V_ASN1_OBJECT, V_ASN1_UNIVERSAL);
98
- OPENSSL_memcpy(p, a->data, a->length);
96
+ ASN1_put_object(&p, 0, a->length, V_ASN1_OBJECT, V_ASN1_UNIVERSAL);
97
+ OPENSSL_memcpy(p, a->data, a->length);
99
98
 
100
- /*
101
- * If a new buffer was allocated, just return it back.
102
- * If not, return the incremented buffer pointer.
103
- */
104
- *pp = allocated != NULL ? allocated : p + a->length;
105
- return objsize;
99
+ // If a new buffer was allocated, just return it back.
100
+ // If not, return the incremented buffer pointer.
101
+ *pp = allocated != NULL ? allocated : p + a->length;
102
+ return objsize;
106
103
  }
107
104
 
108
- int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a)
109
- {
110
- return OBJ_obj2txt(buf, buf_len, a, 0);
105
+ int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a) {
106
+ return OBJ_obj2txt(buf, buf_len, a, 0);
111
107
  }
112
108
 
113
- static int write_str(BIO *bp, const char *str)
114
- {
115
- int len = strlen(str);
116
- return BIO_write(bp, str, len) == len ? len : -1;
109
+ static int write_str(BIO *bp, const char *str) {
110
+ int len = strlen(str);
111
+ return BIO_write(bp, str, len) == len ? len : -1;
117
112
  }
118
113
 
119
- int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a)
120
- {
121
- if (a == NULL || a->data == NULL) {
122
- return write_str(bp, "NULL");
123
- }
114
+ int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a) {
115
+ if (a == NULL || a->data == NULL) {
116
+ return write_str(bp, "NULL");
117
+ }
124
118
 
125
- char buf[80], *allocated = NULL;
126
- const char *str = buf;
127
- int len = i2t_ASN1_OBJECT(buf, sizeof(buf), a);
128
- if (len > (int)sizeof(buf) - 1) {
129
- /* The input was truncated. Allocate a buffer that fits. */
130
- allocated = OPENSSL_malloc(len + 1);
131
- if (allocated == NULL) {
132
- return -1;
133
- }
134
- len = i2t_ASN1_OBJECT(allocated, len + 1, a);
135
- str = allocated;
136
- }
137
- if (len <= 0) {
138
- str = "<INVALID>";
119
+ char buf[80], *allocated = NULL;
120
+ const char *str = buf;
121
+ int len = i2t_ASN1_OBJECT(buf, sizeof(buf), a);
122
+ if (len > (int)sizeof(buf) - 1) {
123
+ // The input was truncated. Allocate a buffer that fits.
124
+ allocated = OPENSSL_malloc(len + 1);
125
+ if (allocated == NULL) {
126
+ return -1;
139
127
  }
128
+ len = i2t_ASN1_OBJECT(allocated, len + 1, a);
129
+ str = allocated;
130
+ }
131
+ if (len <= 0) {
132
+ str = "<INVALID>";
133
+ }
140
134
 
141
- int ret = write_str(bp, str);
142
- OPENSSL_free(allocated);
143
- return ret;
135
+ int ret = write_str(bp, str);
136
+ OPENSSL_free(allocated);
137
+ return ret;
144
138
  }
145
139
 
146
140
  ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp,
147
- long length)
148
- {
149
- long len;
150
- int tag, xclass;
151
- const unsigned char *p = *pp;
152
- int inf = ASN1_get_object(&p, &len, &tag, &xclass, length);
153
- if (inf & 0x80) {
154
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_OBJECT_HEADER);
155
- return NULL;
156
- }
141
+ long length) {
142
+ long len;
143
+ int tag, xclass;
144
+ const unsigned char *p = *pp;
145
+ int inf = ASN1_get_object(&p, &len, &tag, &xclass, length);
146
+ if (inf & 0x80) {
147
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_OBJECT_HEADER);
148
+ return NULL;
149
+ }
157
150
 
158
- if (inf & V_ASN1_CONSTRUCTED) {
159
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_PRIMITIVE);
160
- return NULL;
161
- }
151
+ if (inf & V_ASN1_CONSTRUCTED) {
152
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_PRIMITIVE);
153
+ return NULL;
154
+ }
162
155
 
163
- if (tag != V_ASN1_OBJECT || xclass != V_ASN1_UNIVERSAL) {
164
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPECTING_AN_OBJECT);
165
- return NULL;
166
- }
167
- ASN1_OBJECT *ret = c2i_ASN1_OBJECT(a, &p, len);
168
- if (ret) {
169
- *pp = p;
170
- }
171
- return ret;
156
+ if (tag != V_ASN1_OBJECT || xclass != V_ASN1_UNIVERSAL) {
157
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPECTING_AN_OBJECT);
158
+ return NULL;
159
+ }
160
+ ASN1_OBJECT *ret = c2i_ASN1_OBJECT(a, &p, len);
161
+ if (ret) {
162
+ *pp = p;
163
+ }
164
+ return ret;
172
165
  }
173
166
 
174
167
  ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp,
175
- long len)
176
- {
177
- ASN1_OBJECT *ret = NULL;
178
- const unsigned char *p;
179
- unsigned char *data;
180
- int i, length;
168
+ long len) {
169
+ ASN1_OBJECT *ret = NULL;
170
+ const unsigned char *p;
171
+ unsigned char *data;
172
+ int i, length;
181
173
 
182
- /*
183
- * Sanity check OID encoding. Need at least one content octet. MSB must
184
- * be clear in the last octet. can't have leading 0x80 in subidentifiers,
185
- * see: X.690 8.19.2
186
- */
187
- if (len <= 0 || len > INT_MAX || pp == NULL || (p = *pp) == NULL ||
188
- p[len - 1] & 0x80) {
189
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_OBJECT_ENCODING);
190
- return NULL;
191
- }
192
- /* Now 0 < len <= INT_MAX, so the cast is safe. */
193
- length = (int)len;
194
- for (i = 0; i < length; i++, p++) {
195
- if (*p == 0x80 && (!i || !(p[-1] & 0x80))) {
196
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_OBJECT_ENCODING);
197
- return NULL;
198
- }
174
+ // Sanity check OID encoding. Need at least one content octet. MSB must
175
+ // be clear in the last octet. can't have leading 0x80 in subidentifiers,
176
+ // see: X.690 8.19.2
177
+ if (len <= 0 || len > INT_MAX || pp == NULL || (p = *pp) == NULL ||
178
+ p[len - 1] & 0x80) {
179
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_OBJECT_ENCODING);
180
+ return NULL;
181
+ }
182
+ // Now 0 < len <= INT_MAX, so the cast is safe.
183
+ length = (int)len;
184
+ for (i = 0; i < length; i++, p++) {
185
+ if (*p == 0x80 && (!i || !(p[-1] & 0x80))) {
186
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_OBJECT_ENCODING);
187
+ return NULL;
199
188
  }
189
+ }
200
190
 
201
- if ((a == NULL) || ((*a) == NULL) ||
202
- !((*a)->flags & ASN1_OBJECT_FLAG_DYNAMIC)) {
203
- if ((ret = ASN1_OBJECT_new()) == NULL)
204
- return (NULL);
205
- } else {
206
- ret = (*a);
191
+ if ((a == NULL) || ((*a) == NULL) ||
192
+ !((*a)->flags & ASN1_OBJECT_FLAG_DYNAMIC)) {
193
+ if ((ret = ASN1_OBJECT_new()) == NULL) {
194
+ return NULL;
207
195
  }
196
+ } else {
197
+ ret = (*a);
198
+ }
208
199
 
209
- p = *pp;
210
- /* detach data from object */
211
- data = (unsigned char *)ret->data;
212
- ret->data = NULL;
213
- /* once detached we can change it */
214
- if ((data == NULL) || (ret->length < length)) {
215
- ret->length = 0;
216
- if (data != NULL)
217
- OPENSSL_free(data);
218
- data = (unsigned char *)OPENSSL_malloc(length);
219
- if (data == NULL) {
220
- i = ERR_R_MALLOC_FAILURE;
221
- goto err;
222
- }
223
- ret->flags |= ASN1_OBJECT_FLAG_DYNAMIC_DATA;
200
+ p = *pp;
201
+ // detach data from object
202
+ data = (unsigned char *)ret->data;
203
+ ret->data = NULL;
204
+ // once detached we can change it
205
+ if ((data == NULL) || (ret->length < length)) {
206
+ ret->length = 0;
207
+ if (data != NULL) {
208
+ OPENSSL_free(data);
224
209
  }
225
- OPENSSL_memcpy(data, p, length);
226
- /* If there are dynamic strings, free them here, and clear the flag */
227
- if ((ret->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) != 0) {
228
- OPENSSL_free((char *)ret->sn);
229
- OPENSSL_free((char *)ret->ln);
230
- ret->flags &= ~ASN1_OBJECT_FLAG_DYNAMIC_STRINGS;
210
+ data = (unsigned char *)OPENSSL_malloc(length);
211
+ if (data == NULL) {
212
+ i = ERR_R_MALLOC_FAILURE;
213
+ goto err;
231
214
  }
232
- /* reattach data to object, after which it remains const */
233
- ret->data = data;
234
- ret->length = length;
235
- ret->sn = NULL;
236
- ret->ln = NULL;
237
- p += length;
215
+ ret->flags |= ASN1_OBJECT_FLAG_DYNAMIC_DATA;
216
+ }
217
+ OPENSSL_memcpy(data, p, length);
218
+ // If there are dynamic strings, free them here, and clear the flag
219
+ if ((ret->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) != 0) {
220
+ OPENSSL_free((char *)ret->sn);
221
+ OPENSSL_free((char *)ret->ln);
222
+ ret->flags &= ~ASN1_OBJECT_FLAG_DYNAMIC_STRINGS;
223
+ }
224
+ // reattach data to object, after which it remains const
225
+ ret->data = data;
226
+ ret->length = length;
227
+ ret->sn = NULL;
228
+ ret->ln = NULL;
229
+ p += length;
238
230
 
239
- if (a != NULL)
240
- (*a) = ret;
241
- *pp = p;
242
- return (ret);
243
- err:
244
- OPENSSL_PUT_ERROR(ASN1, i);
245
- if ((ret != NULL) && ((a == NULL) || (*a != ret)))
246
- ASN1_OBJECT_free(ret);
247
- return (NULL);
231
+ if (a != NULL) {
232
+ (*a) = ret;
233
+ }
234
+ *pp = p;
235
+ return ret;
236
+ err:
237
+ OPENSSL_PUT_ERROR(ASN1, i);
238
+ if ((ret != NULL) && ((a == NULL) || (*a != ret))) {
239
+ ASN1_OBJECT_free(ret);
240
+ }
241
+ return NULL;
248
242
  }
249
243
 
250
- ASN1_OBJECT *ASN1_OBJECT_new(void)
251
- {
252
- ASN1_OBJECT *ret;
244
+ ASN1_OBJECT *ASN1_OBJECT_new(void) {
245
+ ASN1_OBJECT *ret;
253
246
 
254
- ret = (ASN1_OBJECT *)OPENSSL_malloc(sizeof(ASN1_OBJECT));
255
- if (ret == NULL) {
256
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
257
- return (NULL);
258
- }
259
- ret->length = 0;
260
- ret->data = NULL;
261
- ret->nid = 0;
262
- ret->sn = NULL;
263
- ret->ln = NULL;
264
- ret->flags = ASN1_OBJECT_FLAG_DYNAMIC;
265
- return (ret);
247
+ ret = (ASN1_OBJECT *)OPENSSL_malloc(sizeof(ASN1_OBJECT));
248
+ if (ret == NULL) {
249
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
250
+ return NULL;
251
+ }
252
+ ret->length = 0;
253
+ ret->data = NULL;
254
+ ret->nid = 0;
255
+ ret->sn = NULL;
256
+ ret->ln = NULL;
257
+ ret->flags = ASN1_OBJECT_FLAG_DYNAMIC;
258
+ return ret;
266
259
  }
267
260
 
268
- void ASN1_OBJECT_free(ASN1_OBJECT *a)
269
- {
270
- if (a == NULL)
271
- return;
272
- if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) {
273
- OPENSSL_free((void *)a->sn);
274
- OPENSSL_free((void *)a->ln);
275
- a->sn = a->ln = NULL;
276
- }
277
- if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) {
278
- OPENSSL_free((void *)a->data);
279
- a->data = NULL;
280
- a->length = 0;
281
- }
282
- if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC)
283
- OPENSSL_free(a);
261
+ void ASN1_OBJECT_free(ASN1_OBJECT *a) {
262
+ if (a == NULL) {
263
+ return;
264
+ }
265
+ if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) {
266
+ OPENSSL_free((void *)a->sn);
267
+ OPENSSL_free((void *)a->ln);
268
+ a->sn = a->ln = NULL;
269
+ }
270
+ if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) {
271
+ OPENSSL_free((void *)a->data);
272
+ a->data = NULL;
273
+ a->length = 0;
274
+ }
275
+ if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC) {
276
+ OPENSSL_free(a);
277
+ }
284
278
  }
285
279
 
286
280
  ASN1_OBJECT *ASN1_OBJECT_create(int nid, const unsigned char *data, int len,
287
- const char *sn, const char *ln)
288
- {
289
- ASN1_OBJECT o;
281
+ const char *sn, const char *ln) {
282
+ ASN1_OBJECT o;
290
283
 
291
- o.sn = sn;
292
- o.ln = ln;
293
- o.data = data;
294
- o.nid = nid;
295
- o.length = len;
296
- o.flags = ASN1_OBJECT_FLAG_DYNAMIC | ASN1_OBJECT_FLAG_DYNAMIC_STRINGS |
297
- ASN1_OBJECT_FLAG_DYNAMIC_DATA;
298
- return (OBJ_dup(&o));
284
+ o.sn = sn;
285
+ o.ln = ln;
286
+ o.data = data;
287
+ o.nid = nid;
288
+ o.length = len;
289
+ o.flags = ASN1_OBJECT_FLAG_DYNAMIC | ASN1_OBJECT_FLAG_DYNAMIC_STRINGS |
290
+ ASN1_OBJECT_FLAG_DYNAMIC_DATA;
291
+ return (OBJ_dup(&o));
299
292
  }
@@ -59,19 +59,16 @@
59
59
  #include <openssl/err.h>
60
60
  #include <openssl/mem.h>
61
61
 
62
- ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *x)
63
- {
64
- return ASN1_STRING_dup(x);
62
+ ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *x) {
63
+ return ASN1_STRING_dup(x);
65
64
  }
66
65
 
67
66
  int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a,
68
- const ASN1_OCTET_STRING *b)
69
- {
70
- return ASN1_STRING_cmp(a, b);
67
+ const ASN1_OCTET_STRING *b) {
68
+ return ASN1_STRING_cmp(a, b);
71
69
  }
72
70
 
73
71
  int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *x, const unsigned char *d,
74
- int len)
75
- {
76
- return ASN1_STRING_set(x, d, len);
72
+ int len) {
73
+ return ASN1_STRING_set(x, d, len);
77
74
  }
@@ -61,23 +61,22 @@
61
61
  #include "internal.h"
62
62
 
63
63
 
64
- int ASN1_PRINTABLE_type(const unsigned char *s, int len)
65
- {
66
- if (len < 0) {
67
- len = strlen((const char *)s);
68
- }
64
+ int ASN1_PRINTABLE_type(const unsigned char *s, int len) {
65
+ if (len < 0) {
66
+ len = strlen((const char *)s);
67
+ }
69
68
 
70
- int printable = 1;
71
- for (int i = 0; i < len; i++) {
72
- unsigned char c = s[i];
73
- if (c & 0x80) {
74
- /* No need to continue iterating. */
75
- return V_ASN1_T61STRING;
76
- }
77
- if (!asn1_is_printable(c)) {
78
- printable = 0;
79
- }
69
+ int printable = 1;
70
+ for (int i = 0; i < len; i++) {
71
+ unsigned char c = s[i];
72
+ if (c & 0x80) {
73
+ // No need to continue iterating.
74
+ return V_ASN1_T61STRING;
75
+ }
76
+ if (!asn1_is_printable(c)) {
77
+ printable = 0;
80
78
  }
79
+ }
81
80
 
82
- return printable ? V_ASN1_PRINTABLESTRING : V_ASN1_IA5STRING;
81
+ return printable ? V_ASN1_PRINTABLESTRING : V_ASN1_IA5STRING;
83
82
  }