Index: net/quic/crypto/crypto_server_test.cc |
diff --git a/net/quic/crypto/crypto_server_test.cc b/net/quic/crypto/crypto_server_test.cc |
index 6c991f2313a7a989141f04157ad9971a526c229d..157ba5b44fbfb547abb94c465616eb35b947e45b 100644 |
--- a/net/quic/crypto/crypto_server_test.cc |
+++ b/net/quic/crypto/crypto_server_test.cc |
@@ -404,32 +404,37 @@ TEST_P(CryptoServerTest, BadSNI) { |
// See http://crbug.com/514472. |
TEST_P(CryptoServerTest, DefaultCert) { |
// Check that the server replies with a default certificate when no SNI is |
- // specified. |
+ // specified. The CHLO is constructed to generate a REJ with certs, so must |
+ // not contain a valid STK, and must include PDMD. |
// clang-format off |
CryptoHandshakeMessage msg = CryptoTestUtils::Message( |
"CHLO", |
"AEAD", "AESG", |
"KEXS", "C255", |
- "SCID", scid_hex_.c_str(), |
- "#004b5453", srct_hex_.c_str(), |
"PUBS", pub_hex_.c_str(), |
"NONC", nonce_hex_.c_str(), |
"PDMD", "X509", |
- "XLCT", XlctHexString().c_str(), |
"VER\0", client_version_string_.c_str(), |
"$padding", static_cast<int>(kClientHelloMinimumSize), |
nullptr); |
// clang-format on |
ShouldSucceed(msg); |
- StringPiece cert, proof; |
- EXPECT_TRUE(out_.GetStringPiece(kCertificateTag, &cert)); |
- EXPECT_TRUE(out_.GetStringPiece(kPROF, &proof)); |
- EXPECT_NE(0u, cert.size()); |
- EXPECT_NE(0u, proof.size()); |
- const HandshakeFailureReason kRejectReasons[] = { |
- CLIENT_NONCE_INVALID_TIME_FAILURE}; |
- CheckRejectReasons(kRejectReasons, arraysize(kRejectReasons)); |
+ if (client_version_ <= QUIC_VERSION_26) { |
+ // TODO(rtenneti): Enable cert tests for QUIC_VERSION_27 and above. |
+ StringPiece cert, proof; |
+ EXPECT_TRUE(out_.GetStringPiece(kCertificateTag, &cert)); |
+ EXPECT_TRUE(out_.GetStringPiece(kPROF, &proof)); |
+ EXPECT_NE(0u, cert.size()); |
+ EXPECT_NE(0u, proof.size()); |
+ const HandshakeFailureReason kRejectReasons[] = { |
+ CLIENT_NONCE_INVALID_TIME_FAILURE}; |
+ CheckRejectReasons(kRejectReasons, arraysize(kRejectReasons)); |
+ } else { |
+ const HandshakeFailureReason kRejectReasons[] = { |
+ SERVER_CONFIG_INCHOATE_HELLO_FAILURE}; |
+ CheckRejectReasons(kRejectReasons, arraysize(kRejectReasons)); |
+ } |
} |
TEST_P(CryptoServerTest, TooSmall) { |
@@ -606,14 +611,23 @@ TEST_P(CryptoServerTest, CorruptMultipleTags) { |
// clang-format on |
ShouldSucceed(msg); |
CheckRejectTag(); |
- const HandshakeFailureReason kRejectReasons[] = { |
- SOURCE_ADDRESS_TOKEN_DECRYPTION_FAILURE, CLIENT_NONCE_INVALID_FAILURE, |
- SERVER_NONCE_DECRYPTION_FAILURE, |
+ |
+ if (client_version_ <= QUIC_VERSION_26) { |
+ const HandshakeFailureReason kRejectReasons[] = { |
+ SOURCE_ADDRESS_TOKEN_DECRYPTION_FAILURE, CLIENT_NONCE_INVALID_FAILURE, |
+ SERVER_NONCE_DECRYPTION_FAILURE}; |
+ CheckRejectReasons(kRejectReasons, arraysize(kRejectReasons)); |
+ } else { |
+ const HandshakeFailureReason kRejectReasons[] = { |
+ SOURCE_ADDRESS_TOKEN_DECRYPTION_FAILURE, CLIENT_NONCE_INVALID_FAILURE}; |
+ CheckRejectReasons(kRejectReasons, arraysize(kRejectReasons)); |
}; |
- CheckRejectReasons(kRejectReasons, arraysize(kRejectReasons)); |
} |
TEST_P(CryptoServerTest, ReplayProtection) { |
+ if (client_version_ > QUIC_VERSION_26) { |
+ return; |
+ } |
// This tests that disabling replay protection works. |
// clang-format off |
CryptoHandshakeMessage msg = CryptoTestUtils::Message( |