@fails-components/webtransport 0.0.1-rc.0 → 0.0.1-rc.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/.github/workflows/npm-publish-packages.yml +0 -0
- package/CMakeLists.txt +2 -0
- package/package.json +1 -1
- package/readme.md +0 -0
- package/src/http3serversession.h +1 -1
- package/src/webtransport.js +4 -2
- package/third_party/boringssl/src/CMakeLists.txt +9 -12
- package/third_party/boringssl/src/crypto/CMakeLists.txt +2 -3
- package/third_party/boringssl/src/crypto/asn1/time_support.c +206 -206
- package/third_party/boringssl/src/crypto/bio/socket_helper.c +124 -122
- package/third_party/boringssl/src/crypto/evp/digestsign.c +268 -231
- package/third_party/boringssl/src/crypto/evp/p_ec.c +286 -286
- package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +246 -236
- package/third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c +124 -122
- package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +3 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c +246 -230
- package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +734 -715
- package/third_party/boringssl/src/crypto/fipsmodule/bn/random.c +349 -341
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c +670 -648
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +1504 -1472
- package/third_party/boringssl/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +435 -446
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_3des_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes128_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes192_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes256_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +318 -278
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac_test.cc +268 -267
- package/third_party/boringssl/src/crypto/fipsmodule/dh/dh.c +5 -1
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +11 -17
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +15 -4
- package/third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +2 -6
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c +1164 -1180
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +3 -3
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz_test.cc +2 -2
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256.c +44 -33
- package/third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c +169 -175
- package/third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +352 -357
- package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +4 -0
- package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +14 -9
- package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +256 -235
- package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +204 -202
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +702 -695
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c +7 -2
- package/third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c +7 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +333 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator_test.cc +2410 -0
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c +359 -357
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c +325 -321
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c +510 -508
- package/third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +177 -165
- package/third_party/boringssl/src/crypto/internal.h +13 -0
- package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +884 -884
- package/third_party/boringssl/src/crypto/x509/internal.h +0 -2
- package/third_party/boringssl/src/crypto/x509/t_crl.c +148 -148
- package/third_party/boringssl/src/crypto/x509/t_req.c +249 -250
- package/third_party/boringssl/src/crypto/x509/t_x509.c +2 -3
- package/third_party/boringssl/src/crypto/x509/x509_req.c +262 -304
- package/third_party/boringssl/src/crypto/x509/x509_set.c +250 -240
- package/third_party/boringssl/src/crypto/x509/x509_test.cc +466 -4
- package/third_party/boringssl/src/crypto/x509/x509cset.c +292 -279
- package/third_party/boringssl/src/crypto/x509/x509rset.c +89 -86
- package/third_party/boringssl/src/crypto/x509/x_crl.c +37 -125
- package/third_party/boringssl/src/crypto/x509/x_req.c +114 -109
- package/third_party/boringssl/src/crypto/x509/x_x509.c +394 -394
- package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +11 -16
- package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +644 -642
- package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +130 -133
- package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +149 -144
- package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +496 -500
- package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +105 -106
- package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +126 -121
- package/third_party/boringssl/src/crypto/x509v3/v3_info.c +206 -218
- package/third_party/boringssl/src/crypto/x509v3/v3_int.c +97 -91
- package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +290 -289
- package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +161 -156
- package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +5 -3
- package/third_party/boringssl/src/include/openssl/aead.h +480 -480
- package/third_party/boringssl/src/include/openssl/asn1.h +2 -0
- package/third_party/boringssl/src/include/openssl/base.h +1 -1
- package/third_party/boringssl/src/include/openssl/service_indicator.h +96 -0
- package/third_party/boringssl/src/include/openssl/ssl.h +7 -0
- package/third_party/boringssl/src/include/openssl/x509.h +11 -33
- package/third_party/boringssl/src/include/openssl/x509v3.h +990 -1018
- package/third_party/boringssl/src/sources.cmake +4 -4
- package/third_party/boringssl/src/ssl/internal.h +10 -0
- package/third_party/boringssl/src/ssl/ssl_lib.cc +3081 -3072
- package/third_party/boringssl/src/ssl/ssl_test.cc +46 -0
- package/third_party/boringssl/src/ssl/tls13_server.cc +4 -6
- package/third_party/boringssl/src/util/bot/DEPS +14 -27
- package/third_party/boringssl/src/util/bot/UPDATING +3 -9
- package/third_party/boringssl/src/util/bot/update_clang.py +172 -172
- package/third_party/boringssl/src/util/bot/vs_toolchain.py +3 -3
- package/third_party/quiche/.bazelrc +8 -0
- package/third_party/quiche/BUILD.bazel +7 -0
- package/third_party/quiche/WHITESPACE +3 -1
- package/third_party/quiche/WORKSPACE.bazel +87 -0
- package/third_party/quiche/build/BUILD.bazel +7 -0
- package/third_party/quiche/build/source_list.bzl +1511 -0
- package/third_party/quiche/build/source_list.gni +1511 -0
- package/third_party/quiche/build/source_list.json +1511 -0
- package/third_party/quiche/build/test.bzl +26 -0
- package/third_party/quiche/build/zlib.BUILD +25 -0
- package/third_party/quiche/quiche/BUILD.bazel +270 -0
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.cc +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.h +7 -7
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.cc +39 -18
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.h +11 -10
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame_test.cc +67 -63
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.cc +13 -12
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.h +16 -8
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers_test.cc +9 -9
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_visitor_interface.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/framer_interface.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_api.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties_test.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/noop_balsa_visitor.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.cc +22 -29
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.h +18 -16
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer_test.cc +79 -32
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.h +3 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_command_line_flags.h +6 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_flags.h +8 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_logging.h +0 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_lower_case_string_test.cc +29 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_test.h +5 -7
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quic_flags_impl.h +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_bug_tracker_impl.h +3 -2
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.cc +41 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.h +33 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_expect_bug_impl.h +15 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +84 -50
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_lower_case_string_impl.h +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.cc +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h +56 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_output_impl.h +27 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_thread_impl.h +26 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.cc +1 -0
- package/third_party/quiche/quiche/common/quiche_buffer_allocator_test.cc +1 -1
- package/third_party/quiche/quiche/common/quiche_mem_slice_storage.h +2 -3
- package/third_party/quiche/quiche/common/structured_headers.cc +14 -12
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.cc +7 -5
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.h +4 -2
- package/third_party/quiche/quiche/http2/adapter/event_forwarder_test.cc +14 -9
- package/third_party/quiche/quiche/http2/adapter/header_validator.cc +43 -19
- package/third_party/quiche/quiche/http2/adapter/header_validator.h +11 -40
- package/third_party/quiche/quiche/http2/adapter/header_validator_base.h +69 -0
- package/third_party/quiche/quiche/http2/adapter/header_validator_test.cc +73 -1
- package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +66 -0
- package/third_party/quiche/quiche/http2/adapter/nghttp2_session_test.cc +8 -5
- package/third_party/quiche/quiche/http2/adapter/nghttp2_test.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.cc +22 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.h +25 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator_test.cc +523 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +186 -5
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +37 -43
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +22 -23
- package/third_party/quiche/quiche/http2/adapter/test_utils.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/window_manager_test.cc +11 -5
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.cc +13 -11
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.h +5 -4
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler.h +42 -36
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +9 -9
- package/third_party/quiche/quiche/http2/decoder/decode_http2_structures_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/http2_frame_decoder_test.cc +14 -14
- package/third_party/quiche/quiche/http2/decoder/http2_structure_decoder_test.cc +17 -17
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/data_payload_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/headers_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/ping_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/settings_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_block_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc +8 -8
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc +4 -3
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc +17 -17
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_test.cc +25 -25
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_type_decoder_test.cc +7 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_string_decoder_test.cc +6 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_transcoder_test.cc +5 -5
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_decoder_test.cc +4 -4
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_round_trip_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_constants_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_structures_test.cc +23 -22
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.h +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_parts.cc +38 -38
- package/third_party/quiche/quiche/http2/test_tools/hpack_block_collector.cc +15 -15
- package/third_party/quiche/quiche/http2/test_tools/hpack_entry_collector.cc +24 -22
- package/third_party/quiche/quiche/http2/test_tools/hpack_string_collector.cc +5 -5
- package/third_party/quiche/quiche/http2/test_tools/http2_frame_builder_test.cc +70 -89
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.h +29 -26
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.cc → random_decoder_test_base.cc} +13 -10
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.h → random_decoder_test_base.h} +15 -17
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test_test.cc → random_decoder_test_base_test.cc} +1 -1
- package/third_party/quiche/quiche/http2/test_tools/verify_macros.h +32 -0
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_simulator_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.h +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats_test.cc +2 -13
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.cc +15 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.h +7 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view_test.cc +16 -0
- package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -0
- package/third_party/quiche/quiche/quic/core/crypto/proof_source.h +2 -2
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.cc +3 -5
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.h +1 -2
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.cc +1 -1
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.h +3 -3
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.cc +2 -8
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.h +0 -1
- package/third_party/quiche/quiche/quic/core/frames/quic_crypto_frame.h +2 -0
- package/third_party/quiche/quiche/quic/core/frames/quic_frames_test.cc +2 -1
- package/third_party/quiche/quiche/quic/core/http/capsule.cc +2 -22
- package/third_party/quiche/quiche/quic/core/http/capsule.h +0 -2
- package/third_party/quiche/quiche/quic/core/http/capsule_test.cc +1 -2
- package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +148 -57
- package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -1
- package/third_party/quiche/quiche/quic/core/http/http_constants.h +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_header_list_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_headers_stream_test.cc +18 -14
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream_test.cc +3 -7
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.h +4 -0
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.cc +47 -65
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +5 -17
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +63 -54
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +34 -91
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +1 -9
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +27 -134
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.cc +0 -41
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.h +0 -9
- package/third_party/quiche/quiche/quic/core/http/spdy_utils_test.cc +0 -32
- package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +0 -1
- package/third_party/quiche/quiche/quic/core/packet_number_indexed_queue_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/qpack/qpack_header_table.cc +2 -1
- package/third_party/quiche/quiche/quic/core/qpack/qpack_send_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/quic_arena_scoped_ptr_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection.cc +68 -46
- package/third_party/quiche/quiche/quic/core/quic_connection.h +7 -6
- package/third_party/quiche/quiche/quic/core/quic_connection_context_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +45 -132
- package/third_party/quiche/quiche/quic/core/quic_constants.h +0 -7
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +11 -3
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.cc +13 -1
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.h +3 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.cc +6 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.h +8 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.cc +26 -13
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.h +5 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +55 -47
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.h +15 -10
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +34 -5
- package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +20 -11
- package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +37 -13
- package/third_party/quiche/quiche/quic/core/quic_flags_list.h +6 -10
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.cc +3 -3
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +15 -10
- package/third_party/quiche/quiche/quic/core/quic_framer.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena.h +3 -2
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +3 -11
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.h +0 -8
- package/third_party/quiche/quiche/quic/core/quic_ping_manager.cc +14 -14
- package/third_party/quiche/quiche/quic/core/quic_ping_manager_test.cc +48 -0
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager.cc +3 -18
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager_test.cc +4 -14
- package/third_party/quiche/quiche/quic/core/quic_server_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_session.cc +4 -4
- package/third_party/quiche/quiche/quic/core/quic_session.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_session_test.cc +21 -1
- package/third_party/quiche/quiche/quic/core/quic_stream.cc +4 -7
- package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +2 -4
- package/third_party/quiche/quiche/quic/core/quic_trace_visitor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_types.h +3 -8
- package/third_party/quiche/quiche/quic/core/quic_udp_socket_posix.cc +5 -4
- package/third_party/quiche/quiche/quic/core/quic_unacked_packet_map_test.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_versions_test.cc +0 -1
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.cc +13 -0
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.h +2 -0
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.cc +17 -3
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.h +3 -1
- package/third_party/quiche/quiche/quic/core/uber_received_packet_manager_test.cc +18 -10
- package/third_party/quiche/quiche/quic/masque/masque_client_bin.cc +6 -4
- package/third_party/quiche/quiche/quic/masque/masque_client_session.cc +23 -7
- package/third_party/quiche/quiche/quic/masque/masque_client_session.h +1 -1
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.cc +13 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.h +2 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_bin.cc +5 -4
- package/third_party/quiche/quiche/quic/masque/masque_server_session.cc +30 -40
- package/third_party/quiche/quiche/quic/masque/masque_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_export.h +4 -4
- package/third_party/quiche/quiche/quic/platform/api/quic_flags.h +0 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_logging.h +0 -6
- package/third_party/quiche/quiche/quic/platform/api/quic_test.h +6 -5
- package/third_party/quiche/quiche/quic/qbone/bonnet/icmp_reachable_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/mock_qbone_tunnel.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/qbone_tunnel_interface.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_controller_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/netlink_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/tcp_packet.cc +5 -4
- package/third_party/quiche/quiche/quic/qbone/qbone_client_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor.cc +2 -1
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_server_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_session_base.cc +3 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_stream.cc +4 -4
- package/third_party/quiche/quiche/quic/test_tools/quic_connection_peer.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/index.html +63 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/map.html +65 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.cc +4 -3
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +18 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/simulator_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.h +2 -2
- package/third_party/quiche/quiche/quic/{core/crypto → tools}/crypto_message_printer_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/{core/qpack → tools}/qpack_offline_decoder_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/tools/quic_client_interop_test_bin.cc +4 -3
- package/third_party/quiche/quiche/quic/tools/quic_memory_cache_backend_test.cc +3 -31
- package/third_party/quiche/quiche/quic/tools/quic_packet_printer_bin.cc +2 -2
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session_test.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_toy_client.cc +52 -38
- package/third_party/quiche/quiche/quic/tools/quic_toy_server.cc +10 -7
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.h +1 -1
- package/third_party/quiche/quiche/quic/tools/web_transport_test_visitors.h +3 -2
- package/third_party/quiche/quiche/spdy/core/array_output_buffer.h +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_encoder_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_header_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_round_trip_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_static_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.cc +8 -6
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.h +17 -6
- package/third_party/quiche/quiche/spdy/core/metadata_extension.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/metadata_extension_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_framer_test.cc +21 -17
- package/third_party/quiche/quiche/spdy/core/spdy_intrusive_list_test.cc +3 -3
- package/third_party/quiche/quiche/spdy/core/spdy_no_op_visitor.h +6 -4
- package/third_party/quiche/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_protocol_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/test_tools/mock_spdy_framer_visitor.h +5 -4
- package/third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 +0 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_mock_log.h +0 -18
- package/third_party/quiche/quiche/common/platform/api/quiche_test_helpers.h +0 -8
- package/third_party/quiche/quiche/quic/platform/api/quic_mock_log.h +0 -19
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.cc +0 -51
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.h +0 -41
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.cc +0 -168
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.h +0 -78
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
#include "quiche/http2/test_tools/frame_parts.h"
|
|
22
22
|
#include "quiche/http2/test_tools/http2_constants_test_util.h"
|
|
23
23
|
#include "quiche/http2/test_tools/http2_frame_builder.h"
|
|
24
|
-
#include "quiche/http2/test_tools/
|
|
24
|
+
#include "quiche/http2/test_tools/random_decoder_test_base.h"
|
|
25
|
+
#include "quiche/http2/test_tools/verify_macros.h"
|
|
25
26
|
#include "quiche/common/platform/api/quiche_export.h"
|
|
26
27
|
#include "quiche/common/platform/api/quiche_logging.h"
|
|
27
|
-
#include "quiche/common/platform/api/quiche_test_helpers.h"
|
|
28
28
|
|
|
29
29
|
namespace http2 {
|
|
30
30
|
namespace test {
|
|
@@ -192,8 +192,8 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
|
|
|
192
192
|
AssertionResult DecodePayloadAndValidateSeveralWays(
|
|
193
193
|
absl::string_view payload, const FrameParts& expected) {
|
|
194
194
|
auto validator = [&expected, this]() -> AssertionResult {
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
HTTP2_VERIFY_FALSE(listener_.IsInProgress());
|
|
196
|
+
HTTP2_VERIFY_EQ(1u, listener_.size());
|
|
197
197
|
return expected.VerifyEquals(*listener_.frame(0));
|
|
198
198
|
};
|
|
199
199
|
return PayloadDecoderBaseTest::DecodePayloadAndValidateSeveralWays(
|
|
@@ -221,15 +221,15 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
|
|
|
221
221
|
DecodeStatus status) -> ::testing::AssertionResult {
|
|
222
222
|
QUICHE_DVLOG(2) << "VerifyDetectsFrameSizeError validator; status="
|
|
223
223
|
<< status << "; input.Remaining=" << input.Remaining();
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
224
|
+
HTTP2_VERIFY_EQ(DecodeStatus::kDecodeError, status);
|
|
225
|
+
HTTP2_VERIFY_FALSE(listener_.IsInProgress());
|
|
226
|
+
HTTP2_VERIFY_EQ(1u, listener_.size());
|
|
227
227
|
const FrameParts* frame = listener_.frame(0);
|
|
228
|
-
|
|
229
|
-
|
|
228
|
+
HTTP2_VERIFY_EQ(header, frame->GetFrameHeader());
|
|
229
|
+
HTTP2_VERIFY_TRUE(frame->GetHasFrameSizeError());
|
|
230
230
|
// Verify did not get OnPaddingTooLong, as we should only ever produce
|
|
231
231
|
// one of these two errors for a single frame.
|
|
232
|
-
|
|
232
|
+
HTTP2_VERIFY_FALSE(frame->GetOptMissingLength());
|
|
233
233
|
return validator(input, status);
|
|
234
234
|
};
|
|
235
235
|
return PayloadDecoderBaseTest::DecodePayloadAndValidateSeveralWays(
|
|
@@ -250,10 +250,11 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
|
|
|
250
250
|
// type AND are those that affect the decoding of the payload (otherwise,
|
|
251
251
|
// the flag shouldn't be required).
|
|
252
252
|
Http2FrameType frame_type = DecoderPeer::FrameType();
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
HTTP2_VERIFY_EQ(required_flags,
|
|
254
|
+
required_flags & KnownFlagsMaskForFrameType(frame_type));
|
|
255
|
+
HTTP2_VERIFY_EQ(
|
|
256
|
+
required_flags,
|
|
257
|
+
required_flags & DecoderPeer::FlagsAffectingPayloadDecoding());
|
|
257
258
|
|
|
258
259
|
if (0 !=
|
|
259
260
|
(Http2FrameFlag::PADDED & KnownFlagsMaskForFrameType(frame_type))) {
|
|
@@ -264,7 +265,7 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
|
|
|
264
265
|
required_flags |= Http2FrameFlag::PADDED;
|
|
265
266
|
}
|
|
266
267
|
} else {
|
|
267
|
-
|
|
268
|
+
HTTP2_VERIFY_EQ(0, total_pad_length);
|
|
268
269
|
}
|
|
269
270
|
|
|
270
271
|
bool validated = false;
|
|
@@ -291,10 +292,11 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
|
|
|
291
292
|
// checking stream ids.
|
|
292
293
|
uint32_t stream_id = RandStreamId();
|
|
293
294
|
Http2FrameHeader header(fb.size(), frame_type, flags, stream_id);
|
|
294
|
-
|
|
295
|
+
HTTP2_VERIFY_SUCCESS(
|
|
296
|
+
VerifyDetectsFrameSizeError(fb.buffer(), header, nullptr));
|
|
295
297
|
validated = true;
|
|
296
298
|
}
|
|
297
|
-
|
|
299
|
+
HTTP2_VERIFY_TRUE(validated);
|
|
298
300
|
return ::testing::AssertionSuccess();
|
|
299
301
|
}
|
|
300
302
|
|
|
@@ -304,8 +306,8 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
|
|
|
304
306
|
const ApproveSize& approve_size) {
|
|
305
307
|
Http2FrameType frame_type = DecoderPeer::FrameType();
|
|
306
308
|
uint8_t known_flags = KnownFlagsMaskForFrameType(frame_type);
|
|
307
|
-
|
|
308
|
-
|
|
309
|
+
HTTP2_VERIFY_EQ(0, known_flags & Http2FrameFlag::PADDED);
|
|
310
|
+
HTTP2_VERIFY_EQ(0, required_flags & Http2FrameFlag::PADDED);
|
|
309
311
|
return VerifyDetectsMultipleFrameSizeErrors(
|
|
310
312
|
required_flags, unpadded_payload, approve_size, 0);
|
|
311
313
|
}
|
|
@@ -381,15 +383,16 @@ class QUICHE_NO_EXPORT AbstractPaddablePayloadDecoderTest
|
|
|
381
383
|
[header, expected_missing_length, &listener](
|
|
382
384
|
const DecodeBuffer&,
|
|
383
385
|
DecodeStatus status) -> ::testing::AssertionResult {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
386
|
+
HTTP2_VERIFY_EQ(DecodeStatus::kDecodeError, status);
|
|
387
|
+
HTTP2_VERIFY_FALSE(listener.IsInProgress());
|
|
388
|
+
HTTP2_VERIFY_EQ(1u, listener.size());
|
|
387
389
|
const FrameParts* frame = listener.frame(0);
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
390
|
+
HTTP2_VERIFY_EQ(header, frame->GetFrameHeader());
|
|
391
|
+
HTTP2_VERIFY_TRUE(frame->GetOptMissingLength());
|
|
392
|
+
HTTP2_VERIFY_EQ(expected_missing_length,
|
|
393
|
+
frame->GetOptMissingLength().value());
|
|
391
394
|
// Verify did not get OnFrameSizeError.
|
|
392
|
-
|
|
395
|
+
HTTP2_VERIFY_FALSE(frame->GetHasFrameSizeError());
|
|
393
396
|
return ::testing::AssertionSuccess();
|
|
394
397
|
};
|
|
395
398
|
return PayloadDecoderBaseTest::DecodePayloadAndValidateSeveralWays(
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
#include "quiche/http2/test_tools/
|
|
5
|
+
#include "quiche/http2/test_tools/random_decoder_test_base.h"
|
|
6
6
|
|
|
7
7
|
#include <stddef.h>
|
|
8
8
|
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
#include "quiche/http2/decoder/decode_buffer.h"
|
|
13
13
|
#include "quiche/http2/decoder/decode_status.h"
|
|
14
14
|
#include "quiche/http2/http2_constants.h"
|
|
15
|
+
#include "quiche/http2/test_tools/verify_macros.h"
|
|
15
16
|
#include "quiche/common/platform/api/quiche_logging.h"
|
|
16
17
|
#include "quiche/common/platform/api/quiche_test.h"
|
|
17
|
-
#include "quiche/common/platform/api/quiche_test_helpers.h"
|
|
18
18
|
|
|
19
19
|
using ::testing::AssertionResult;
|
|
20
20
|
|
|
@@ -81,7 +81,7 @@ AssertionResult RandomDecoderTest::DecodeAndValidateSeveralWays(
|
|
|
81
81
|
// Fast decode (no stopping unless decoder does so).
|
|
82
82
|
DecodeBuffer input(original->cursor(), original_remaining);
|
|
83
83
|
QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectRemaining";
|
|
84
|
-
|
|
84
|
+
HTTP2_VERIFY_SUCCESS(
|
|
85
85
|
DecodeSegmentsAndValidate(&input, SelectRemaining(), validator))
|
|
86
86
|
<< "\nFailed with SelectRemaining; input.Offset=" << input.Offset()
|
|
87
87
|
<< "; input.Remaining=" << input.Remaining();
|
|
@@ -91,19 +91,21 @@ AssertionResult RandomDecoderTest::DecodeAndValidateSeveralWays(
|
|
|
91
91
|
// Decode again, one byte at a time.
|
|
92
92
|
DecodeBuffer input(original->cursor(), original_remaining);
|
|
93
93
|
QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectOne";
|
|
94
|
-
|
|
94
|
+
HTTP2_VERIFY_SUCCESS(
|
|
95
|
+
DecodeSegmentsAndValidate(&input, SelectOne(), validator))
|
|
95
96
|
<< "\nFailed with SelectOne; input.Offset=" << input.Offset()
|
|
96
97
|
<< "; input.Remaining=" << input.Remaining();
|
|
97
|
-
|
|
98
|
+
HTTP2_VERIFY_EQ(first_consumed, input.Offset())
|
|
99
|
+
<< "\nFailed with SelectOne";
|
|
98
100
|
}
|
|
99
101
|
if (original_remaining <= 20) {
|
|
100
102
|
// Decode again, one or zero bytes at a time.
|
|
101
103
|
DecodeBuffer input(original->cursor(), original_remaining);
|
|
102
104
|
QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectZeroAndOne";
|
|
103
|
-
|
|
105
|
+
HTTP2_VERIFY_SUCCESS(DecodeSegmentsAndValidate(
|
|
104
106
|
&input, SelectZeroAndOne(return_non_zero_on_first), validator))
|
|
105
107
|
<< "\nFailed with SelectZeroAndOne";
|
|
106
|
-
|
|
108
|
+
HTTP2_VERIFY_EQ(first_consumed, input.Offset())
|
|
107
109
|
<< "\nFailed with SelectZeroAndOne; input.Offset=" << input.Offset()
|
|
108
110
|
<< "; input.Remaining=" << input.Remaining();
|
|
109
111
|
}
|
|
@@ -111,13 +113,14 @@ AssertionResult RandomDecoderTest::DecodeAndValidateSeveralWays(
|
|
|
111
113
|
// Decode again, with randomly selected segment sizes.
|
|
112
114
|
DecodeBuffer input(original->cursor(), original_remaining);
|
|
113
115
|
QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectRandom";
|
|
114
|
-
|
|
116
|
+
HTTP2_VERIFY_SUCCESS(DecodeSegmentsAndValidate(
|
|
115
117
|
&input, SelectRandom(return_non_zero_on_first), validator))
|
|
116
118
|
<< "\nFailed with SelectRandom; input.Offset=" << input.Offset()
|
|
117
119
|
<< "; input.Remaining=" << input.Remaining();
|
|
118
|
-
|
|
120
|
+
HTTP2_VERIFY_EQ(first_consumed, input.Offset())
|
|
121
|
+
<< "\nFailed with SelectRandom";
|
|
119
122
|
}
|
|
120
|
-
|
|
123
|
+
HTTP2_VERIFY_EQ(original_remaining, original->Remaining());
|
|
121
124
|
original->AdvanceCursor(first_consumed);
|
|
122
125
|
QUICHE_VLOG(1) << "DecodeAndValidateSeveralWays - SUCCESS";
|
|
123
126
|
return ::testing::AssertionSuccess();
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
#ifndef
|
|
6
|
-
#define
|
|
5
|
+
#ifndef QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_BASE_H_
|
|
6
|
+
#define QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_BASE_H_
|
|
7
7
|
|
|
8
8
|
// RandomDecoderTest is a base class for tests of decoding various kinds
|
|
9
9
|
// of HTTP/2 and HPACK encodings.
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
#include "quiche/http2/decoder/decode_buffer.h"
|
|
22
22
|
#include "quiche/http2/decoder/decode_status.h"
|
|
23
23
|
#include "quiche/http2/test_tools/http2_random.h"
|
|
24
|
+
#include "quiche/http2/test_tools/verify_macros.h"
|
|
24
25
|
#include "quiche/common/platform/api/quiche_export.h"
|
|
25
26
|
#include "quiche/common/platform/api/quiche_logging.h"
|
|
26
27
|
#include "quiche/common/platform/api/quiche_test.h"
|
|
27
|
-
#include "quiche/common/platform/api/quiche_test_helpers.h"
|
|
28
28
|
|
|
29
29
|
namespace http2 {
|
|
30
30
|
namespace test {
|
|
@@ -55,7 +55,7 @@ void CorruptEnum(T* out, Http2Random* rng) {
|
|
|
55
55
|
|
|
56
56
|
// Base class for tests of the ability to decode a sequence of bytes with
|
|
57
57
|
// various boundaries between the DecodeBuffers provided to the decoder.
|
|
58
|
-
class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
|
|
58
|
+
class QUICHE_NO_EXPORT RandomDecoderTest : public quiche::test::QuicheTest {
|
|
59
59
|
public:
|
|
60
60
|
// SelectSize returns the size of the next DecodeBuffer to be passed to the
|
|
61
61
|
// decoder. Note that RandomDecoderTest allows that size to be zero, though
|
|
@@ -75,10 +75,6 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
|
|
|
75
75
|
RandomDecoderTest();
|
|
76
76
|
|
|
77
77
|
protected:
|
|
78
|
-
// TODO(jamessynge): Modify StartDecoding, etc. to (somehow) return
|
|
79
|
-
// AssertionResult so that the VERIFY_* methods exported from
|
|
80
|
-
// gunit_helpers.h can be widely used.
|
|
81
|
-
|
|
82
78
|
// Start decoding; call allows sub-class to Reset the decoder, or deal with
|
|
83
79
|
// the first byte if that is done in a unique fashion. Might be called with
|
|
84
80
|
// a zero byte buffer.
|
|
@@ -178,8 +174,8 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
|
|
|
178
174
|
static Validator ValidateDoneAndEmpty(const Validator& wrapped) {
|
|
179
175
|
return [wrapped](const DecodeBuffer& input,
|
|
180
176
|
DecodeStatus status) -> AssertionResult {
|
|
181
|
-
|
|
182
|
-
|
|
177
|
+
HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
|
|
178
|
+
HTTP2_VERIFY_EQ(0u, input.Remaining()) << "\nOffset=" << input.Offset();
|
|
183
179
|
if (wrapped) {
|
|
184
180
|
return wrapped(input, status);
|
|
185
181
|
}
|
|
@@ -189,8 +185,8 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
|
|
|
189
185
|
static Validator ValidateDoneAndEmpty(NoArgValidator wrapped) {
|
|
190
186
|
return [wrapped](const DecodeBuffer& input,
|
|
191
187
|
DecodeStatus status) -> AssertionResult {
|
|
192
|
-
|
|
193
|
-
|
|
188
|
+
HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
|
|
189
|
+
HTTP2_VERIFY_EQ(0u, input.Remaining()) << "\nOffset=" << input.Offset();
|
|
194
190
|
if (wrapped) {
|
|
195
191
|
return wrapped();
|
|
196
192
|
}
|
|
@@ -212,8 +208,9 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
|
|
|
212
208
|
const Validator& wrapped) {
|
|
213
209
|
return [wrapped, offset](const DecodeBuffer& input,
|
|
214
210
|
DecodeStatus status) -> AssertionResult {
|
|
215
|
-
|
|
216
|
-
|
|
211
|
+
HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
|
|
212
|
+
HTTP2_VERIFY_EQ(offset, input.Offset())
|
|
213
|
+
<< "\nRemaining=" << input.Remaining();
|
|
217
214
|
if (wrapped) {
|
|
218
215
|
return wrapped(input, status);
|
|
219
216
|
}
|
|
@@ -224,8 +221,9 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
|
|
|
224
221
|
NoArgValidator wrapped) {
|
|
225
222
|
return [wrapped, offset](const DecodeBuffer& input,
|
|
226
223
|
DecodeStatus status) -> AssertionResult {
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
|
|
225
|
+
HTTP2_VERIFY_EQ(offset, input.Offset())
|
|
226
|
+
<< "\nRemaining=" << input.Remaining();
|
|
229
227
|
if (wrapped) {
|
|
230
228
|
return wrapped();
|
|
231
229
|
}
|
|
@@ -254,4 +252,4 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
|
|
|
254
252
|
} // namespace test
|
|
255
253
|
} // namespace http2
|
|
256
254
|
|
|
257
|
-
#endif //
|
|
255
|
+
#endif // QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_BASE_H_
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Copyright 2022 The Chromium Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
#ifndef QUICHE_HTTP2_TEST_TOOLS_VERIFY_MACROS_H_
|
|
6
|
+
#define QUICHE_HTTP2_TEST_TOOLS_VERIFY_MACROS_H_
|
|
7
|
+
|
|
8
|
+
#include "quiche/common/platform/api/quiche_test.h"
|
|
9
|
+
|
|
10
|
+
#define HTTP2_VERIFY_CORE(value, str) \
|
|
11
|
+
if ((value)) \
|
|
12
|
+
; \
|
|
13
|
+
else \
|
|
14
|
+
return ::testing::AssertionFailure() \
|
|
15
|
+
<< __FILE__ << ":" << __LINE__ << " " \
|
|
16
|
+
<< "Failed to verify that '" << str << "'"
|
|
17
|
+
|
|
18
|
+
#define HTTP2_VERIFY_TRUE(value) HTTP2_VERIFY_CORE(value, #value)
|
|
19
|
+
#define HTTP2_VERIFY_FALSE(value) HTTP2_VERIFY_CORE(!value, "!" #value)
|
|
20
|
+
#define HTTP2_VERIFY_SUCCESS HTTP2_VERIFY_TRUE
|
|
21
|
+
#define HTTP2_VERIFY_EQ(value1, value2) \
|
|
22
|
+
HTTP2_VERIFY_CORE((value1) == (value2), #value1 "==" #value2)
|
|
23
|
+
#define HTTP2_VERIFY_NE(value1, value2) \
|
|
24
|
+
HTTP2_VERIFY_CORE((value1) != (value2), #value1 "!=" #value2)
|
|
25
|
+
#define HTTP2_VERIFY_LE(value1, value2) \
|
|
26
|
+
HTTP2_VERIFY_CORE((value1) <= (value2), #value1 "<=" #value2)
|
|
27
|
+
#define HTTP2_VERIFY_LT(value1, value2) \
|
|
28
|
+
HTTP2_VERIFY_CORE((value1) < (value2), #value1 "<" #value2)
|
|
29
|
+
#define HTTP2_VERIFY_GT(value1, value2) \
|
|
30
|
+
HTTP2_VERIFY_CORE((value1) > (value2), #value1 ">" #value2)
|
|
31
|
+
|
|
32
|
+
#endif // QUICHE_HTTP2_TEST_TOOLS_VERIFY_MACROS_H_
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
#include "quiche/quic/platform/api/quic_flag_utils.h"
|
|
17
17
|
#include "quiche/quic/platform/api/quic_flags.h"
|
|
18
18
|
#include "quiche/quic/platform/api/quic_logging.h"
|
|
19
|
+
#include "quiche/common/platform/api/quiche_logging.h"
|
|
19
20
|
#include "quiche/common/print_elements.h"
|
|
20
21
|
|
|
21
22
|
namespace quic {
|
|
@@ -221,7 +222,7 @@ Limits<QuicByteCount> Bbr2Sender::GetCwndLimitsByMode() const {
|
|
|
221
222
|
case Bbr2Mode::PROBE_RTT:
|
|
222
223
|
return probe_rtt_.GetCwndLimits();
|
|
223
224
|
default:
|
|
224
|
-
|
|
225
|
+
QUICHE_NOTREACHED();
|
|
225
226
|
return Unlimited<QuicByteCount>();
|
|
226
227
|
}
|
|
227
228
|
}
|
|
@@ -127,7 +127,8 @@ class Bbr2SimulatorTest : public QuicTest {
|
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
void SetUp() override {
|
|
130
|
-
if (
|
|
130
|
+
if (quiche::GetQuicheCommandLineFlag(
|
|
131
|
+
FLAGS_quic_bbr2_test_regression_mode) == "regress") {
|
|
131
132
|
SendAlgorithmTestResult expected;
|
|
132
133
|
ASSERT_TRUE(LoadSendAlgorithmTestResult(&expected));
|
|
133
134
|
random_seed_ = expected.random_seed();
|
|
@@ -140,7 +141,7 @@ class Bbr2SimulatorTest : public QuicTest {
|
|
|
140
141
|
|
|
141
142
|
~Bbr2SimulatorTest() override {
|
|
142
143
|
const std::string regression_mode =
|
|
143
|
-
|
|
144
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_quic_bbr2_test_regression_mode);
|
|
144
145
|
const QuicTime::Delta simulated_duration =
|
|
145
146
|
SimulatedNow() - QuicTime::Zero();
|
|
146
147
|
if (regression_mode == "record") {
|
|
@@ -108,7 +108,8 @@ class BbrSenderTest : public QuicTest {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
void SetUp() override {
|
|
111
|
-
if (
|
|
111
|
+
if (quiche::GetQuicheCommandLineFlag(FLAGS_quic_bbr_test_regression_mode) ==
|
|
112
|
+
"regress") {
|
|
112
113
|
SendAlgorithmTestResult expected;
|
|
113
114
|
ASSERT_TRUE(LoadSendAlgorithmTestResult(&expected));
|
|
114
115
|
random_seed_ = expected.random_seed();
|
|
@@ -121,7 +122,7 @@ class BbrSenderTest : public QuicTest {
|
|
|
121
122
|
|
|
122
123
|
~BbrSenderTest() {
|
|
123
124
|
const std::string regression_mode =
|
|
124
|
-
|
|
125
|
+
quiche::GetQuicheCommandLineFlag(FLAGS_quic_bbr_test_regression_mode);
|
|
125
126
|
const QuicTime::Delta simulated_duration = clock_->Now() - QuicTime::Zero();
|
|
126
127
|
if (regression_mode == "record") {
|
|
127
128
|
RecordSendAlgorithmTestResult(random_seed_,
|
|
@@ -39,14 +39,14 @@ void RttStats::ExpireSmoothedMetrics() {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// Updates the RTT based on a new sample.
|
|
42
|
-
|
|
42
|
+
bool RttStats::UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
|
|
43
43
|
QuicTime now) {
|
|
44
44
|
if (send_delta.IsInfinite() || send_delta <= QuicTime::Delta::Zero()) {
|
|
45
45
|
QUIC_LOG_FIRST_N(WARNING, 3)
|
|
46
46
|
<< "Ignoring measured send_delta, because it's is "
|
|
47
47
|
<< "either infinite, zero, or negative. send_delta = "
|
|
48
48
|
<< send_delta.ToMicroseconds();
|
|
49
|
-
return;
|
|
49
|
+
return false;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
last_update_time_ = now;
|
|
@@ -92,6 +92,7 @@ void RttStats::UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
|
|
|
92
92
|
QUIC_DVLOG(1) << " smoothed_rtt(us):" << smoothed_rtt_.ToMicroseconds()
|
|
93
93
|
<< " mean_deviation(us):" << mean_deviation_.ToMicroseconds();
|
|
94
94
|
}
|
|
95
|
+
return true;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
void RttStats::OnConnectionMigration() {
|
|
@@ -47,7 +47,8 @@ class QUIC_EXPORT_PRIVATE RttStats {
|
|
|
47
47
|
|
|
48
48
|
// Updates the RTT from an incoming ack which is received |send_delta| after
|
|
49
49
|
// the packet is sent and the peer reports the ack being delayed |ack_delay|.
|
|
50
|
-
|
|
50
|
+
// Returns true if RTT was updated, and false if the sample was ignored.
|
|
51
|
+
bool UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
|
|
51
52
|
QuicTime now);
|
|
52
53
|
|
|
53
54
|
// Causes the smoothed_rtt to be increased to the latest_rtt if the latest_rtt
|
|
@@ -6,13 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
#include <cmath>
|
|
8
8
|
|
|
9
|
-
#include "quiche/quic/platform/api/quic_logging.h"
|
|
10
|
-
#include "quiche/quic/platform/api/quic_mock_log.h"
|
|
11
9
|
#include "quiche/quic/platform/api/quic_test.h"
|
|
12
10
|
#include "quiche/quic/test_tools/quic_test_utils.h"
|
|
13
|
-
#include "quiche/quic/test_tools/rtt_stats_peer.h"
|
|
14
11
|
|
|
15
|
-
using testing::_;
|
|
16
12
|
using testing::Message;
|
|
17
13
|
|
|
18
14
|
namespace quic {
|
|
@@ -141,9 +137,6 @@ TEST_F(RttStatsTest, ExpireSmoothedMetrics) {
|
|
|
141
137
|
}
|
|
142
138
|
|
|
143
139
|
TEST_F(RttStatsTest, UpdateRttWithBadSendDeltas) {
|
|
144
|
-
// Make sure we ignore bad RTTs.
|
|
145
|
-
CREATE_QUIC_MOCK_LOG(log);
|
|
146
|
-
|
|
147
140
|
QuicTime::Delta initial_rtt = QuicTime::Delta::FromMilliseconds(10);
|
|
148
141
|
rtt_stats_.UpdateRtt(initial_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
|
|
149
142
|
EXPECT_EQ(initial_rtt, rtt_stats_.min_rtt());
|
|
@@ -153,16 +146,12 @@ TEST_F(RttStatsTest, UpdateRttWithBadSendDeltas) {
|
|
|
153
146
|
bad_send_deltas.push_back(QuicTime::Delta::Zero());
|
|
154
147
|
bad_send_deltas.push_back(QuicTime::Delta::Infinite());
|
|
155
148
|
bad_send_deltas.push_back(QuicTime::Delta::FromMicroseconds(-1000));
|
|
156
|
-
log.StartCapturingLogs();
|
|
157
149
|
|
|
158
150
|
for (QuicTime::Delta bad_send_delta : bad_send_deltas) {
|
|
159
151
|
SCOPED_TRACE(Message() << "bad_send_delta = "
|
|
160
152
|
<< bad_send_delta.ToMicroseconds());
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
rtt_stats_.UpdateRtt(bad_send_delta, QuicTime::Delta::Zero(),
|
|
165
|
-
QuicTime::Zero());
|
|
153
|
+
EXPECT_FALSE(rtt_stats_.UpdateRtt(bad_send_delta, QuicTime::Delta::Zero(),
|
|
154
|
+
QuicTime::Zero()));
|
|
166
155
|
EXPECT_EQ(initial_rtt, rtt_stats_.min_rtt());
|
|
167
156
|
EXPECT_EQ(initial_rtt, rtt_stats_.smoothed_rtt());
|
|
168
157
|
}
|
|
@@ -79,8 +79,12 @@ PublicKeyType PublicKeyTypeFromKey(EVP_PKEY* public_key) {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
} // namespace
|
|
83
|
+
|
|
82
84
|
PublicKeyType PublicKeyTypeFromSignatureAlgorithm(
|
|
83
85
|
uint16_t signature_algorithm) {
|
|
86
|
+
// This should be kept in sync with the list in
|
|
87
|
+
// SupportedSignatureAlgorithmsForQuic().
|
|
84
88
|
switch (signature_algorithm) {
|
|
85
89
|
case SSL_SIGN_RSA_PSS_RSAE_SHA256:
|
|
86
90
|
return PublicKeyType::kRsa;
|
|
@@ -95,6 +99,17 @@ PublicKeyType PublicKeyTypeFromSignatureAlgorithm(
|
|
|
95
99
|
}
|
|
96
100
|
}
|
|
97
101
|
|
|
102
|
+
QUIC_EXPORT_PRIVATE QuicSignatureAlgorithmVector
|
|
103
|
+
SupportedSignatureAlgorithmsForQuic() {
|
|
104
|
+
// This should be kept in sync with the list in
|
|
105
|
+
// PublicKeyTypeFromSignatureAlgorithm().
|
|
106
|
+
return QuicSignatureAlgorithmVector{
|
|
107
|
+
SSL_SIGN_ED25519, SSL_SIGN_ECDSA_SECP256R1_SHA256,
|
|
108
|
+
SSL_SIGN_ECDSA_SECP384R1_SHA384, SSL_SIGN_RSA_PSS_RSAE_SHA256};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
namespace {
|
|
112
|
+
|
|
98
113
|
std::string AttributeNameToString(const CBS& oid_cbs) {
|
|
99
114
|
absl::string_view oid = CbsToStringPiece(oid_cbs);
|
|
100
115
|
|
|
@@ -43,6 +43,13 @@ enum class PublicKeyType {
|
|
|
43
43
|
kUnknown,
|
|
44
44
|
};
|
|
45
45
|
QUIC_EXPORT_PRIVATE std::string PublicKeyTypeToString(PublicKeyType type);
|
|
46
|
+
QUIC_EXPORT_PRIVATE PublicKeyType
|
|
47
|
+
PublicKeyTypeFromSignatureAlgorithm(uint16_t signature_algorithm);
|
|
48
|
+
|
|
49
|
+
// Returns the list of the signature algorithms that can be processed by
|
|
50
|
+
// CertificateView::VerifySignature() and CertificatePrivateKey::Sign().
|
|
51
|
+
QUIC_EXPORT_PRIVATE QuicSignatureAlgorithmVector
|
|
52
|
+
SupportedSignatureAlgorithmsForQuic();
|
|
46
53
|
|
|
47
54
|
// CertificateView represents a parsed version of a single X.509 certificate. As
|
|
48
55
|
// the word "view" implies, it does not take ownership of the underlying strings
|
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
#include "quiche/quic/core/crypto/certificate_view.h"
|
|
6
6
|
|
|
7
|
+
#include <limits>
|
|
7
8
|
#include <memory>
|
|
8
9
|
#include <sstream>
|
|
9
10
|
|
|
11
|
+
#include "absl/algorithm/container.h"
|
|
10
12
|
#include "absl/strings/escaping.h"
|
|
11
13
|
#include "absl/strings/string_view.h"
|
|
12
14
|
#include "openssl/base.h"
|
|
@@ -209,6 +211,20 @@ TEST(CertificateViewTest, NameAttribute) {
|
|
|
209
211
|
X509NameAttributeToString(StringPieceToCbs(invalid_oid)));
|
|
210
212
|
}
|
|
211
213
|
|
|
214
|
+
TEST(CertificateViewTest, SupportedSignatureAlgorithmsForQuicIsUpToDate) {
|
|
215
|
+
QuicSignatureAlgorithmVector supported =
|
|
216
|
+
SupportedSignatureAlgorithmsForQuic();
|
|
217
|
+
for (int i = 0; i < std::numeric_limits<uint16_t>::max(); i++) {
|
|
218
|
+
uint16_t sigalg = static_cast<uint16_t>(i);
|
|
219
|
+
PublicKeyType key_type = PublicKeyTypeFromSignatureAlgorithm(sigalg);
|
|
220
|
+
if (absl::c_find(supported, sigalg) == supported.end()) {
|
|
221
|
+
EXPECT_EQ(key_type, PublicKeyType::kUnknown);
|
|
222
|
+
} else {
|
|
223
|
+
EXPECT_NE(key_type, PublicKeyType::kUnknown);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
212
228
|
} // namespace
|
|
213
229
|
} // namespace test
|
|
214
230
|
} // namespace quic
|
|
@@ -301,6 +301,7 @@ const QuicTag kNPCO = TAG('N', 'P', 'C', 'O'); // No pacing offload.
|
|
|
301
301
|
const QuicTag kBWRE = TAG('B', 'W', 'R', 'E'); // Bandwidth resumption.
|
|
302
302
|
const QuicTag kBWMX = TAG('B', 'W', 'M', 'X'); // Max bandwidth resumption.
|
|
303
303
|
const QuicTag kBWID = TAG('B', 'W', 'I', 'D'); // Send bandwidth when idle.
|
|
304
|
+
const QuicTag kBWR1 = TAG('B', 'W', 'I', '1'); // Resume bandwidth experiment 1
|
|
304
305
|
const QuicTag kBWRS = TAG('B', 'W', 'R', 'S'); // Server bandwidth resumption.
|
|
305
306
|
const QuicTag kBWS2 = TAG('B', 'W', 'S', '2'); // Server bw resumption v2.
|
|
306
307
|
const QuicTag kBWS3 = TAG('B', 'W', 'S', '3'); // QUIC Initial CWND - Control.
|
|
@@ -173,7 +173,7 @@ class QUIC_EXPORT_PRIVATE ProofSource {
|
|
|
173
173
|
//
|
|
174
174
|
// If returns a non-empty list, ComputeTlsSignature will only be called with a
|
|
175
175
|
// algorithm in the list.
|
|
176
|
-
virtual
|
|
176
|
+
virtual QuicSignatureAlgorithmVector SupportedTlsSignatureAlgorithms()
|
|
177
177
|
const = 0;
|
|
178
178
|
|
|
179
179
|
class QUIC_EXPORT_PRIVATE DecryptCallback {
|
|
@@ -219,7 +219,7 @@ class QUIC_EXPORT_PRIVATE ProofSource {
|
|
|
219
219
|
// |in|. If decryption fails, the callback is invoked with an empty
|
|
220
220
|
// vector.
|
|
221
221
|
virtual void Decrypt(absl::string_view in,
|
|
222
|
-
std::
|
|
222
|
+
std::shared_ptr<DecryptCallback> callback) = 0;
|
|
223
223
|
};
|
|
224
224
|
|
|
225
225
|
// Returns the TicketCrypter used for encrypting and decrypting TLS
|
|
@@ -103,11 +103,9 @@ void ProofSourceX509::ComputeTlsSignature(
|
|
|
103
103
|
callback->Run(/*ok=*/!signature.empty(), signature, nullptr);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
// requested.
|
|
110
|
-
return {};
|
|
106
|
+
QuicSignatureAlgorithmVector ProofSourceX509::SupportedTlsSignatureAlgorithms()
|
|
107
|
+
const {
|
|
108
|
+
return SupportedSignatureAlgorithmsForQuic();
|
|
111
109
|
}
|
|
112
110
|
|
|
113
111
|
ProofSource::TicketCrypter* ProofSourceX509::GetTicketCrypter() {
|
|
@@ -43,8 +43,7 @@ class QUIC_EXPORT_PRIVATE ProofSourceX509 : public ProofSource {
|
|
|
43
43
|
const QuicSocketAddress& client_address, const std::string& hostname,
|
|
44
44
|
uint16_t signature_algorithm, absl::string_view in,
|
|
45
45
|
std::unique_ptr<SignatureCallback> callback) override;
|
|
46
|
-
|
|
47
|
-
const override;
|
|
46
|
+
QuicSignatureAlgorithmVector SupportedTlsSignatureAlgorithms() const override;
|
|
48
47
|
TicketCrypter* GetTicketCrypter() override;
|
|
49
48
|
|
|
50
49
|
// Adds a certificate chain to the verifier. Returns false if the chain is
|
|
@@ -706,7 +706,7 @@ void QuicCryptoServerConfig::ProcessClientHello(
|
|
|
706
706
|
params,
|
|
707
707
|
quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig> signed_config,
|
|
708
708
|
QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
|
|
709
|
-
std::
|
|
709
|
+
std::shared_ptr<ProcessClientHelloResultCallback> done_cb) const {
|
|
710
710
|
QUICHE_DCHECK(done_cb);
|
|
711
711
|
auto context = std::make_unique<ProcessClientHelloContext>(
|
|
712
712
|
validate_chlo_result, reject_only, connection_id, server_address,
|
|
@@ -335,7 +335,7 @@ class QUIC_EXPORT_PRIVATE QuicCryptoServerConfig {
|
|
|
335
335
|
quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig>
|
|
336
336
|
signed_config,
|
|
337
337
|
QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
|
|
338
|
-
std::
|
|
338
|
+
std::shared_ptr<ProcessClientHelloResultCallback> done_cb) const;
|
|
339
339
|
|
|
340
340
|
// BuildServerConfigUpdateMessage invokes |cb| with a SCUP message containing
|
|
341
341
|
// the current primary config, an up to date source-address token, and cert
|
|
@@ -587,7 +587,7 @@ class QUIC_EXPORT_PRIVATE QuicCryptoServerConfig {
|
|
|
587
587
|
quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig>
|
|
588
588
|
signed_config,
|
|
589
589
|
QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
|
|
590
|
-
std::
|
|
590
|
+
std::shared_ptr<ProcessClientHelloResultCallback> done_cb)
|
|
591
591
|
: validate_chlo_result_(validate_chlo_result),
|
|
592
592
|
reject_only_(reject_only),
|
|
593
593
|
connection_id_(connection_id),
|
|
@@ -674,7 +674,7 @@ class QUIC_EXPORT_PRIVATE QuicCryptoServerConfig {
|
|
|
674
674
|
signed_config_;
|
|
675
675
|
const QuicByteCount total_framing_overhead_;
|
|
676
676
|
const QuicByteCount chlo_packet_size_;
|
|
677
|
-
std::
|
|
677
|
+
std::shared_ptr<ProcessClientHelloResultCallback> done_cb_;
|
|
678
678
|
};
|
|
679
679
|
|
|
680
680
|
// Callback class for bridging between ProcessClientHello and
|