Remove QUIC version Q099
(I took over cl/285250934 from ianswett@ to load-balance)
This CL deprecates gfe2_reloadable_flag_quic_enable_q099 false, because it is blocked and will never be enabled.
gfe-relnote: n/a (Deprecate blocked flag)
PiperOrigin-RevId: 290839787
Change-Id: I319337542735b8df2d8bf862f0c2624adf01c343
diff --git a/quic/core/crypto/crypto_utils.cc b/quic/core/crypto/crypto_utils.cc
index dc586df..09057ff 100644
--- a/quic/core/crypto/crypto_utils.cc
+++ b/quic/core/crypto/crypto_utils.cc
@@ -128,10 +128,6 @@
const uint8_t kT050Salt[] = {0x7f, 0xf5, 0x79, 0xe5, 0xac, 0xd0, 0x72,
0x91, 0x55, 0x80, 0x30, 0x4c, 0x43, 0xa2,
0x36, 0x7c, 0x60, 0x48, 0x83, 0x10};
-// Salt to use for initial obfuscators in version Q099.
-const uint8_t kQ099Salt[] = {0xc0, 0xa2, 0xee, 0x20, 0xc7, 0xe1, 0x83,
- 0x74, 0xc8, 0xa1, 0xa0, 0xc8, 0xa5, 0x21,
- 0xb5, 0x31, 0xee, 0x04, 0x7e, 0xc8};
const uint8_t* InitialSaltForVersion(const ParsedQuicVersion& version,
size_t* out_len) {
@@ -143,9 +139,6 @@
case QUIC_VERSION_50:
*out_len = QUICHE_ARRAYSIZE(kQ050Salt);
return kQ050Salt;
- case QUIC_VERSION_99:
- *out_len = QUICHE_ARRAYSIZE(kQ099Salt);
- return kQ099Salt;
case QUIC_VERSION_RESERVED_FOR_NEGOTIATION:
// It doesn't matter what salt we use for
// QUIC_VERSION_RESERVED_FOR_NEGOTIATION, but some tests try to use a
diff --git a/quic/core/quic_crypto_server_stream_test.cc b/quic/core/quic_crypto_server_stream_test.cc
index 9d78641..8e6afaf 100644
--- a/quic/core/quic_crypto_server_stream_test.cc
+++ b/quic/core/quic_crypto_server_stream_test.cc
@@ -394,11 +394,21 @@
EXPECT_CALL(*server_session_->helper(), CanAcceptClientHello(_, _, _, _, _))
.WillOnce(testing::Return(true));
+ // The methods below use a PROTOCOL_QUIC_CRYPTO version so we pick the
+ // first one from the list of supported versions.
+ QuicTransportVersion transport_version = QUIC_VERSION_UNSUPPORTED;
+ for (const ParsedQuicVersion& version : AllSupportedVersions()) {
+ if (version.handshake_protocol == PROTOCOL_QUIC_CRYPTO) {
+ transport_version = version.transport_version;
+ break;
+ }
+ }
+ ASSERT_NE(QUIC_VERSION_UNSUPPORTED, transport_version);
+
// Create a minimal CHLO
MockClock clock;
- QuicTransportVersion version = AllSupportedTransportVersions().front();
CryptoHandshakeMessage chlo = crypto_test_utils::GenerateDefaultInchoateCHLO(
- &clock, version, &server_crypto_config_);
+ &clock, transport_version, &server_crypto_config_);
// Send in the CHLO, and check that a callback is now pending in the
// ProofSource.
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index 1462f7e..b3ec02c 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -20,6 +20,7 @@
#include "net/third_party/quiche/src/quic/core/quic_time_wait_list_manager.h"
#include "net/third_party/quiche/src/quic/core/quic_types.h"
#include "net/third_party/quiche/src/quic/core/quic_utils.h"
+#include "net/third_party/quiche/src/quic/core/quic_versions.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_expect_bug.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
@@ -942,15 +943,15 @@
VerifyVersionSupported(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO,
QuicVersionMax().transport_version));
- // Turn off version Q099.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
+ // Turn off version Q050.
+ SetQuicReloadableFlag(quic_disable_version_q050, true);
VerifyVersionNotSupported(
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99));
+ ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_50));
- // Turn on version Q099.
- SetQuicReloadableFlag(quic_enable_version_q099, true);
+ // Turn on version Q050.
+ SetQuicReloadableFlag(quic_disable_version_q050, false);
VerifyVersionSupported(
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99));
+ ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_50));
}
TEST_F(QuicDispatcherTest, RejectDeprecatedVersionsWithVersionNegotiation) {
@@ -1282,7 +1283,7 @@
}
TEST_F(QuicDispatcherTest, ProcessSmallCoalescedPacket) {
- SetQuicReloadableFlag(quic_enable_version_q099, true);
+ SetQuicReloadableFlag(quic_enable_version_t099, true);
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
@@ -1677,14 +1678,24 @@
QuicDispatcherTest::SetUp();
clock_ = QuicDispatcherPeer::GetHelper(dispatcher_.get())->GetClock();
- QuicTransportVersion version = AllSupportedTransportVersions().front();
+ // The methods below use a PROTOCOL_QUIC_CRYPTO version so we pick the
+ // first one from the list of supported versions.
+ QuicTransportVersion transport_version = QUIC_VERSION_UNSUPPORTED;
+ for (const ParsedQuicVersion& version : AllSupportedVersions()) {
+ if (version.handshake_protocol == PROTOCOL_QUIC_CRYPTO) {
+ transport_version = version.transport_version;
+ break;
+ }
+ }
+ ASSERT_NE(QUIC_VERSION_UNSUPPORTED, transport_version);
+
CryptoHandshakeMessage chlo =
- crypto_test_utils::GenerateDefaultInchoateCHLO(clock_, version,
- &crypto_config_);
+ crypto_test_utils::GenerateDefaultInchoateCHLO(
+ clock_, transport_version, &crypto_config_);
// Pass an inchoate CHLO.
crypto_test_utils::GenerateFullCHLO(
- chlo, &crypto_config_, server_addr_, client_addr_, version, clock_,
- signed_config_, QuicDispatcherPeer::GetCache(dispatcher_.get()),
+ chlo, &crypto_config_, server_addr_, client_addr_, transport_version,
+ clock_, signed_config_, QuicDispatcherPeer::GetCache(dispatcher_.get()),
&full_chlo_);
}
@@ -2100,9 +2111,8 @@
// Regression test for b/117874922.
TEST_F(BufferedPacketStoreTest, ProcessBufferedChloWithDifferentVersion) {
- // Turn off versions Q099 and T099, such that the preferred version is not
- // supported by the server.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
+ // Turn off version T099, so the preferred version is not supported by the
+ // server.
SetQuicReloadableFlag(quic_enable_version_t099, false);
uint64_t last_connection_id = kMaxNumSessionsToCreate + 5;
ParsedQuicVersionVector supported_versions = CurrentSupportedVersions();
diff --git a/quic/core/quic_trace_visitor_test.cc b/quic/core/quic_trace_visitor_test.cc
index 5e77133..504d9d5 100644
--- a/quic/core/quic_trace_visitor_test.cc
+++ b/quic/core/quic_trace_visitor_test.cc
@@ -81,7 +81,7 @@
TEST_F(QuicTraceVisitorTest, Version) {
std::string version = trace_.protocol_version();
ASSERT_EQ(4u, version.size());
- EXPECT_EQ('Q', version[0]);
+ EXPECT_NE(0, version[0]);
}
// Check that basic metadata about sent packets is recorded.
diff --git a/quic/core/quic_version_manager.cc b/quic/core/quic_version_manager.cc
index 8b25ecc..35a71ae 100644
--- a/quic/core/quic_version_manager.cc
+++ b/quic/core/quic_version_manager.cc
@@ -15,8 +15,7 @@
QuicVersionManager::QuicVersionManager(
ParsedQuicVersionVector supported_versions)
- : enable_version_q099_(GetQuicReloadableFlag(quic_enable_version_q099)),
- enable_version_t099_(GetQuicReloadableFlag(quic_enable_version_t099)),
+ : enable_version_t099_(GetQuicReloadableFlag(quic_enable_version_t099)),
disable_version_q050_(GetQuicReloadableFlag(quic_disable_version_q050)),
enable_version_t050_(GetQuicReloadableFlag(quic_enable_version_t050)),
disable_version_q049_(GetQuicReloadableFlag(quic_disable_version_q049)),
@@ -45,8 +44,7 @@
void QuicVersionManager::MaybeRefilterSupportedVersions() {
static_assert(QUICHE_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- if (enable_version_q099_ != GetQuicReloadableFlag(quic_enable_version_q099) ||
- enable_version_t099_ != GetQuicReloadableFlag(quic_enable_version_t099) ||
+ if (enable_version_t099_ != GetQuicReloadableFlag(quic_enable_version_t099) ||
disable_version_q050_ !=
GetQuicReloadableFlag(quic_disable_version_q050) ||
enable_version_t050_ != GetQuicReloadableFlag(quic_enable_version_t050) ||
@@ -58,7 +56,6 @@
GetQuicReloadableFlag(quic_disable_version_q046) ||
disable_version_q043_ !=
GetQuicReloadableFlag(quic_disable_version_q043)) {
- enable_version_q099_ = GetQuicReloadableFlag(quic_enable_version_q099);
enable_version_t099_ = GetQuicReloadableFlag(quic_enable_version_t099);
disable_version_q050_ = GetQuicReloadableFlag(quic_disable_version_q050);
enable_version_t050_ = GetQuicReloadableFlag(quic_enable_version_t050);
diff --git a/quic/core/quic_version_manager.h b/quic/core/quic_version_manager.h
index b7aff69..6dd363d 100644
--- a/quic/core/quic_version_manager.h
+++ b/quic/core/quic_version_manager.h
@@ -41,8 +41,6 @@
private:
// Cached value of reloadable flags.
- // quic_enable_version_q099 flag
- bool enable_version_q099_;
// quic_enable_version_t099 flag
bool enable_version_t099_;
// quic_disable_version_q050 flag
diff --git a/quic/core/quic_version_manager_test.cc b/quic/core/quic_version_manager_test.cc
index 7f3d83d..76d74fc 100644
--- a/quic/core/quic_version_manager_test.cc
+++ b/quic/core/quic_version_manager_test.cc
@@ -18,7 +18,6 @@
TEST_F(QuicVersionManagerTest, QuicVersionManager) {
static_assert(QUICHE_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
SetQuicReloadableFlag(quic_enable_version_t050, false);
SetQuicReloadableFlag(quic_disable_version_q050, false);
@@ -45,14 +44,6 @@
EXPECT_EQ(FilterSupportedVersions(AllSupportedVersions()),
manager.GetSupportedVersions());
- SetQuicReloadableFlag(quic_enable_version_q099, true);
- expected_parsed_versions.insert(
- expected_parsed_versions.begin(),
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99));
- EXPECT_EQ(expected_parsed_versions, manager.GetSupportedVersions());
- EXPECT_EQ(FilterSupportedVersions(AllSupportedVersions()),
- manager.GetSupportedVersions());
-
SetQuicReloadableFlag(quic_enable_version_t099, true);
expected_parsed_versions.push_back(
ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_99));
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 10d3c61..72fd964 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -188,7 +188,8 @@
if (parsed_version.handshake_protocol == PROTOCOL_TLS1_3) {
return MakeVersionLabel(0xff, 0x00, 0x00, kQuicIetfDraftVersion);
}
- return MakeVersionLabel(proto, '0', '9', '9');
+ QUIC_BUG << "Invalid ParsedQuicVersion: Q099";
+ return 0;
case QUIC_VERSION_RESERVED_FOR_NEGOTIATION:
return CreateRandomVersionLabelForNegotiation();
default:
@@ -273,14 +274,9 @@
filtered_versions.reserve(versions.size());
for (ParsedQuicVersion version : versions) {
if (version.transport_version == QUIC_VERSION_99) {
- if (version.handshake_protocol == PROTOCOL_QUIC_CRYPTO) {
- if (GetQuicReloadableFlag(quic_enable_version_q099)) {
- filtered_versions.push_back(version);
- }
- } else {
- if (GetQuicReloadableFlag(quic_enable_version_t099)) {
- filtered_versions.push_back(version);
- }
+ if (version.handshake_protocol == PROTOCOL_TLS1_3 &&
+ GetQuicReloadableFlag(quic_enable_version_t099)) {
+ filtered_versions.push_back(version);
}
} else if (version.transport_version == QUIC_VERSION_50) {
if (version.handshake_protocol == PROTOCOL_QUIC_CRYPTO) {
@@ -522,9 +518,7 @@
static_assert(QUICHE_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
if (parsed_version.transport_version == QUIC_VERSION_99) {
- if (parsed_version.handshake_protocol == PROTOCOL_QUIC_CRYPTO) {
- SetQuicReloadableFlag(quic_enable_version_q099, true);
- } else {
+ if (parsed_version.handshake_protocol == PROTOCOL_TLS1_3) {
SetQuicReloadableFlag(quic_enable_version_t099, true);
}
} else if (parsed_version.transport_version == QUIC_VERSION_50) {
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index e1165a1..5aad73b 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -155,7 +155,9 @@
case PROTOCOL_UNSUPPORTED:
return transport_version == QUIC_VERSION_UNSUPPORTED;
case PROTOCOL_QUIC_CRYPTO:
- return transport_version != QUIC_VERSION_UNSUPPORTED;
+ return transport_version != QUIC_VERSION_UNSUPPORTED &&
+ // We explicitly removed support for Q099 to reduce test load.
+ transport_version != QUIC_VERSION_99;
case PROTOCOL_TLS1_3:
// The TLS handshake is only deployable if CRYPTO frames are also used.
// We explicitly removed support for T048 and T049 to reduce test load.
@@ -314,8 +316,7 @@
static const HandshakeProtocol kSupportedHandshakeProtocols[] = {
PROTOCOL_QUIC_CRYPTO, PROTOCOL_TLS1_3};
-static const std::array<ParsedQuicVersion, 8> kSupportedVersions = {
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99),
+static const std::array<ParsedQuicVersion, 7> kSupportedVersions = {
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_50),
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_49),
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48),
diff --git a/quic/core/quic_versions_test.cc b/quic/core/quic_versions_test.cc
index cbaab95..f397d7e 100644
--- a/quic/core/quic_versions_test.cc
+++ b/quic/core/quic_versions_test.cc
@@ -42,8 +42,11 @@
// default case (i.e. all supported versions should be successfully converted
// to valid QuicVersionLabels).
for (size_t i = 0; i < QUICHE_ARRAYSIZE(kSupportedTransportVersions); ++i) {
- QuicTransportVersion version = kSupportedTransportVersions[i];
- EXPECT_LT(0u, QuicVersionToQuicVersionLabel(version));
+ QuicTransportVersion transport_version = kSupportedTransportVersions[i];
+ if (!ParsedQuicVersionIsValid(PROTOCOL_QUIC_CRYPTO, transport_version)) {
+ continue;
+ }
+ EXPECT_LT(0u, QuicVersionToQuicVersionLabel(transport_version));
}
}
@@ -83,16 +86,20 @@
QuicVersionLabelToQuicVersion(MakeQuicTag('3', '4', '0', 'Q')));
for (size_t i = 0; i < QUICHE_ARRAYSIZE(kSupportedTransportVersions); ++i) {
- QuicTransportVersion version = kSupportedTransportVersions[i];
+ QuicTransportVersion transport_version = kSupportedTransportVersions[i];
+ if (!ParsedQuicVersionIsValid(PROTOCOL_QUIC_CRYPTO, transport_version)) {
+ continue;
+ }
// Get the label from the version (we can loop over QuicVersions easily).
- QuicVersionLabel version_label = QuicVersionToQuicVersionLabel(version);
+ QuicVersionLabel version_label =
+ QuicVersionToQuicVersionLabel(transport_version);
EXPECT_LT(0u, version_label);
// Now try converting back.
QuicTransportVersion label_to_transport_version =
QuicVersionLabelToQuicVersion(version_label);
- EXPECT_EQ(version, label_to_transport_version);
+ EXPECT_EQ(transport_version, label_to_transport_version);
EXPECT_NE(QUIC_VERSION_UNSUPPORTED, label_to_transport_version);
}
}
@@ -264,7 +271,6 @@
TEST_F(QuicVersionsTest, FilterSupportedVersionsAllVersions) {
static_assert(QUICHE_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_q099, true);
SetQuicReloadableFlag(quic_enable_version_t099, true);
SetQuicReloadableFlag(quic_enable_version_t050, true);
SetQuicReloadableFlag(quic_disable_version_q050, false);
@@ -275,8 +281,6 @@
ParsedQuicVersionVector expected_parsed_versions;
expected_parsed_versions.push_back(
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99));
- expected_parsed_versions.push_back(
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_50));
expected_parsed_versions.push_back(
ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_49));
@@ -299,7 +303,6 @@
TEST_F(QuicVersionsTest, FilterSupportedVersionsNo99) {
static_assert(QUICHE_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
SetQuicReloadableFlag(quic_enable_version_t050, true);
SetQuicReloadableFlag(quic_disable_version_q050, false);
@@ -329,7 +332,6 @@
TEST_F(QuicVersionsTest, FilterSupportedVersionsNoFlags) {
static_assert(QUICHE_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
SetQuicReloadableFlag(quic_enable_version_t050, false);
SetQuicReloadableFlag(quic_disable_version_q050, false);
@@ -429,8 +431,6 @@
TEST_F(QuicVersionsTest, QuicEnableVersion) {
static_assert(QUICHE_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
- ParsedQuicVersion parsed_version_q099 =
- ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99);
ParsedQuicVersion parsed_version_t099 =
ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_99);
ParsedQuicVersion parsed_version_q050 =
@@ -440,13 +440,6 @@
{
QuicFlagSaver flag_saver;
- SetQuicReloadableFlag(quic_enable_version_q099, false);
- QuicEnableVersion(parsed_version_q099);
- EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_q099));
- }
-
- {
- QuicFlagSaver flag_saver;
SetQuicReloadableFlag(quic_enable_version_t099, false);
QuicEnableVersion(parsed_version_t099);
EXPECT_TRUE(GetQuicReloadableFlag(quic_enable_version_t099));
diff --git a/quic/quartc/quartc_multiplexer_test.cc b/quic/quartc/quartc_multiplexer_test.cc
index 2a6e838..88fbf59 100644
--- a/quic/quartc/quartc_multiplexer_test.cc
+++ b/quic/quartc/quartc_multiplexer_test.cc
@@ -202,7 +202,6 @@
quic::QuartcSessionConfig())) {
quic::test::QuicEnableDefaultEnabledVersions();
// TODO(b/134175506): Remove when IETF QUIC supports receive timestamps.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
}
diff --git a/quic/quartc/quartc_session_test.cc b/quic/quartc/quartc_session_test.cc
index b08ccb4..d2eb9eb 100644
--- a/quic/quartc/quartc_session_test.cc
+++ b/quic/quartc/quartc_session_test.cc
@@ -56,7 +56,6 @@
void Init(bool create_client_endpoint = true) {
quic::test::QuicEnableDefaultEnabledVersions();
// TODO(b/134175506): Remove when IETF QUIC supports receive timestamps.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
client_transport_ =
@@ -344,7 +343,6 @@
TEST_F(QuartcSessionTest, SendReceiveMessages) {
// TODO(b/134175506): Remove when IETF QUIC supports receive timestamps.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
CreateClientAndServerSessions(QuartcSessionConfig());
@@ -354,7 +352,6 @@
TEST_F(QuartcSessionTest, SendReceiveQueuedMessages) {
// TODO(b/134175506): Remove when IETF QUIC supports receive timestamps.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
CreateClientAndServerSessions(QuartcSessionConfig());
@@ -416,7 +413,6 @@
TEST_F(QuartcSessionTest, PreSharedKeyHandshake) {
// TODO(b/134175506): Remove when IETF QUIC supports receive timestamps.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
QuartcSessionConfig config;
@@ -563,7 +559,6 @@
TEST_F(QuartcSessionTest, LostDatagramNotifications) {
// TODO(b/134175506): Remove when IETF QUIC supports receive timestamps.
- SetQuicReloadableFlag(quic_enable_version_q099, false);
SetQuicReloadableFlag(quic_enable_version_t099, false);
// Disable tail loss probe, otherwise test maybe flaky because dropped
diff --git a/quic/test_tools/crypto_test_utils_test.cc b/quic/test_tools/crypto_test_utils_test.cc
index 62cafe6..582568c 100644
--- a/quic/test_tools/crypto_test_utils_test.cc
+++ b/quic/test_tools/crypto_test_utils_test.cc
@@ -142,7 +142,17 @@
std::string pub_hex = "#" + quiche::QuicheTextUtils::HexEncode(
public_value, sizeof(public_value));
- QuicTransportVersion version(AllSupportedTransportVersions().front());
+ // The methods below use a PROTOCOL_QUIC_CRYPTO version so we pick the
+ // first one from the list of supported versions.
+ QuicTransportVersion transport_version = QUIC_VERSION_UNSUPPORTED;
+ for (const ParsedQuicVersion& version : AllSupportedVersions()) {
+ if (version.handshake_protocol == PROTOCOL_QUIC_CRYPTO) {
+ transport_version = version.transport_version;
+ break;
+ }
+ }
+ ASSERT_NE(QUIC_VERSION_UNSUPPORTED, transport_version);
+
CryptoHandshakeMessage inchoate_chlo = crypto_test_utils::CreateCHLO(
{{"PDMD", "X509"},
{"AEAD", "AESG"},
@@ -150,18 +160,19 @@
{"COPT", "SREJ"},
{"PUBS", pub_hex},
{"NONC", nonce_hex},
- {"VER\0",
- QuicVersionLabelToString(QuicVersionToQuicVersionLabel(version))}},
+ {"VER\0", QuicVersionLabelToString(
+ QuicVersionToQuicVersionLabel(transport_version))}},
kClientHelloMinimumSize);
- crypto_test_utils::GenerateFullCHLO(
- inchoate_chlo, &crypto_config, server_addr, client_addr, version, &clock,
- signed_config, &compressed_certs_cache, &full_chlo);
+ crypto_test_utils::GenerateFullCHLO(inchoate_chlo, &crypto_config,
+ server_addr, client_addr,
+ 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);
crypto_config.ValidateClientHello(
- full_chlo, client_addr.host(), server_addr, version, &clock,
+ full_chlo, client_addr.host(), server_addr, transport_version, &clock,
signed_config, shlo_verifier.GetValidateClientHelloCallback());
}
diff --git a/quic/test_tools/quic_test_utils.cc b/quic/test_tools/quic_test_utils.cc
index b3bd2bb..e033ac5 100644
--- a/quic/test_tools/quic_test_utils.cc
+++ b/quic/test_tools/quic_test_utils.cc
@@ -894,6 +894,7 @@
if (!versions) {
versions = &supported_versions;
}
+ EXPECT_FALSE(versions->empty());
ParsedQuicVersion version = (*versions)[0];
if (QuicVersionHasLongHeaderLengths(version.transport_version) &&
version_flag) {