@fails-components/webtransport 0.0.1-rc.2 → 0.0.1

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 (230) hide show
  1. package/CMakeLists.txt +5 -2
  2. package/package.json +1 -1
  3. package/platform/net/quiche/common/platform/impl/quiche_flags_impl.h +1 -54
  4. package/platform/quiche_platform_impl/quic_flags_impl.h +1 -27
  5. package/platform/quiche_platform_impl/quiche_flag_utils_impl.h +1 -16
  6. package/platform/quiche_platform_impl/quiche_flags_impl.h +6 -1
  7. package/src/http3client.cc +14 -2
  8. package/src/http3client.h +10 -15
  9. package/src/webtransport.js +4 -1
  10. package/third_party/boringssl/src/.clang-format +11 -0
  11. package/third_party/boringssl/src/crypto/CMakeLists.txt +0 -1
  12. package/third_party/boringssl/src/crypto/asn1/a_strex.c +61 -95
  13. package/third_party/boringssl/src/crypto/asn1/asn1_par.c +31 -9
  14. package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +33 -19
  15. package/third_party/boringssl/src/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl +8 -8
  16. package/third_party/boringssl/src/crypto/cipher_extra/derive_key.c +4 -4
  17. package/third_party/boringssl/src/crypto/cipher_extra/e_des.c +1 -0
  18. package/third_party/boringssl/src/crypto/cipher_extra/e_null.c +1 -0
  19. package/third_party/boringssl/src/crypto/cipher_extra/e_rc2.c +1 -0
  20. package/third_party/boringssl/src/crypto/cipher_extra/e_rc4.c +2 -0
  21. package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +1 -0
  22. package/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl +0 -197
  23. package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_test.cc +0 -9
  24. package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_tests.txt +68 -0
  25. package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +45 -40
  26. package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +11 -8
  27. package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c +15 -106
  28. package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h +5 -1
  29. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +12 -32
  30. package/third_party/boringssl/src/crypto/fipsmodule/cipher/internal.h +39 -0
  31. package/third_party/boringssl/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +7 -9
  32. package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +1 -0
  33. package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +2 -1
  34. package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -0
  35. package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +1 -0
  36. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +1 -0
  37. package/third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c +4 -4
  38. package/third_party/boringssl/src/crypto/x509/algorithm.c +18 -1
  39. package/third_party/boringssl/src/crypto/x509/x_algor.c +1 -1
  40. package/third_party/boringssl/src/crypto/x509/x_crl.c +3 -3
  41. package/third_party/boringssl/src/crypto/x509/x_exten.c +1 -1
  42. package/third_party/boringssl/src/crypto/x509/x_name.c +1 -1
  43. package/third_party/boringssl/src/crypto/x509/x_pubkey.c +1 -1
  44. package/third_party/boringssl/src/crypto/x509/x_req.c +2 -2
  45. package/third_party/boringssl/src/crypto/x509/x_sig.c +1 -1
  46. package/third_party/boringssl/src/crypto/x509/x_spki.c +2 -2
  47. package/third_party/boringssl/src/crypto/x509/x_val.c +1 -1
  48. package/third_party/boringssl/src/crypto/x509/x_x509.c +2 -2
  49. package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +1 -1
  50. package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +1 -1
  51. package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +2 -2
  52. package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +6 -6
  53. package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +6 -6
  54. package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +1 -1
  55. package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +2 -2
  56. package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +3 -3
  57. package/third_party/boringssl/src/crypto/x509v3/v3_info.c +3 -3
  58. package/third_party/boringssl/src/crypto/x509v3/v3_int.c +3 -3
  59. package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +2 -2
  60. package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +2 -2
  61. package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +1 -1
  62. package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +2 -2
  63. package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +1 -1
  64. package/third_party/boringssl/src/decrepit/blowfish/blowfish.c +1 -0
  65. package/third_party/boringssl/src/decrepit/cast/cast.c +1 -0
  66. package/third_party/boringssl/src/decrepit/cfb/cfb.c +1 -0
  67. package/third_party/boringssl/src/decrepit/xts/xts.c +2 -1
  68. package/third_party/boringssl/src/fuzz/CMakeLists.txt +1 -0
  69. package/third_party/boringssl/src/fuzz/der_roundtrip.cc +57 -0
  70. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/0461791e54b4840c109637952eab43d9b938cab8 +0 -0
  71. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/06e57a7b98a403a00822739739924b97ae6c74e9 +0 -0
  72. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/078c3c1199930781466871c8dda69bec379286a4 +0 -0
  73. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/082a991742f652549e4b207100ee521f474e0a99 +1 -0
  74. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/091e3389548686c5038d04e3d76b9c4d30502074 +0 -0
  75. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/13e484c406efe97dc9d91f8b80a27b0e597c34da +1 -0
  76. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/153d254254345b61e20e7b37637dd6f6fd71ba01 +0 -0
  77. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/163605136e22f5b5302fe60d1f17837bee6b6b2b +1 -0
  78. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1a96ec99b487b93052cd860c447e6d126dcc36d4 +1 -0
  79. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1cc9ad96fcee279e8589b7071c7a0ccd111098f2 +1 -0
  80. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/229b8e1825512868e0e11a199ed71231dd41bb4f +1 -0
  81. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/236d820eadf7f84d70de7bb8be5f1c57a4005de2 +0 -0
  82. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/24fd9742dbdee3167509db4af245ad6f8c4c1e99 +0 -0
  83. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2896f8deb3c4e8bdfeab743b22c64c92316880f7 +0 -0
  84. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/29b6252fe9c4d1186394b1664c421cca795b61a5 +0 -0
  85. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2b4955132275314d1d377f37f93d8c1879a3519a +0 -0
  86. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2e7112ac524a7a663632397cbb41f7dfd22e92c6 +0 -0
  87. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/396d197005432accf99bf0f483286e459eb24063 +1 -0
  88. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3c75fe79266cf639f2180722a3f03f8fc3e25685 +1 -0
  89. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3fbb104fb0eb6cae4af34d8a516998336b3a6778 +1 -0
  90. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/422fa995b3fdfed572b68b292062c330d6d05272 +0 -0
  91. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/428b48fc494cee828f0c27f77aef477cb2e1fd80 +0 -0
  92. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4bd69e424b6fa38f9e63e58b8d0e95ac2d38d598 +1 -0
  93. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4be7e1f134e1c55aeadeead515200f6f1e6254ba +0 -0
  94. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4de268400e174db2dc306f45c833cf968a6c6546 +0 -0
  95. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/52d2c7efcd7da0eb7463829e05a598e36729bfae +1 -0
  96. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53cf415eb9de49fb5a0cb46e745e413a99aa0779 +0 -0
  97. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53ea84c48a5792281a46eb5a9c896d54ea3f1838 +1 -0
  98. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5ba93c9db0cff93f52b521d7420e43f6eda2784f +0 -0
  99. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d +1 -0
  100. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5e5361730362736fe3e2804d8566e3c91454509b +0 -0
  101. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6654fedb1fc4b07095695b062b5af4c2f12d59ae +0 -0
  102. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6cad8b2a41194372ec897bece6512fe8331e274d +1 -0
  103. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6f40330ec07e8e22f113f982b297ff7f86b8e485 +0 -0
  104. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/738f291e53e97c08dae378c71ef70a60e31ae900 +0 -0
  105. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7396791821e64fc9340249a4bcbd2198e9f237db +0 -0
  106. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7653595e28f23e62ea6707c99ca08c780a69335f +0 -0
  107. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/77de68daecd823babbb58edb1c8e14d7106e83bb +1 -0
  108. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7cb5c71603a787032973d6ddc9c2c34638005784 +0 -0
  109. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/80a1e1ae75c1e5ef7bbde5f5877e3e5b26b3cf58 +0 -0
  110. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/872ba8af52a8c1380c388bab0e20bec2e729db80 +1 -0
  111. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8855f2d904cf1bbaffc54e68d98890fdc9ec14cc +0 -0
  112. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8a22f56ee86cc2d67e9610a6b0ed59f21008a341 +0 -0
  113. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/935a69e9f3bfa1dd3bf058fa3e1b953e82195de6 +1 -0
  114. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/951ccb49640c8f9e81fb4e0d82730321f4e15bb3 +0 -0
  115. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/9af1f3ed10c7a54f6b57c344015141cc082db23b +0 -0
  116. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a0b7dd1684089c63a4aac2e4a832544df4d639d6 +0 -0
  117. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22d0d3565a509a4bfedce078090d8c6a908d950 +0 -0
  118. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22f1185582f66227118c8e9002a5c29728f0650 +0 -0
  119. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a457945cb86ec812235f407ed70fe72fbaf694a1 +1 -0
  120. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4ee44c4e8728d4924642ef8765063262e8c4601 +0 -0
  121. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4fc609a6546fc0061f499f0faed9054fd388c9a +1 -0
  122. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a7c13e6fe60eee08b9aac00a095a9301ea1a9824 +1 -0
  123. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a98e22a5a8c2f5dda365d55e76536931010e1560 +0 -0
  124. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aca6ed86348b1176bfbe4ebf32b2d48a0aa42f9f +0 -0
  125. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aeefb82d7f5cc69168aade3b196a84d0f5c14bf2 +0 -0
  126. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b37e0f6fa42840c773747c4cb608c278ab65021d +1 -0
  127. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b5d4e67f0ec5b1a90100d8ad424d77aea8e16353 +0 -0
  128. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b65ea16ba4dae8599ebbad7c4cb9fcd505edf485 +0 -0
  129. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b95311782071c4d9182c0effe32487fc5cdbd33d +1 -0
  130. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bbcaf4d15f92bfc6d624eee967fade1a74329f30 +0 -0
  131. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc26b8c794ac0adf948cbca02e88b3901824ef17 +1 -0
  132. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc7b23c2c68e4ad33ecea493ff6e60d423371cd0 +1 -0
  133. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bd8daf3e78d8ba3a25838053b6993edc7a21c30e +0 -0
  134. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c4d94647e646f02da1736b3179804ad6083acde9 +0 -0
  135. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c869b259f9f81bec8ed24a9bc2cef35a513fb9fc +0 -0
  136. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ceee46f04a09ef5d3342ef25d9f483e861727575 +1 -0
  137. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d05c069216b54f35bc7e3ee08371baee243c089a +0 -0
  138. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d18c30ba21e0d085dd983ad528f2c9001285d3d2 +1 -0
  139. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d2c00146b2f2bcb4c6cecb731d2062273523d8c8 +1 -0
  140. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d9bc7157a485958a5fce35ce777f551fe3f7d94c +0 -0
  141. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/defce76f0d3c3e057bb623986bacee7bbd07d1a1 +1 -0
  142. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/df9b696736847e43672b7a99ca05655af8a81135 +0 -0
  143. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e5b420f71cf412bd9fdebdd46245fabd1f3462e5 +1 -0
  144. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e7979b0e6e3e9cd64ceab99778c55205d6f92a73 +0 -0
  145. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ee629f1935abc05fdc32ba314ec1f80f4bff2a17 +0 -0
  146. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/f944dcd635f9801f7ac90a407fbc479964dec024 +0 -0
  147. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fadcde7d914246ca04bd56e68fd4045b1cf1c5ef +0 -0
  148. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fd8be6506a9995f626eef831b9c981a80b0e3640 +0 -0
  149. package/third_party/boringssl/src/include/openssl/cipher.h +21 -48
  150. package/third_party/boringssl/src/include/openssl/ssl.h +38 -0
  151. package/third_party/boringssl/src/ssl/handshake_client.cc +8 -2
  152. package/third_party/boringssl/src/ssl/internal.h +16 -3
  153. package/third_party/boringssl/src/ssl/s3_both.cc +23 -1
  154. package/third_party/boringssl/src/ssl/ssl_lib.cc +94 -1
  155. package/third_party/boringssl/src/ssl/test/runner/runner.go +192 -0
  156. package/third_party/boringssl/src/ssl/test/test_config.cc +6 -0
  157. package/third_party/boringssl/src/ssl/test/test_config.h +1 -0
  158. package/third_party/boringssl/src/ssl/tls13_client.cc +7 -3
  159. package/third_party/boringssl/src/ssl/tls13_server.cc +2 -1
  160. package/third_party/boringssl/src/util/convert_comments.go +23 -0
  161. package/third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp/acvp.go +1 -1
  162. package/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc +32 -21
  163. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc +1 -1
  164. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h +1 -1
  165. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +3 -2
  166. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +2 -2
  167. package/third_party/quiche/quiche/http2/adapter/http2_protocol.h +5 -1
  168. package/third_party/quiche/quiche/http2/adapter/http2_util.cc +2 -0
  169. package/third_party/quiche/quiche/http2/adapter/http2_visitor_interface.h +2 -0
  170. package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +119 -0
  171. package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +130 -0
  172. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -12
  173. package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +6 -11
  174. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +0 -5
  175. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.h +0 -2
  176. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.cc +0 -10
  177. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.h +0 -1
  178. package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_interface.h +0 -6
  179. package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc +0 -2
  180. package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.h +0 -1
  181. package/third_party/quiche/quiche/quic/core/crypto/transport_parameters_test.cc +1 -3
  182. package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +19 -9
  183. package/third_party/quiche/quiche/quic/core/http/http_decoder_test.cc +6 -3
  184. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -16
  185. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +6 -6
  186. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +25 -15
  187. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +6 -5
  188. package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +1 -2
  189. package/third_party/quiche/quiche/quic/core/quic_bandwidth_test.cc +12 -12
  190. package/third_party/quiche/quiche/quic/core/quic_connection.cc +5 -95
  191. package/third_party/quiche/quiche/quic/core/quic_connection.h +0 -35
  192. package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +80 -196
  193. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +1 -1
  194. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +29 -5
  195. package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +46 -0
  196. package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +17 -14
  197. package/third_party/quiche/quiche/quic/core/quic_flags_list.h +54 -54
  198. package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +8 -5
  199. package/third_party/quiche/quiche/quic/core/quic_framer_test.cc +8 -5
  200. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +1 -0
  201. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +29 -0
  202. package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +1 -5
  203. package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +18 -11
  204. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +9 -28
  205. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +0 -13
  206. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +1 -49
  207. package/third_party/quiche/quiche/quic/core/quic_session.cc +0 -8
  208. package/third_party/quiche/quiche/quic/core/quic_session.h +0 -1
  209. package/third_party/quiche/quiche/quic/core/quic_stream.cc +1 -1
  210. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.cc +5 -0
  211. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.h +4 -0
  212. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer_test.cc +12 -5
  213. package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +27 -12
  214. package/third_party/quiche/quiche/quic/core/quic_types.cc +0 -1
  215. package/third_party/quiche/quiche/quic/core/quic_types.h +0 -3
  216. package/third_party/quiche/quiche/quic/core/quic_utils.cc +0 -3
  217. package/third_party/quiche/quiche/quic/core/quic_utils_test.cc +0 -2
  218. package/third_party/quiche/quiche/quic/core/tls_client_handshaker_test.cc +16 -12
  219. package/third_party/quiche/quiche/quic/core/tls_handshaker.cc +18 -3
  220. package/third_party/quiche/quiche/quic/qbone/platform/internet_checksum.cc +7 -2
  221. package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.cc +20 -12
  222. package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.h +10 -5
  223. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +0 -2
  224. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.cc +0 -8
  225. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +0 -1
  226. package/third_party/quiche/quiche/quic/tools/quic_simple_server_stream_test.cc +2 -1
  227. package/platform/net/quiche/common/platform/impl/quic_flags_list_add.h +0 -379
  228. package/platform/net/quiche/common/platform/impl/quiche_flags_impl.cc +0 -21
  229. package/third_party/boringssl/src/crypto/asn1/charmap.h +0 -15
  230. package/third_party/boringssl/src/crypto/asn1/charmap.pl +0 -135
@@ -19032,6 +19032,197 @@ func addHintMismatchTests() {
19032
19032
  }
19033
19033
  }
19034
19034
 
19035
+ func addCompliancePolicyTests() {
19036
+ for _, protocol := range []protocol{tls, quic} {
19037
+ for _, suite := range testCipherSuites {
19038
+ var isFIPSCipherSuite bool
19039
+ switch suite.id {
19040
+ case TLS_AES_128_GCM_SHA256,
19041
+ TLS_AES_256_GCM_SHA384,
19042
+ TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
19043
+ TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
19044
+ TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
19045
+ TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:
19046
+ isFIPSCipherSuite = true
19047
+ }
19048
+
19049
+ var certFile string
19050
+ var keyFile string
19051
+ var certs []Certificate
19052
+ if hasComponent(suite.name, "ECDSA") {
19053
+ certFile = ecdsaP256CertificateFile
19054
+ keyFile = ecdsaP256KeyFile
19055
+ certs = []Certificate{ecdsaP256Certificate}
19056
+ } else {
19057
+ certFile = rsaCertificateFile
19058
+ keyFile = rsaKeyFile
19059
+ certs = []Certificate{rsaCertificate}
19060
+ }
19061
+
19062
+ maxVersion := uint16(VersionTLS13)
19063
+ if !isTLS13Suite(suite.name) {
19064
+ if protocol == quic {
19065
+ continue
19066
+ }
19067
+ maxVersion = VersionTLS12
19068
+ }
19069
+
19070
+ testCases = append(testCases, testCase{
19071
+ testType: serverTest,
19072
+ protocol: protocol,
19073
+ name: "Compliance-fips202205-" + protocol.String() + "-Server-" + suite.name,
19074
+ config: Config{
19075
+ MinVersion: VersionTLS12,
19076
+ MaxVersion: maxVersion,
19077
+ CipherSuites: []uint16{suite.id},
19078
+ },
19079
+ certFile: certFile,
19080
+ keyFile: keyFile,
19081
+ flags: []string{
19082
+ "-fips-202205",
19083
+ },
19084
+ shouldFail: !isFIPSCipherSuite,
19085
+ })
19086
+
19087
+ testCases = append(testCases, testCase{
19088
+ testType: clientTest,
19089
+ protocol: protocol,
19090
+ name: "Compliance-fips202205-" + protocol.String() + "-Client-" + suite.name,
19091
+ config: Config{
19092
+ MinVersion: VersionTLS12,
19093
+ MaxVersion: maxVersion,
19094
+ CipherSuites: []uint16{suite.id},
19095
+ Certificates: certs,
19096
+ },
19097
+ flags: []string{
19098
+ "-fips-202205",
19099
+ },
19100
+ shouldFail: !isFIPSCipherSuite,
19101
+ })
19102
+ }
19103
+
19104
+ // Check that a TLS 1.3 client won't accept ChaCha20 even if the server
19105
+ // picks it without it being in the client's cipher list.
19106
+ testCases = append(testCases, testCase{
19107
+ testType: clientTest,
19108
+ protocol: protocol,
19109
+ name: "Compliance-fips202205-" + protocol.String() + "-Client-ReallyWontAcceptChaCha",
19110
+ config: Config{
19111
+ MinVersion: VersionTLS12,
19112
+ MaxVersion: maxVersion,
19113
+ Bugs: ProtocolBugs{
19114
+ SendCipherSuite: TLS_CHACHA20_POLY1305_SHA256,
19115
+ },
19116
+ },
19117
+ flags: []string{
19118
+ "-fips-202205",
19119
+ },
19120
+ shouldFail: true,
19121
+ expectedError: ":WRONG_CIPHER_RETURNED:",
19122
+ })
19123
+
19124
+ for _, curve := range testCurves {
19125
+ var isFIPSCurve bool
19126
+ switch curve.id {
19127
+ case CurveP256, CurveP384:
19128
+ isFIPSCurve = true
19129
+ }
19130
+
19131
+ testCases = append(testCases, testCase{
19132
+ testType: serverTest,
19133
+ protocol: protocol,
19134
+ name: "Compliance-fips202205-" + protocol.String() + "-Server-" + curve.name,
19135
+ config: Config{
19136
+ MinVersion: VersionTLS12,
19137
+ MaxVersion: VersionTLS13,
19138
+ CurvePreferences: []CurveID{curve.id},
19139
+ },
19140
+ flags: []string{
19141
+ "-fips-202205",
19142
+ },
19143
+ shouldFail: !isFIPSCurve,
19144
+ })
19145
+
19146
+ testCases = append(testCases, testCase{
19147
+ testType: clientTest,
19148
+ protocol: protocol,
19149
+ name: "Compliance-fips202205-" + protocol.String() + "-Client-" + curve.name,
19150
+ config: Config{
19151
+ MinVersion: VersionTLS12,
19152
+ MaxVersion: VersionTLS13,
19153
+ CurvePreferences: []CurveID{curve.id},
19154
+ },
19155
+ flags: []string{
19156
+ "-fips-202205",
19157
+ },
19158
+ shouldFail: !isFIPSCurve,
19159
+ })
19160
+ }
19161
+
19162
+ for _, sigalg := range testSignatureAlgorithms {
19163
+ var isFIPSSigAlg bool
19164
+ switch sigalg.id {
19165
+ case signatureRSAPKCS1WithSHA256,
19166
+ signatureRSAPKCS1WithSHA384,
19167
+ signatureRSAPKCS1WithSHA512,
19168
+ signatureECDSAWithP256AndSHA256,
19169
+ signatureECDSAWithP384AndSHA384,
19170
+ signatureRSAPSSWithSHA256,
19171
+ signatureRSAPSSWithSHA384,
19172
+ signatureRSAPSSWithSHA512:
19173
+ isFIPSSigAlg = true
19174
+ }
19175
+
19176
+ if sigalg.cert == testCertECDSAP224 {
19177
+ // This can work in TLS 1.2, but not with TLS 1.3.
19178
+ // For consistency it's not permitted in FIPS mode.
19179
+ isFIPSSigAlg = false
19180
+ }
19181
+
19182
+ maxVersion := uint16(VersionTLS13)
19183
+ if hasComponent(sigalg.name, "PKCS1") {
19184
+ if protocol == quic {
19185
+ continue
19186
+ }
19187
+ maxVersion = VersionTLS12
19188
+ }
19189
+
19190
+ testCases = append(testCases, testCase{
19191
+ testType: serverTest,
19192
+ protocol: protocol,
19193
+ name: "Compliance-fips202205-" + protocol.String() + "-Server-" + sigalg.name,
19194
+ config: Config{
19195
+ MinVersion: VersionTLS12,
19196
+ MaxVersion: maxVersion,
19197
+ VerifySignatureAlgorithms: []signatureAlgorithm{sigalg.id},
19198
+ },
19199
+ flags: []string{
19200
+ "-fips-202205",
19201
+ "-cert-file", path.Join(*resourceDir, getShimCertificate(sigalg.cert)),
19202
+ "-key-file", path.Join(*resourceDir, getShimKey(sigalg.cert)),
19203
+ },
19204
+ shouldFail: !isFIPSSigAlg,
19205
+ })
19206
+
19207
+ testCases = append(testCases, testCase{
19208
+ testType: clientTest,
19209
+ protocol: protocol,
19210
+ name: "Compliance-fips202205-" + protocol.String() + "-Client-" + sigalg.name,
19211
+ config: Config{
19212
+ MinVersion: VersionTLS12,
19213
+ MaxVersion: maxVersion,
19214
+ SignSignatureAlgorithms: []signatureAlgorithm{sigalg.id},
19215
+ Certificates: []Certificate{getRunnerCertificate(sigalg.cert)},
19216
+ },
19217
+ flags: []string{
19218
+ "-fips-202205",
19219
+ },
19220
+ shouldFail: !isFIPSSigAlg,
19221
+ })
19222
+ }
19223
+ }
19224
+ }
19225
+
19035
19226
  func worker(statusChan chan statusMsg, c chan *testCase, shimPath string, wg *sync.WaitGroup) {
19036
19227
  defer wg.Done()
19037
19228
 
@@ -19274,6 +19465,7 @@ func main() {
19274
19465
  addDelegatedCredentialTests()
19275
19466
  addEncryptedClientHelloTests()
19276
19467
  addHintMismatchTests()
19468
+ addCompliancePolicyTests()
19277
19469
 
19278
19470
  toAppend, err := convertToSplitHandshakeTests(testCases)
19279
19471
  if err != nil {
@@ -385,6 +385,7 @@ std::vector<Flag> SortedFlags() {
385
385
  &TestConfig::quic_early_data_context),
386
386
  IntFlag("-early-write-after-message",
387
387
  &TestConfig::early_write_after_message),
388
+ BoolFlag("-fips-202205", &TestConfig::fips_202205),
388
389
  };
389
390
  std::sort(flags.begin(), flags.end(), [](const Flag &a, const Flag &b) {
390
391
  return strcmp(a.name, b.name) < 0;
@@ -1765,6 +1766,11 @@ bssl::UniquePtr<SSL> TestConfig::NewSSL(
1765
1766
  if (enable_ech_grease) {
1766
1767
  SSL_set_enable_ech_grease(ssl.get(), 1);
1767
1768
  }
1769
+ if (fips_202205 && !SSL_set_compliance_policy(
1770
+ ssl.get(), ssl_compliance_policy_fips_202205)) {
1771
+ fprintf(stderr, "SSL_set_compliance_policy failed\n");
1772
+ return nullptr;
1773
+ }
1768
1774
  if (!ech_config_list.empty() &&
1769
1775
  !SSL_set1_ech_config_list(
1770
1776
  ssl.get(), reinterpret_cast<const uint8_t *>(ech_config_list.data()),
@@ -193,6 +193,7 @@ struct TestConfig {
193
193
  bool wait_for_debugger = false;
194
194
  std::string quic_early_data_context;
195
195
  int early_write_after_message = 0;
196
+ bool fips_202205 = false;
196
197
 
197
198
  int argc;
198
199
  char **argv;
@@ -192,11 +192,15 @@ static enum ssl_hs_wait_t do_read_hello_retry_request(SSL_HANDSHAKE *hs) {
192
192
  }
193
193
 
194
194
  // The cipher suite must be one we offered. We currently offer all supported
195
- // TLS 1.3 ciphers, so check the version.
195
+ // TLS 1.3 ciphers unless policy controls limited it. So we check the version
196
+ // and that it's ok per policy.
196
197
  const SSL_CIPHER *cipher = SSL_get_cipher_by_value(server_hello.cipher_suite);
197
198
  if (cipher == nullptr ||
198
199
  SSL_CIPHER_get_min_version(cipher) > ssl_protocol_version(ssl) ||
199
- SSL_CIPHER_get_max_version(cipher) < ssl_protocol_version(ssl)) {
200
+ SSL_CIPHER_get_max_version(cipher) < ssl_protocol_version(ssl) ||
201
+ !ssl_tls13_cipher_meets_policy(
202
+ SSL_CIPHER_get_value(cipher),
203
+ ssl->config->only_fips_cipher_suites_in_tls13)) {
200
204
  OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_CIPHER_RETURNED);
201
205
  ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
202
206
  return ssl_hs_error;
@@ -372,7 +376,7 @@ static enum ssl_hs_wait_t do_read_server_hello(SSL_HANDSHAKE *hs) {
372
376
  }
373
377
 
374
378
  // Check the cipher suite, in case this is after HelloRetryRequest.
375
- if (SSL_CIPHER_get_value(hs->new_cipher) != server_hello.cipher_suite) {
379
+ if (SSL_CIPHER_get_protocol_id(hs->new_cipher) != server_hello.cipher_suite) {
376
380
  OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_CIPHER_RETURNED);
377
381
  ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
378
382
  return ssl_hs_error;
@@ -116,7 +116,8 @@ static const SSL_CIPHER *choose_tls13_cipher(
116
116
 
117
117
  const uint16_t version = ssl_protocol_version(ssl);
118
118
 
119
- return ssl_choose_tls13_cipher(cipher_suites, version, group_id);
119
+ return ssl_choose_tls13_cipher(cipher_suites, version, group_id,
120
+ ssl->config->only_fips_cipher_suites_in_tls13);
120
121
  }
121
122
 
122
123
  static bool add_new_session_tickets(SSL_HANDSHAKE *hs, bool *out_sent_tickets) {
@@ -232,6 +232,29 @@ func convertComments(path string, in []byte) []byte {
232
232
  }
233
233
 
234
234
  for i, line := range group.lines {
235
+ // The OpenSSL style writes multiline block comments with a
236
+ // blank line at the top and bottom, like so:
237
+ //
238
+ // /*
239
+ // * Some multi-line
240
+ // * comment
241
+ // */
242
+ //
243
+ // The trailing lines are already removed above, when buffering.
244
+ // Remove the leading lines here. (The leading lines cannot be
245
+ // removed when buffering because we may discover the comment is
246
+ // not convertible in later lines.)
247
+ //
248
+ // Note the leading line cannot be easily removed if there is
249
+ // code before it, such as the following. Skip those cases.
250
+ //
251
+ // foo(); /*
252
+ // * Some multi-line
253
+ // * comment
254
+ // */
255
+ if i == 0 && allSpaces(line[:group.column]) && len(line) == group.column+2 {
256
+ continue
257
+ }
235
258
  newLine := fmt.Sprintf("%s%s//%s", line[:group.column], adjust, strings.TrimRight(line[group.column+2:], " "))
236
259
  if len(newLine) > 80 {
237
260
  fmt.Fprintf(os.Stderr, "%s:%d: Line is now longer than 80 characters\n", path, lineNo+i+1)
@@ -91,7 +91,7 @@ func NewServer(prefix string, logFile string, derCertificates [][]byte, privateK
91
91
  return conn, err
92
92
  },
93
93
  },
94
- Timeout: 30 * time.Second,
94
+ Timeout: 120 * time.Second,
95
95
  }
96
96
 
97
97
  return &Server{client: client, prefix: prefix, totpFunc: totp, PrefixTokens: make(map[string]string)}
@@ -297,10 +297,10 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
297
297
  "direction": ["encrypt", "decrypt"],
298
298
  "keyLen": [128, 192, 256],
299
299
  "payloadLen": [{
300
- "min": 0, "max": 256, "increment": 8
300
+ "min": 0, "max": 65536, "increment": 8
301
301
  }],
302
302
  "aadLen": [{
303
- "min": 0, "max": 320, "increment": 8
303
+ "min": 0, "max": 65536, "increment": 8
304
304
  }],
305
305
  "tagLen": [32, 64, 96, 104, 112, 120, 128],
306
306
  "ivLen": [96],
@@ -312,10 +312,10 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
312
312
  "direction": ["encrypt", "decrypt"],
313
313
  "keyLen": [128, 192, 256],
314
314
  "payloadLen": [{
315
- "min": 0, "max": 256, "increment": 8
315
+ "min": 0, "max": 65536, "increment": 8
316
316
  }],
317
317
  "aadLen": [{
318
- "min": 0, "max": 320, "increment": 8
318
+ "min": 0, "max": 65536, "increment": 8
319
319
  }],
320
320
  "tagLen": [32, 64, 96, 104, 112, 120, 128],
321
321
  "ivLen": [96],
@@ -334,7 +334,7 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
334
334
  "keyLen": [
335
335
  128, 192, 256
336
336
  ],
337
- "payloadLen": [{"min": 128, "max": 1024, "increment": 64}]
337
+ "payloadLen": [{"min": 128, "max": 4096, "increment": 64}]
338
338
  },
339
339
  {
340
340
  "algorithm": "ACVP-AES-KWP",
@@ -363,14 +363,14 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
363
363
  ],
364
364
  "payloadLen": [{"min": 0, "max": 256, "increment": 8}],
365
365
  "ivLen": [104],
366
- "tagLen": [32],
367
- "aadLen": [{"min": 0, "max": 1024, "increment": 8}]
366
+ "tagLen": [32, 64],
367
+ "aadLen": [{"min": 0, "max": 524288, "increment": 8}]
368
368
  },
369
369
  {
370
370
  "algorithm": "HMAC-SHA-1",
371
371
  "revision": "1.0",
372
372
  "keyLen": [{
373
- "min": 8, "max": 2048, "increment": 8
373
+ "min": 8, "max": 524288, "increment": 8
374
374
  }],
375
375
  "macLen": [{
376
376
  "min": 32, "max": 160, "increment": 8
@@ -380,7 +380,7 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
380
380
  "algorithm": "HMAC-SHA2-224",
381
381
  "revision": "1.0",
382
382
  "keyLen": [{
383
- "min": 8, "max": 2048, "increment": 8
383
+ "min": 8, "max": 524288, "increment": 8
384
384
  }],
385
385
  "macLen": [{
386
386
  "min": 32, "max": 224, "increment": 8
@@ -390,7 +390,7 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
390
390
  "algorithm": "HMAC-SHA2-256",
391
391
  "revision": "1.0",
392
392
  "keyLen": [{
393
- "min": 8, "max": 2048, "increment": 8
393
+ "min": 8, "max": 524288, "increment": 8
394
394
  }],
395
395
  "macLen": [{
396
396
  "min": 32, "max": 256, "increment": 8
@@ -400,7 +400,7 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
400
400
  "algorithm": "HMAC-SHA2-384",
401
401
  "revision": "1.0",
402
402
  "keyLen": [{
403
- "min": 8, "max": 2048, "increment": 8
403
+ "min": 8, "max": 524288, "increment": 8
404
404
  }],
405
405
  "macLen": [{
406
406
  "min": 32, "max": 384, "increment": 8
@@ -410,7 +410,7 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
410
410
  "algorithm": "HMAC-SHA2-512",
411
411
  "revision": "1.0",
412
412
  "keyLen": [{
413
- "min": 8, "max": 2048, "increment": 8
413
+ "min": 8, "max": 524288, "increment": 8
414
414
  }],
415
415
  "macLen": [{
416
416
  "min": 32, "max": 512, "increment": 8
@@ -420,7 +420,7 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
420
420
  "algorithm": "HMAC-SHA2-512/256",
421
421
  "revision": "1.0",
422
422
  "keyLen": [{
423
- "min": 8, "max": 2048, "increment": 8
423
+ "min": 8, "max": 524288, "increment": 8
424
424
  }],
425
425
  "macLen": [{
426
426
  "min": 32, "max": 256, "increment": 8
@@ -821,12 +821,12 @@ static bool GetConfig(const Span<const uint8_t> args[], ReplyCallback write_repl
821
821
  "direction": ["gen", "ver"],
822
822
  "msgLen": [{
823
823
  "min": 0,
824
- "max": 65536,
824
+ "max": 524288,
825
825
  "increment": 8
826
826
  }],
827
827
  "keyLen": [128, 256],
828
828
  "macLen": [{
829
- "min": 32,
829
+ "min": 8,
830
830
  "max": 128,
831
831
  "increment": 8
832
832
  }]
@@ -1096,10 +1096,21 @@ static bool AESCCMSetup(EVP_AEAD_CTX *ctx, Span<const uint8_t> tag_len_span,
1096
1096
  return false;
1097
1097
  }
1098
1098
  memcpy(&tag_len_32, tag_len_span.data(), sizeof(tag_len_32));
1099
- if (tag_len_32 != 4) {
1100
- LOG_ERROR("AES-CCM only supports 4-byte tags, but %u was requested\n",
1101
- static_cast<unsigned>(tag_len_32));
1102
- return false;
1099
+ const EVP_AEAD *aead;
1100
+ switch (tag_len_32) {
1101
+ case 4:
1102
+ aead = EVP_aead_aes_128_ccm_bluetooth();
1103
+ break;
1104
+
1105
+ case 8:
1106
+ aead = EVP_aead_aes_128_ccm_bluetooth_8();
1107
+ break;
1108
+
1109
+ default:
1110
+ LOG_ERROR(
1111
+ "AES-CCM only supports 4- and 8-byte tags, but %u was requested\n",
1112
+ static_cast<unsigned>(tag_len_32));
1113
+ return false;
1103
1114
  }
1104
1115
 
1105
1116
  if (key.size() != 16) {
@@ -1108,8 +1119,8 @@ static bool AESCCMSetup(EVP_AEAD_CTX *ctx, Span<const uint8_t> tag_len_span,
1108
1119
  return false;
1109
1120
  }
1110
1121
 
1111
- if (!EVP_AEAD_CTX_init(ctx, EVP_aead_aes_128_ccm_bluetooth(), key.data(),
1112
- key.size(), tag_len_32, nullptr)) {
1122
+ if (!EVP_AEAD_CTX_init(ctx, aead, key.data(), key.size(), tag_len_32,
1123
+ nullptr)) {
1113
1124
  LOG_ERROR("Failed to setup AES-CCM with tag length %u\n",
1114
1125
  static_cast<unsigned>(tag_len_32));
1115
1126
  return false;
@@ -4,6 +4,6 @@
4
4
 
5
5
  #include "quiche_platform_impl/quiche_flags_impl.h"
6
6
 
7
- #define QUIC_FLAG(flag, value) bool flag = value;
7
+ #define QUIC_FLAG(flag, value) bool FLAGS_##flag = value;
8
8
  #include "quiche/quic/core/quic_flags_list.h"
9
9
  #undef QUIC_FLAG
@@ -13,7 +13,7 @@
13
13
 
14
14
  #include "quiche/common/platform/api/quiche_export.h"
15
15
 
16
- #define QUIC_FLAG(flag, value) QUICHE_EXPORT_PRIVATE extern bool flag;
16
+ #define QUIC_FLAG(flag, value) QUICHE_EXPORT_PRIVATE extern bool FLAGS_##flag;
17
17
  #include "quiche/quic/core/quic_flags_list.h"
18
18
  #undef QUIC_FLAG
19
19
 
@@ -142,8 +142,9 @@ class QUICHE_EXPORT_PRIVATE CheckLogSink : public NoopLogSink {
142
142
  #define QUICHE_DCHECK_IMPL(condition) \
143
143
  QUICHE_NOOP_STREAM_WITH_CONDITION((condition))
144
144
  #else
145
- #define QUICHE_DCHECK_IMPL(condition) \
146
- QUICHE_LOG_IF_IMPL(DFATAL, !static_cast<bool>(condition))
145
+ #define QUICHE_DCHECK_IMPL(condition) \
146
+ QUICHE_LOG_IF_IMPL(DFATAL, !static_cast<bool>(condition)) \
147
+ << "Check failed: " << #condition
147
148
  #endif
148
149
  #define QUICHE_DCHECK_EQ_IMPL(val1, val2) QUICHE_DCHECK_IMPL((val1) == (val2))
149
150
  #define QUICHE_DCHECK_NE_IMPL(val1, val2) QUICHE_DCHECK_IMPL((val1) != (val2))
@@ -7,7 +7,7 @@
7
7
  #include "quiche/common/platform/api/quiche_flags.h"
8
8
 
9
9
  QuicheFlagSaverImpl::QuicheFlagSaverImpl() {
10
- #define QUIC_FLAG(flag, value) saved_##flag##_ = flag;
10
+ #define QUIC_FLAG(flag, value) saved_##flag##_ = FLAGS_##flag;
11
11
  #include "quiche/quic/core/quic_flags_list.h"
12
12
  #undef QUIC_FLAG
13
13
  #define QUIC_PROTOCOL_FLAG(type, flag, ...) saved_##flag##_ = FLAGS_##flag;
@@ -16,7 +16,7 @@ QuicheFlagSaverImpl::QuicheFlagSaverImpl() {
16
16
  }
17
17
 
18
18
  QuicheFlagSaverImpl::~QuicheFlagSaverImpl() {
19
- #define QUIC_FLAG(flag, value) flag = saved_##flag##_;
19
+ #define QUIC_FLAG(flag, value) FLAGS_##flag = saved_##flag##_;
20
20
  #include "quiche/quic/core/quic_flags_list.h" // NOLINT
21
21
  #undef QUIC_FLAG
22
22
  #define QUIC_PROTOCOL_FLAG(type, flag, ...) FLAGS_##flag = saved_##flag##_;
@@ -51,7 +51,11 @@ const Http2StreamId kConnectionStreamId = 0;
51
51
 
52
52
  // The default value for the size of the largest frame payload, according to RFC
53
53
  // 7540 Section 6.5.2 (SETTINGS_MAX_FRAME_SIZE).
54
- const int kDefaultFramePayloadSizeLimit = 16 * 1024;
54
+ const uint32_t kDefaultFramePayloadSizeLimit = 16u * 1024u;
55
+
56
+ // The maximum value for the size of the largest frame payload, according to RFC
57
+ // 7540 Section 6.5.2 (SETTINGS_MAX_FRAME_SIZE).
58
+ const uint32_t kMaximumFramePayloadSizeLimit = 16777215u;
55
59
 
56
60
  // The default value for the initial stream and connection flow control window
57
61
  // size, according to RFC 7540 Section 6.9.2.
@@ -101,6 +101,8 @@ absl::string_view ConnectionErrorToString(ConnectionError error) {
101
101
  return "FlowControlError";
102
102
  case ConnectionError::kInvalidGoAwayLastStreamId:
103
103
  return "InvalidGoAwayLastStreamId";
104
+ case ConnectionError::kInvalidSetting:
105
+ return "InvalidSetting";
104
106
  }
105
107
  return "UnknownConnectionError";
106
108
  }
@@ -82,6 +82,8 @@ class QUICHE_EXPORT_PRIVATE Http2VisitorInterface {
82
82
  kFlowControlError,
83
83
  // The peer sent a GOAWAY with an invalid last-stream-ID field.
84
84
  kInvalidGoAwayLastStreamId,
85
+ // The peer sent an invalid SETTINGS value.
86
+ kInvalidSetting,
85
87
  };
86
88
  virtual void OnConnectionError(ConnectionError error) = 0;
87
89