Fix CryptoTestUtilsTest. CryptoTestUtilsTest.TestGenerateFullCHLO picks the first version with PROTOCOL_QUIC_CRYPTO, but ShloVerifier.ValidateClientHelloDone() uses AllSupportedVersions().front() and assumes it is the same version. In order to fix it, this CL pumbs the version through ShloVerifier. This is prework for cl/290840338. gfe-relnote: n/a (test-only change) PiperOrigin-RevId: 297615868 Change-Id: I7fbceeac1b2ad1dda5cacea5e9e7bda891e3f311
diff --git a/quic/test_tools/crypto_test_utils_test.cc b/quic/test_tools/crypto_test_utils_test.cc index 582568c..6e64cb8 100644 --- a/quic/test_tools/crypto_test_utils_test.cc +++ b/quic/test_tools/crypto_test_utils_test.cc
@@ -24,14 +24,16 @@ QuicSocketAddress client_addr, const QuicClock* clock, QuicReferenceCountedPointer<QuicSignedServerConfig> signed_config, - QuicCompressedCertsCache* compressed_certs_cache) + QuicCompressedCertsCache* compressed_certs_cache, + ParsedQuicVersion version) : crypto_config_(crypto_config), server_addr_(server_addr), client_addr_(client_addr), clock_(clock), signed_config_(signed_config), compressed_certs_cache_(compressed_certs_cache), - params_(new QuicCryptoNegotiatedParameters) {} + params_(new QuicCryptoNegotiatedParameters), + version_(version) {} class ValidateClientHelloCallback : public ValidateClientHelloResultCallback { public: @@ -60,9 +62,9 @@ crypto_config_->ProcessClientHello( result_, /*reject_only=*/false, /*connection_id=*/TestConnectionId(1), server_addr_, client_addr_, - AllSupportedVersions().front(), AllSupportedVersions(), clock_, - QuicRandom::GetInstance(), compressed_certs_cache_, params_, - signed_config_, /*total_framing_overhead=*/50, kDefaultMaxPacketSize, + version_, AllSupportedVersions(), clock_, QuicRandom::GetInstance(), + compressed_certs_cache_, params_, signed_config_, + /*total_framing_overhead=*/50, kDefaultMaxPacketSize, GetProcessClientHelloCallback()); } @@ -103,6 +105,8 @@ QuicReferenceCountedPointer<QuicCryptoNegotiatedParameters> params_; QuicReferenceCountedPointer<ValidateClientHelloResultCallback::Result> result_; + + const ParsedQuicVersion version_; }; class CryptoTestUtilsTest : public QuicTest {}; @@ -169,8 +173,10 @@ transport_version, &clock, signed_config, &compressed_certs_cache, &full_chlo); // Verify that full_chlo can pass crypto_config's verification. - ShloVerifier shlo_verifier(&crypto_config, server_addr, client_addr, &clock, - signed_config, &compressed_certs_cache); + ShloVerifier shlo_verifier( + &crypto_config, server_addr, client_addr, &clock, signed_config, + &compressed_certs_cache, + ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, transport_version)); crypto_config.ValidateClientHello( full_chlo, client_addr.host(), server_addr, transport_version, &clock, signed_config, shlo_verifier.GetValidateClientHelloCallback());