| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/crypto/quic_crypto_client_config.h" | 5 #include "net/quic/crypto/quic_crypto_client_config.h" |
| 6 | 6 |
| 7 #include "net/quic/crypto/proof_verifier.h" | 7 #include "net/quic/crypto/proof_verifier.h" |
| 8 #include "net/quic/quic_server_id.h" | 8 #include "net/quic/quic_server_id.h" |
| 9 #include "net/quic/test_tools/mock_random.h" | 9 #include "net/quic/test_tools/mock_random.h" |
| 10 #include "net/quic/test_tools/quic_test_utils.h" | 10 #include "net/quic/test_tools/quic_test_utils.h" |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 QuicTag pdmd; | 103 QuicTag pdmd; |
| 104 EXPECT_EQ(QUIC_NO_ERROR, msg.GetUint32(kPDMD, &pdmd)); | 104 EXPECT_EQ(QUIC_NO_ERROR, msg.GetUint32(kPDMD, &pdmd)); |
| 105 EXPECT_EQ(kX59R, pdmd); | 105 EXPECT_EQ(kX59R, pdmd); |
| 106 } | 106 } |
| 107 | 107 |
| 108 TEST(QuicCryptoClientConfigTest, FillClientHello) { | 108 TEST(QuicCryptoClientConfigTest, FillClientHello) { |
| 109 QuicCryptoClientConfig::CachedState state; | 109 QuicCryptoClientConfig::CachedState state; |
| 110 QuicCryptoClientConfig config; | 110 QuicCryptoClientConfig config; |
| 111 QuicCryptoNegotiatedParameters params; | 111 QuicCryptoNegotiatedParameters params; |
| 112 QuicConnectionId kConnectionId = 1234; | 112 QuicConnectionId kConnectionId = 1234; |
| 113 uint32 kInitialFlowControlWindow = 5678; | |
| 114 string error_details; | 113 string error_details; |
| 115 MockRandom rand; | 114 MockRandom rand; |
| 116 CryptoHandshakeMessage chlo; | 115 CryptoHandshakeMessage chlo; |
| 117 QuicServerId server_id("www.google.com", 80, false, PRIVACY_MODE_DISABLED); | 116 QuicServerId server_id("www.google.com", 80, false, PRIVACY_MODE_DISABLED); |
| 118 config.FillClientHello(server_id, | 117 config.FillClientHello(server_id, |
| 119 kConnectionId, | 118 kConnectionId, |
| 120 QuicVersionMax(), | 119 QuicVersionMax(), |
| 121 kInitialFlowControlWindow, | |
| 122 &state, | 120 &state, |
| 123 QuicWallTime::Zero(), | 121 QuicWallTime::Zero(), |
| 124 &rand, | 122 &rand, |
| 125 NULL, // channel_id_key | 123 NULL, // channel_id_key |
| 126 ¶ms, | 124 ¶ms, |
| 127 &chlo, | 125 &chlo, |
| 128 &error_details); | 126 &error_details); |
| 129 | 127 |
| 130 // Verify that certain QuicTags have been set correctly in the CHLO. | 128 // Verify that certain QuicTags have been set correctly in the CHLO. |
| 131 QuicTag cver; | 129 QuicTag cver; |
| 132 EXPECT_EQ(QUIC_NO_ERROR, chlo.GetUint32(kVER, &cver)); | 130 EXPECT_EQ(QUIC_NO_ERROR, chlo.GetUint32(kVER, &cver)); |
| 133 EXPECT_EQ(QuicVersionToQuicTag(QuicVersionMax()), cver); | 131 EXPECT_EQ(QuicVersionToQuicTag(QuicVersionMax()), cver); |
| 134 | |
| 135 QuicTag ifcw; | |
| 136 EXPECT_EQ(QUIC_NO_ERROR, chlo.GetUint32(kIFCW, &ifcw)); | |
| 137 EXPECT_EQ(kInitialFlowControlWindow, ifcw); | |
| 138 } | 132 } |
| 139 | 133 |
| 140 TEST(QuicCryptoClientConfigTest, ProcessServerDowngradeAttack) { | 134 TEST(QuicCryptoClientConfigTest, ProcessServerDowngradeAttack) { |
| 141 QuicVersionVector supported_versions = QuicSupportedVersions(); | 135 QuicVersionVector supported_versions = QuicSupportedVersions(); |
| 142 if (supported_versions.size() == 1) { | 136 if (supported_versions.size() == 1) { |
| 143 // No downgrade attack is possible if the client only supports one version. | 137 // No downgrade attack is possible if the client only supports one version. |
| 144 return; | 138 return; |
| 145 } | 139 } |
| 146 QuicTagVector supported_version_tags; | 140 QuicTagVector supported_version_tags; |
| 147 for (size_t i = supported_versions.size(); i > 0; --i) { | 141 for (size_t i = supported_versions.size(); i > 0; --i) { |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 EXPECT_EQ(state, cleared_cache); | 250 EXPECT_EQ(state, cleared_cache); |
| 257 EXPECT_FALSE(cleared_cache->proof_valid()); | 251 EXPECT_FALSE(cleared_cache->proof_valid()); |
| 258 EXPECT_TRUE(cleared_cache->server_config().empty()); | 252 EXPECT_TRUE(cleared_cache->server_config().empty()); |
| 259 EXPECT_TRUE(cleared_cache->certs().empty()); | 253 EXPECT_TRUE(cleared_cache->certs().empty()); |
| 260 EXPECT_TRUE(cleared_cache->signature().empty()); | 254 EXPECT_TRUE(cleared_cache->signature().empty()); |
| 261 EXPECT_EQ(2u, cleared_cache->generation_counter()); | 255 EXPECT_EQ(2u, cleared_cache->generation_counter()); |
| 262 } | 256 } |
| 263 | 257 |
| 264 } // namespace test | 258 } // namespace test |
| 265 } // namespace net | 259 } // namespace net |
| OLD | NEW |