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_session_key.h" | 8 #include "net/quic/quic_session_key.h" |
9 #include "net/quic/test_tools/quic_test_utils.h" | 9 #include "net/quic/test_tools/quic_test_utils.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 67 |
68 TEST(QuicCryptoClientConfigTest, PreferAesGcm) { | 68 TEST(QuicCryptoClientConfigTest, PreferAesGcm) { |
69 QuicCryptoClientConfig config; | 69 QuicCryptoClientConfig config; |
70 config.SetDefaults(); | 70 config.SetDefaults(); |
71 if (config.aead.size() > 1) | 71 if (config.aead.size() > 1) |
72 EXPECT_NE(kAESG, config.aead[0]); | 72 EXPECT_NE(kAESG, config.aead[0]); |
73 config.PreferAesGcm(); | 73 config.PreferAesGcm(); |
74 EXPECT_EQ(kAESG, config.aead[0]); | 74 EXPECT_EQ(kAESG, config.aead[0]); |
75 } | 75 } |
76 | 76 |
| 77 TEST(QuicCryptoClientConfigTest, InchoateChloSecure) { |
| 78 QuicCryptoClientConfig::CachedState state; |
| 79 QuicCryptoClientConfig config; |
| 80 QuicCryptoNegotiatedParameters params; |
| 81 CryptoHandshakeMessage msg; |
| 82 QuicSessionKey server_key("www.google.com", 443, true, kPrivacyModeDisabled); |
| 83 config.FillInchoateClientHello(server_key, QuicVersionMax(), &state, |
| 84 ¶ms, &msg); |
| 85 |
| 86 QuicTag pdmd; |
| 87 EXPECT_EQ(QUIC_NO_ERROR, msg.GetUint32(kPDMD, &pdmd)); |
| 88 EXPECT_EQ(kX509, pdmd); |
| 89 } |
| 90 |
| 91 TEST(QuicCryptoClientConfigTest, InchoateChloSecureNoEcdsa) { |
| 92 QuicCryptoClientConfig::CachedState state; |
| 93 QuicCryptoClientConfig config; |
| 94 config.DisableEcdsa(); |
| 95 QuicCryptoNegotiatedParameters params; |
| 96 CryptoHandshakeMessage msg; |
| 97 QuicSessionKey server_key("www.google.com", 443, true, kPrivacyModeDisabled); |
| 98 config.FillInchoateClientHello(server_key, QuicVersionMax(), &state, |
| 99 ¶ms, &msg); |
| 100 |
| 101 QuicTag pdmd; |
| 102 EXPECT_EQ(QUIC_NO_ERROR, msg.GetUint32(kPDMD, &pdmd)); |
| 103 EXPECT_EQ(kX59R, pdmd); |
| 104 } |
| 105 |
77 TEST(QuicCryptoClientConfigTest, ProcessServerDowngradeAttack) { | 106 TEST(QuicCryptoClientConfigTest, ProcessServerDowngradeAttack) { |
78 QuicVersionVector supported_versions = QuicSupportedVersions(); | 107 QuicVersionVector supported_versions = QuicSupportedVersions(); |
79 if (supported_versions.size() == 1) { | 108 if (supported_versions.size() == 1) { |
80 // No downgrade attack is possible if the client only supports one version. | 109 // No downgrade attack is possible if the client only supports one version. |
81 return; | 110 return; |
82 } | 111 } |
83 QuicTagVector supported_version_tags; | 112 QuicTagVector supported_version_tags; |
84 for (size_t i = supported_versions.size(); i > 0; --i) { | 113 for (size_t i = supported_versions.size(); i > 0; --i) { |
85 supported_version_tags.push_back( | 114 supported_version_tags.push_back( |
86 QuicVersionToQuicTag(supported_versions[i - 1])); | 115 QuicVersionToQuicTag(supported_versions[i - 1])); |
(...skipping 27 matching lines...) Expand all Loading... |
114 QuicCryptoClientConfig::CachedState* other = config.LookupOrCreate(other_key); | 143 QuicCryptoClientConfig::CachedState* other = config.LookupOrCreate(other_key); |
115 | 144 |
116 EXPECT_EQ(state->server_config(), other->server_config()); | 145 EXPECT_EQ(state->server_config(), other->server_config()); |
117 EXPECT_EQ(state->source_address_token(), other->source_address_token()); | 146 EXPECT_EQ(state->source_address_token(), other->source_address_token()); |
118 EXPECT_EQ(state->certs(), other->certs()); | 147 EXPECT_EQ(state->certs(), other->certs()); |
119 EXPECT_EQ(1u, other->generation_counter()); | 148 EXPECT_EQ(1u, other->generation_counter()); |
120 } | 149 } |
121 | 150 |
122 } // namespace test | 151 } // namespace test |
123 } // namespace net | 152 } // namespace net |
OLD | NEW |