| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/test_tools/crypto_test_utils.h" | 5 #include "net/quic/test_tools/crypto_test_utils.h" |
| 6 | 6 |
| 7 #include "net/quic/crypto/channel_id.h" | 7 #include "net/quic/crypto/channel_id.h" |
| 8 #include "net/quic/crypto/common_cert_set.h" | 8 #include "net/quic/crypto/common_cert_set.h" |
| 9 #include "net/quic/crypto/crypto_handshake.h" | 9 #include "net/quic/crypto/crypto_handshake.h" |
| 10 #include "net/quic/crypto/quic_crypto_server_config.h" | 10 #include "net/quic/crypto/quic_crypto_server_config.h" |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 CryptoTestUtils::FakeClientOptions::FakeClientOptions() | 176 CryptoTestUtils::FakeClientOptions::FakeClientOptions() |
| 177 : dont_verify_certs(false), | 177 : dont_verify_certs(false), |
| 178 channel_id_enabled(false), | 178 channel_id_enabled(false), |
| 179 channel_id_source_async(false) { | 179 channel_id_source_async(false) { |
| 180 } | 180 } |
| 181 | 181 |
| 182 // static | 182 // static |
| 183 int CryptoTestUtils::HandshakeWithFakeServer( | 183 int CryptoTestUtils::HandshakeWithFakeServer( |
| 184 PacketSavingConnection* client_conn, | 184 PacketSavingConnection* client_conn, |
| 185 QuicCryptoClientStream* client) { | 185 QuicCryptoClientStream* client) { |
| 186 PacketSavingConnection* server_conn = | 186 PacketSavingConnection* server_conn = new PacketSavingConnection( |
| 187 new PacketSavingConnection(true, client_conn->supported_versions()); | 187 Perspective::IS_SERVER, client_conn->supported_versions()); |
| 188 TestSession server_session(server_conn, DefaultQuicConfig()); | 188 TestSession server_session(server_conn, DefaultQuicConfig()); |
| 189 server_session.InitializeSession(); | 189 server_session.InitializeSession(); |
| 190 QuicCryptoServerConfig crypto_config(QuicCryptoServerConfig::TESTING, | 190 QuicCryptoServerConfig crypto_config(QuicCryptoServerConfig::TESTING, |
| 191 QuicRandom::GetInstance()); | 191 QuicRandom::GetInstance()); |
| 192 | 192 |
| 193 SetupCryptoServerConfigForTest( | 193 SetupCryptoServerConfigForTest( |
| 194 server_session.connection()->clock(), | 194 server_session.connection()->clock(), |
| 195 server_session.connection()->random_generator(), | 195 server_session.connection()->random_generator(), |
| 196 server_session.config(), &crypto_config); | 196 server_session.config(), &crypto_config); |
| 197 | 197 |
| 198 QuicCryptoServerStream server(crypto_config, &server_session); | 198 QuicCryptoServerStream server(crypto_config, &server_session); |
| 199 server_session.SetCryptoStream(&server); | 199 server_session.SetCryptoStream(&server); |
| 200 | 200 |
| 201 // The client's handshake must have been started already. | 201 // The client's handshake must have been started already. |
| 202 CHECK_NE(0u, client_conn->encrypted_packets_.size()); | 202 CHECK_NE(0u, client_conn->encrypted_packets_.size()); |
| 203 | 203 |
| 204 CommunicateHandshakeMessages(client_conn, client, server_conn, &server); | 204 CommunicateHandshakeMessages(client_conn, client, server_conn, &server); |
| 205 | 205 |
| 206 CompareClientAndServerKeys(client, &server); | 206 CompareClientAndServerKeys(client, &server); |
| 207 | 207 |
| 208 return client->num_sent_client_hellos(); | 208 return client->num_sent_client_hellos(); |
| 209 } | 209 } |
| 210 | 210 |
| 211 // static | 211 // static |
| 212 int CryptoTestUtils::HandshakeWithFakeClient( | 212 int CryptoTestUtils::HandshakeWithFakeClient( |
| 213 PacketSavingConnection* server_conn, | 213 PacketSavingConnection* server_conn, |
| 214 QuicCryptoServerStream* server, | 214 QuicCryptoServerStream* server, |
| 215 const FakeClientOptions& options) { | 215 const FakeClientOptions& options) { |
| 216 PacketSavingConnection* client_conn = new PacketSavingConnection(false); | 216 PacketSavingConnection* client_conn = |
| 217 new PacketSavingConnection(Perspective::IS_CLIENT); |
| 217 // Advance the time, because timers do not like uninitialized times. | 218 // Advance the time, because timers do not like uninitialized times. |
| 218 client_conn->AdvanceTime(QuicTime::Delta::FromSeconds(1)); | 219 client_conn->AdvanceTime(QuicTime::Delta::FromSeconds(1)); |
| 219 TestClientSession client_session(client_conn, DefaultQuicConfig()); | 220 TestClientSession client_session(client_conn, DefaultQuicConfig()); |
| 220 QuicCryptoClientConfig crypto_config; | 221 QuicCryptoClientConfig crypto_config; |
| 221 | 222 |
| 222 if (!options.dont_verify_certs) { | 223 if (!options.dont_verify_certs) { |
| 223 // TODO(wtc): replace this with ProofVerifierForTesting() when we have | 224 // TODO(wtc): replace this with ProofVerifierForTesting() when we have |
| 224 // a working ProofSourceForTesting(). | 225 // a working ProofSourceForTesting(). |
| 225 crypto_config.SetProofVerifier(FakeProofVerifierForTesting()); | 226 crypto_config.SetProofVerifier(FakeProofVerifierForTesting()); |
| 226 } | 227 } |
| (...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 624 scoped_ptr<QuicData> bytes(CryptoFramer::ConstructHandshakeMessage(msg)); | 625 scoped_ptr<QuicData> bytes(CryptoFramer::ConstructHandshakeMessage(msg)); |
| 625 scoped_ptr<CryptoHandshakeMessage> parsed( | 626 scoped_ptr<CryptoHandshakeMessage> parsed( |
| 626 CryptoFramer::ParseMessage(bytes->AsStringPiece())); | 627 CryptoFramer::ParseMessage(bytes->AsStringPiece())); |
| 627 CHECK(parsed.get()); | 628 CHECK(parsed.get()); |
| 628 | 629 |
| 629 return *parsed; | 630 return *parsed; |
| 630 } | 631 } |
| 631 | 632 |
| 632 } // namespace test | 633 } // namespace test |
| 633 } // namespace net | 634 } // namespace net |
| OLD | NEW |