Add an optional `ProofVerifier` parameter to `QuicServer` constructors. The `ProofVerifier` will then be supplied to the `QuicCryptoServerConfig`. PiperOrigin-RevId: 797797277
diff --git a/quiche/quic/masque/masque_server.cc b/quiche/quic/masque/masque_server.cc index 96d47aa..7741789 100644 --- a/quiche/quic/masque/masque_server.cc +++ b/quiche/quic/masque/masque_server.cc
@@ -19,8 +19,8 @@ MasqueServer::MasqueServer(MasqueMode masque_mode, MasqueServerBackend* masque_server_backend) - : QuicServer(CreateDefaultProofSource(), masque_server_backend, - MasqueSupportedVersions()), + : QuicServer(CreateDefaultProofSource(), /*proof_verifier=*/nullptr, + masque_server_backend, MasqueSupportedVersions()), masque_mode_(masque_mode), masque_server_backend_(masque_server_backend) {}
diff --git a/quiche/quic/moqt/tools/moqt_server.cc b/quiche/quic/moqt/tools/moqt_server.cc index 80efc0d..b919cd4 100644 --- a/quiche/quic/moqt/tools/moqt_server.cc +++ b/quiche/quic/moqt/tools/moqt_server.cc
@@ -41,6 +41,6 @@ MoqtServer::MoqtServer(std::unique_ptr<quic::ProofSource> proof_source, MoqtIncomingSessionCallback callback) : backend_(CreateWebTransportCallback(std::move(callback), &server_)), - server_(std::move(proof_source), &backend_) {} + server_(std::move(proof_source), /*proof_verifier=*/nullptr, &backend_) {} } // namespace moqt
diff --git a/quiche/quic/qbone/qbone_client_test.cc b/quiche/quic/qbone/qbone_client_test.cc index d986477..a5706fd 100644 --- a/quiche/quic/qbone/qbone_client_test.cc +++ b/quiche/quic/qbone/qbone_client_test.cc
@@ -135,7 +135,8 @@ public: explicit QboneTestServer(std::unique_ptr<ProofSource> proof_source, quic::QuicMemoryCacheBackend* response_cache) - : QuicServer(std::move(proof_source), response_cache) {} + : QuicServer(std::move(proof_source), /*proof_verifier=*/nullptr, + response_cache) {} QuicDispatcher* CreateQuicDispatcher() override { return new QuicQboneDispatcher( &config(), &crypto_config(), version_manager(),
diff --git a/quiche/quic/test_tools/quic_test_server.cc b/quiche/quic/test_tools/quic_test_server.cc index 09795f7..d5c364d 100644 --- a/quiche/quic/test_tools/quic_test_server.cc +++ b/quiche/quic/test_tools/quic_test_server.cc
@@ -162,7 +162,8 @@ QuicTestServer::QuicTestServer( std::unique_ptr<ProofSource> proof_source, QuicSimpleServerBackend* quic_simple_server_backend) - : QuicServer(std::move(proof_source), quic_simple_server_backend) {} + : QuicServer(std::move(proof_source), /*proof_verifier=*/nullptr, + quic_simple_server_backend) {} QuicTestServer::QuicTestServer( std::unique_ptr<ProofSource> proof_source, const QuicConfig& config, @@ -177,7 +178,7 @@ const ParsedQuicVersionVector& supported_versions, QuicSimpleServerBackend* quic_simple_server_backend, uint8_t expected_server_connection_id_length) - : QuicServer(std::move(proof_source), config, + : QuicServer(std::move(proof_source), /*proof_verifier=*/nullptr, config, QuicCryptoServerConfig::ConfigOptions(), supported_versions, quic_simple_server_backend, expected_server_connection_id_length) {}
diff --git a/quiche/quic/tools/quic_server.cc b/quiche/quic/tools/quic_server.cc index 1578161..1d82f62 100644 --- a/quiche/quic/tools/quic_server.cc +++ b/quiche/quic/tools/quic_server.cc
@@ -48,19 +48,23 @@ } // namespace QuicServer::QuicServer(std::unique_ptr<ProofSource> proof_source, + std::unique_ptr<ProofVerifier> proof_verifier, QuicSimpleServerBackend* quic_simple_server_backend) - : QuicServer(std::move(proof_source), quic_simple_server_backend, - AllSupportedVersions()) {} + : QuicServer(std::move(proof_source), std::move(proof_verifier), + quic_simple_server_backend, AllSupportedVersions()) {} QuicServer::QuicServer(std::unique_ptr<ProofSource> proof_source, + std::unique_ptr<ProofVerifier> proof_verifier, QuicSimpleServerBackend* quic_simple_server_backend, const ParsedQuicVersionVector& supported_versions) - : QuicServer(std::move(proof_source), QuicConfig(), - QuicCryptoServerConfig::ConfigOptions(), supported_versions, - quic_simple_server_backend, kQuicDefaultConnectionIdLength) {} + : QuicServer(std::move(proof_source), std::move(proof_verifier), + QuicConfig(), QuicCryptoServerConfig::ConfigOptions(), + supported_versions, quic_simple_server_backend, + kQuicDefaultConnectionIdLength) {} QuicServer::QuicServer( - std::unique_ptr<ProofSource> proof_source, const QuicConfig& config, + std::unique_ptr<ProofSource> proof_source, + std::unique_ptr<ProofVerifier> proof_verifier, const QuicConfig& config, const QuicCryptoServerConfig::ConfigOptions& crypto_config_options, const ParsedQuicVersionVector& supported_versions, QuicSimpleServerBackend* quic_simple_server_backend, @@ -68,7 +72,8 @@ : silent_close_(false), config_(config), crypto_config_(kSourceAddressTokenSecret, QuicRandom::GetInstance(), - std::move(proof_source), KeyExchangeSource::Default()), + std::move(proof_source), KeyExchangeSource::Default(), + std::move(proof_verifier)), crypto_config_options_(crypto_config_options), version_manager_(supported_versions), quic_simple_server_backend_(quic_simple_server_backend),
diff --git a/quiche/quic/tools/quic_server.h b/quiche/quic/tools/quic_server.h index 15d0280..56fb461 100644 --- a/quiche/quic/tools/quic_server.h +++ b/quiche/quic/tools/quic_server.h
@@ -17,6 +17,7 @@ #include "absl/strings/string_view.h" #include "quiche/quic/core/connection_id_generator.h" +#include "quiche/quic/core/crypto/proof_verifier.h" #include "quiche/quic/core/crypto/quic_crypto_server_config.h" #include "quiche/quic/core/deterministic_connection_id_generator.h" #include "quiche/quic/core/io/quic_event_loop.h" @@ -46,11 +47,14 @@ public: // `quic_simple_server_backend` must outlive the created QuicServer. QuicServer(std::unique_ptr<ProofSource> proof_source, + std::unique_ptr<ProofVerifier> proof_verifier, QuicSimpleServerBackend* quic_simple_server_backend); QuicServer(std::unique_ptr<ProofSource> proof_source, + std::unique_ptr<ProofVerifier> proof_verifier, QuicSimpleServerBackend* quic_simple_server_backend, const ParsedQuicVersionVector& supported_versions); QuicServer(std::unique_ptr<ProofSource> proof_source, + std::unique_ptr<ProofVerifier> proof_verifier, const QuicConfig& config, const QuicCryptoServerConfig::ConfigOptions& crypto_config_options, const ParsedQuicVersionVector& supported_versions,
diff --git a/quiche/quic/tools/quic_server_factory.cc b/quiche/quic/tools/quic_server_factory.cc index c044c21..3c56440 100644 --- a/quiche/quic/tools/quic_server_factory.cc +++ b/quiche/quic/tools/quic_server_factory.cc
@@ -15,7 +15,8 @@ quic::QuicSimpleServerBackend* backend, std::unique_ptr<quic::ProofSource> proof_source, const quic::ParsedQuicVersionVector& supported_versions) { - return std::make_unique<quic::QuicServer>(std::move(proof_source), backend, + return std::make_unique<quic::QuicServer>(std::move(proof_source), + /*proof_verifier=*/nullptr, backend, supported_versions); }
diff --git a/quiche/quic/tools/quic_server_test.cc b/quiche/quic/tools/quic_server_test.cc index 1abb75c..2707cb1 100644 --- a/quiche/quic/tools/quic_server_test.cc +++ b/quiche/quic/tools/quic_server_test.cc
@@ -63,7 +63,7 @@ explicit TestQuicServer(QuicEventLoopFactory* event_loop_factory, QuicMemoryCacheBackend* quic_simple_server_backend) : QuicServer(crypto_test_utils::ProofSourceForTesting(), - quic_simple_server_backend), + /*proof_verifier=*/nullptr, quic_simple_server_backend), quic_simple_server_backend_(quic_simple_server_backend), event_loop_factory_(event_loop_factory) {}
diff --git a/quiche/quic/tools/web_transport_test_server.cc b/quiche/quic/tools/web_transport_test_server.cc index 359021e..7c27156 100644 --- a/quiche/quic/tools/web_transport_test_server.cc +++ b/quiche/quic/tools/web_transport_test_server.cc
@@ -83,7 +83,8 @@ quiche::QuicheParseCommandLineFlags(usage, argc, argv); WebTransportOnlyBackend backend(ProcessRequest); - QuicServer server(quiche::CreateDefaultProofSource(), &backend); + QuicServer server(quiche::CreateDefaultProofSource(), + /*proof_verifier=*/nullptr, &backend); quic::QuicSocketAddress addr(quic::QuicIpAddress::Any6(), quiche::GetQuicheCommandLineFlag(FLAGS_port)); if (!server.CreateUDPSocketAndListen(addr)) {