@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.
- package/CMakeLists.txt +5 -2
- package/package.json +1 -1
- package/platform/net/quiche/common/platform/impl/quiche_flags_impl.h +1 -54
- package/platform/quiche_platform_impl/quic_flags_impl.h +1 -27
- package/platform/quiche_platform_impl/quiche_flag_utils_impl.h +1 -16
- package/platform/quiche_platform_impl/quiche_flags_impl.h +6 -1
- package/src/http3client.cc +14 -2
- package/src/http3client.h +10 -15
- package/src/webtransport.js +4 -1
- package/third_party/boringssl/src/.clang-format +11 -0
- package/third_party/boringssl/src/crypto/CMakeLists.txt +0 -1
- package/third_party/boringssl/src/crypto/asn1/a_strex.c +61 -95
- package/third_party/boringssl/src/crypto/asn1/asn1_par.c +31 -9
- package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +33 -19
- package/third_party/boringssl/src/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl +8 -8
- package/third_party/boringssl/src/crypto/cipher_extra/derive_key.c +4 -4
- package/third_party/boringssl/src/crypto/cipher_extra/e_des.c +1 -0
- package/third_party/boringssl/src/crypto/cipher_extra/e_null.c +1 -0
- package/third_party/boringssl/src/crypto/cipher_extra/e_rc2.c +1 -0
- package/third_party/boringssl/src/crypto/cipher_extra/e_rc4.c +2 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl +0 -197
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_test.cc +0 -9
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_tests.txt +68 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +45 -40
- package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +11 -8
- package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c +15 -106
- package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h +5 -1
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +12 -32
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/internal.h +39 -0
- package/third_party/boringssl/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +7 -9
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +2 -1
- package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +1 -0
- package/third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c +4 -4
- package/third_party/boringssl/src/crypto/x509/algorithm.c +18 -1
- package/third_party/boringssl/src/crypto/x509/x_algor.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_crl.c +3 -3
- package/third_party/boringssl/src/crypto/x509/x_exten.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_name.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_pubkey.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_req.c +2 -2
- package/third_party/boringssl/src/crypto/x509/x_sig.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_spki.c +2 -2
- package/third_party/boringssl/src/crypto/x509/x_val.c +1 -1
- package/third_party/boringssl/src/crypto/x509/x_x509.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +6 -6
- package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +6 -6
- package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +3 -3
- package/third_party/boringssl/src/crypto/x509v3/v3_info.c +3 -3
- package/third_party/boringssl/src/crypto/x509v3/v3_int.c +3 -3
- package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +1 -1
- package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +2 -2
- package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +1 -1
- package/third_party/boringssl/src/decrepit/blowfish/blowfish.c +1 -0
- package/third_party/boringssl/src/decrepit/cast/cast.c +1 -0
- package/third_party/boringssl/src/decrepit/cfb/cfb.c +1 -0
- package/third_party/boringssl/src/decrepit/xts/xts.c +2 -1
- package/third_party/boringssl/src/fuzz/CMakeLists.txt +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip.cc +57 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/0461791e54b4840c109637952eab43d9b938cab8 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/06e57a7b98a403a00822739739924b97ae6c74e9 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/078c3c1199930781466871c8dda69bec379286a4 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/082a991742f652549e4b207100ee521f474e0a99 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/091e3389548686c5038d04e3d76b9c4d30502074 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/13e484c406efe97dc9d91f8b80a27b0e597c34da +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/153d254254345b61e20e7b37637dd6f6fd71ba01 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/163605136e22f5b5302fe60d1f17837bee6b6b2b +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1a96ec99b487b93052cd860c447e6d126dcc36d4 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1cc9ad96fcee279e8589b7071c7a0ccd111098f2 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/229b8e1825512868e0e11a199ed71231dd41bb4f +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/236d820eadf7f84d70de7bb8be5f1c57a4005de2 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/24fd9742dbdee3167509db4af245ad6f8c4c1e99 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2896f8deb3c4e8bdfeab743b22c64c92316880f7 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/29b6252fe9c4d1186394b1664c421cca795b61a5 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2b4955132275314d1d377f37f93d8c1879a3519a +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2e7112ac524a7a663632397cbb41f7dfd22e92c6 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/396d197005432accf99bf0f483286e459eb24063 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3c75fe79266cf639f2180722a3f03f8fc3e25685 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3fbb104fb0eb6cae4af34d8a516998336b3a6778 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/422fa995b3fdfed572b68b292062c330d6d05272 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/428b48fc494cee828f0c27f77aef477cb2e1fd80 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4bd69e424b6fa38f9e63e58b8d0e95ac2d38d598 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4be7e1f134e1c55aeadeead515200f6f1e6254ba +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4de268400e174db2dc306f45c833cf968a6c6546 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/52d2c7efcd7da0eb7463829e05a598e36729bfae +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53cf415eb9de49fb5a0cb46e745e413a99aa0779 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53ea84c48a5792281a46eb5a9c896d54ea3f1838 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5ba93c9db0cff93f52b521d7420e43f6eda2784f +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5e5361730362736fe3e2804d8566e3c91454509b +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6654fedb1fc4b07095695b062b5af4c2f12d59ae +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6cad8b2a41194372ec897bece6512fe8331e274d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6f40330ec07e8e22f113f982b297ff7f86b8e485 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/738f291e53e97c08dae378c71ef70a60e31ae900 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7396791821e64fc9340249a4bcbd2198e9f237db +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7653595e28f23e62ea6707c99ca08c780a69335f +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/77de68daecd823babbb58edb1c8e14d7106e83bb +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7cb5c71603a787032973d6ddc9c2c34638005784 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/80a1e1ae75c1e5ef7bbde5f5877e3e5b26b3cf58 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/872ba8af52a8c1380c388bab0e20bec2e729db80 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8855f2d904cf1bbaffc54e68d98890fdc9ec14cc +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8a22f56ee86cc2d67e9610a6b0ed59f21008a341 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/935a69e9f3bfa1dd3bf058fa3e1b953e82195de6 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/951ccb49640c8f9e81fb4e0d82730321f4e15bb3 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/9af1f3ed10c7a54f6b57c344015141cc082db23b +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a0b7dd1684089c63a4aac2e4a832544df4d639d6 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22d0d3565a509a4bfedce078090d8c6a908d950 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22f1185582f66227118c8e9002a5c29728f0650 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a457945cb86ec812235f407ed70fe72fbaf694a1 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4ee44c4e8728d4924642ef8765063262e8c4601 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4fc609a6546fc0061f499f0faed9054fd388c9a +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a7c13e6fe60eee08b9aac00a095a9301ea1a9824 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a98e22a5a8c2f5dda365d55e76536931010e1560 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aca6ed86348b1176bfbe4ebf32b2d48a0aa42f9f +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aeefb82d7f5cc69168aade3b196a84d0f5c14bf2 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b37e0f6fa42840c773747c4cb608c278ab65021d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b5d4e67f0ec5b1a90100d8ad424d77aea8e16353 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b65ea16ba4dae8599ebbad7c4cb9fcd505edf485 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b95311782071c4d9182c0effe32487fc5cdbd33d +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bbcaf4d15f92bfc6d624eee967fade1a74329f30 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc26b8c794ac0adf948cbca02e88b3901824ef17 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc7b23c2c68e4ad33ecea493ff6e60d423371cd0 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bd8daf3e78d8ba3a25838053b6993edc7a21c30e +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c4d94647e646f02da1736b3179804ad6083acde9 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c869b259f9f81bec8ed24a9bc2cef35a513fb9fc +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ceee46f04a09ef5d3342ef25d9f483e861727575 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d05c069216b54f35bc7e3ee08371baee243c089a +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d18c30ba21e0d085dd983ad528f2c9001285d3d2 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d2c00146b2f2bcb4c6cecb731d2062273523d8c8 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d9bc7157a485958a5fce35ce777f551fe3f7d94c +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/defce76f0d3c3e057bb623986bacee7bbd07d1a1 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/df9b696736847e43672b7a99ca05655af8a81135 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e5b420f71cf412bd9fdebdd46245fabd1f3462e5 +1 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e7979b0e6e3e9cd64ceab99778c55205d6f92a73 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ee629f1935abc05fdc32ba314ec1f80f4bff2a17 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/f944dcd635f9801f7ac90a407fbc479964dec024 +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fadcde7d914246ca04bd56e68fd4045b1cf1c5ef +0 -0
- package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fd8be6506a9995f626eef831b9c981a80b0e3640 +0 -0
- package/third_party/boringssl/src/include/openssl/cipher.h +21 -48
- package/third_party/boringssl/src/include/openssl/ssl.h +38 -0
- package/third_party/boringssl/src/ssl/handshake_client.cc +8 -2
- package/third_party/boringssl/src/ssl/internal.h +16 -3
- package/third_party/boringssl/src/ssl/s3_both.cc +23 -1
- package/third_party/boringssl/src/ssl/ssl_lib.cc +94 -1
- package/third_party/boringssl/src/ssl/test/runner/runner.go +192 -0
- package/third_party/boringssl/src/ssl/test/test_config.cc +6 -0
- package/third_party/boringssl/src/ssl/test/test_config.h +1 -0
- package/third_party/boringssl/src/ssl/tls13_client.cc +7 -3
- package/third_party/boringssl/src/ssl/tls13_server.cc +2 -1
- package/third_party/boringssl/src/util/convert_comments.go +23 -0
- package/third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp/acvp.go +1 -1
- package/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc +32 -21
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +3 -2
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +2 -2
- package/third_party/quiche/quiche/http2/adapter/http2_protocol.h +5 -1
- package/third_party/quiche/quiche/http2/adapter/http2_util.cc +2 -0
- package/third_party/quiche/quiche/http2/adapter/http2_visitor_interface.h +2 -0
- package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +119 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +130 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -12
- package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +6 -11
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +0 -5
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.h +0 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.cc +0 -10
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.h +0 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_interface.h +0 -6
- package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc +0 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.h +0 -1
- package/third_party/quiche/quiche/quic/core/crypto/transport_parameters_test.cc +1 -3
- package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +19 -9
- package/third_party/quiche/quiche/quic/core/http/http_decoder_test.cc +6 -3
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -16
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +6 -6
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +25 -15
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +6 -5
- package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +1 -2
- package/third_party/quiche/quiche/quic/core/quic_bandwidth_test.cc +12 -12
- package/third_party/quiche/quiche/quic/core/quic_connection.cc +5 -95
- package/third_party/quiche/quiche/quic/core/quic_connection.h +0 -35
- package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +80 -196
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +29 -5
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +46 -0
- package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +17 -14
- package/third_party/quiche/quiche/quic/core/quic_flags_list.h +54 -54
- package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +8 -5
- package/third_party/quiche/quiche/quic/core/quic_framer_test.cc +8 -5
- package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +1 -0
- package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +29 -0
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +1 -5
- package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +18 -11
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +9 -28
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +0 -13
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +1 -49
- package/third_party/quiche/quiche/quic/core/quic_session.cc +0 -8
- package/third_party/quiche/quiche/quic/core/quic_session.h +0 -1
- package/third_party/quiche/quiche/quic/core/quic_stream.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.cc +5 -0
- package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.h +4 -0
- package/third_party/quiche/quiche/quic/core/quic_stream_sequencer_test.cc +12 -5
- package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +27 -12
- package/third_party/quiche/quiche/quic/core/quic_types.cc +0 -1
- package/third_party/quiche/quiche/quic/core/quic_types.h +0 -3
- package/third_party/quiche/quiche/quic/core/quic_utils.cc +0 -3
- package/third_party/quiche/quiche/quic/core/quic_utils_test.cc +0 -2
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker_test.cc +16 -12
- package/third_party/quiche/quiche/quic/core/tls_handshaker.cc +18 -3
- package/third_party/quiche/quiche/quic/qbone/platform/internet_checksum.cc +7 -2
- package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.cc +20 -12
- package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.h +10 -5
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +0 -2
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.cc +0 -8
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +0 -1
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_stream_test.cc +2 -1
- package/platform/net/quiche/common/platform/impl/quic_flags_list_add.h +0 -379
- package/platform/net/quiche/common/platform/impl/quiche_flags_impl.cc +0 -21
- package/third_party/boringssl/src/crypto/asn1/charmap.h +0 -15
- 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()),
|
|
@@ -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
|
|
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 (
|
|
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:
|
|
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":
|
|
300
|
+
"min": 0, "max": 65536, "increment": 8
|
|
301
301
|
}],
|
|
302
302
|
"aadLen": [{
|
|
303
|
-
"min": 0, "max":
|
|
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":
|
|
315
|
+
"min": 0, "max": 65536, "increment": 8
|
|
316
316
|
}],
|
|
317
317
|
"aadLen": [{
|
|
318
|
-
"min": 0, "max":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
824
|
+
"max": 524288,
|
|
825
825
|
"increment": 8
|
|
826
826
|
}],
|
|
827
827
|
"keyLen": [128, 256],
|
|
828
828
|
"macLen": [{
|
|
829
|
-
"min":
|
|
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
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
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,
|
|
1112
|
-
|
|
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;
|
package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h
CHANGED
|
@@ -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
|
|
package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h
CHANGED
|
@@ -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))
|
package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc
CHANGED
|
@@ -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
|
|
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
|
|