| 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/core/quic_crypto_client_stream.h" | 5 #include "net/quic/core/quic_crypto_client_stream.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "net/quic/core/crypto/aes_128_gcm_12_encrypter.h" | 9 #include "net/quic/core/crypto/aes_128_gcm_12_encrypter.h" |
| 10 #include "net/quic/core/crypto/quic_decrypter.h" | 10 #include "net/quic/core/crypto/quic_decrypter.h" |
| 11 #include "net/quic/core/crypto/quic_encrypter.h" | 11 #include "net/quic/core/crypto/quic_encrypter.h" |
| 12 #include "net/quic/core/quic_packets.h" | 12 #include "net/quic/core/quic_packets.h" |
| 13 #include "net/quic/core/quic_server_id.h" | 13 #include "net/quic/core/quic_server_id.h" |
| 14 #include "net/quic/core/quic_utils.h" | 14 #include "net/quic/core/quic_utils.h" |
| 15 #include "net/quic/platform/api/quic_flags.h" | 15 #include "net/quic/platform/api/quic_flags.h" |
| 16 #include "net/quic/platform/api/quic_test.h" |
| 16 #include "net/quic/test_tools/crypto_test_utils.h" | 17 #include "net/quic/test_tools/crypto_test_utils.h" |
| 17 #include "net/quic/test_tools/quic_stream_peer.h" | 18 #include "net/quic/test_tools/quic_stream_peer.h" |
| 18 #include "net/quic/test_tools/quic_stream_sequencer_peer.h" | 19 #include "net/quic/test_tools/quic_stream_sequencer_peer.h" |
| 19 #include "net/quic/test_tools/quic_test_utils.h" | 20 #include "net/quic/test_tools/quic_test_utils.h" |
| 20 #include "net/quic/test_tools/simple_quic_framer.h" | 21 #include "net/quic/test_tools/simple_quic_framer.h" |
| 21 #include "testing/gmock/include/gmock/gmock.h" | |
| 22 #include "testing/gtest/include/gtest/gtest.h" | |
| 23 | 22 |
| 24 using std::string; | 23 using std::string; |
| 25 | 24 |
| 26 using testing::_; | 25 using testing::_; |
| 27 | 26 |
| 28 namespace net { | 27 namespace net { |
| 29 namespace test { | 28 namespace test { |
| 30 namespace { | 29 namespace { |
| 31 | 30 |
| 32 const char kServerHostname[] = "test.example.com"; | 31 const char kServerHostname[] = "test.example.com"; |
| 33 const uint16_t kServerPort = 443; | 32 const uint16_t kServerPort = 443; |
| 34 | 33 |
| 35 class QuicCryptoClientStreamTest : public ::testing::Test { | 34 class QuicCryptoClientStreamTest : public QuicTest { |
| 36 public: | 35 public: |
| 37 QuicCryptoClientStreamTest() | 36 QuicCryptoClientStreamTest() |
| 38 : server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED), | 37 : server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED), |
| 39 crypto_config_(crypto_test_utils::ProofVerifierForTesting()) { | 38 crypto_config_(crypto_test_utils::ProofVerifierForTesting()) { |
| 40 CreateConnection(); | 39 CreateConnection(); |
| 41 } | 40 } |
| 42 | 41 |
| 43 void CreateConnection() { | 42 void CreateConnection() { |
| 44 connection_ = new PacketSavingConnection(&client_helper_, &alarm_factory_, | 43 connection_ = new PacketSavingConnection(&client_helper_, &alarm_factory_, |
| 45 Perspective::IS_CLIENT); | 44 Perspective::IS_CLIENT); |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 crypto_config_.tb_key_params = QuicTagVector{kTB10}; | 344 crypto_config_.tb_key_params = QuicTagVector{kTB10}; |
| 346 server_id_ = QuicServerId(kServerHostname, kServerPort, PRIVACY_MODE_ENABLED); | 345 server_id_ = QuicServerId(kServerHostname, kServerPort, PRIVACY_MODE_ENABLED); |
| 347 CreateConnection(); | 346 CreateConnection(); |
| 348 | 347 |
| 349 CompleteCryptoHandshake(); | 348 CompleteCryptoHandshake(); |
| 350 EXPECT_TRUE(stream()->encryption_established()); | 349 EXPECT_TRUE(stream()->encryption_established()); |
| 351 EXPECT_TRUE(stream()->handshake_confirmed()); | 350 EXPECT_TRUE(stream()->handshake_confirmed()); |
| 352 EXPECT_EQ(0u, stream()->crypto_negotiated_params().token_binding_key_param); | 351 EXPECT_EQ(0u, stream()->crypto_negotiated_params().token_binding_key_param); |
| 353 } | 352 } |
| 354 | 353 |
| 355 class QuicCryptoClientStreamStatelessTest : public ::testing::Test { | 354 class QuicCryptoClientStreamStatelessTest : public QuicTest { |
| 356 public: | 355 public: |
| 357 QuicCryptoClientStreamStatelessTest() | 356 QuicCryptoClientStreamStatelessTest() |
| 358 : client_crypto_config_(crypto_test_utils::ProofVerifierForTesting()), | 357 : client_crypto_config_(crypto_test_utils::ProofVerifierForTesting()), |
| 359 server_crypto_config_(QuicCryptoServerConfig::TESTING, | 358 server_crypto_config_(QuicCryptoServerConfig::TESTING, |
| 360 QuicRandom::GetInstance(), | 359 QuicRandom::GetInstance(), |
| 361 crypto_test_utils::ProofSourceForTesting()), | 360 crypto_test_utils::ProofSourceForTesting()), |
| 362 server_compressed_certs_cache_( | 361 server_compressed_certs_cache_( |
| 363 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize), | 362 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize), |
| 364 server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED) { | 363 server_id_(kServerHostname, kServerPort, PRIVACY_MODE_DISABLED) { |
| 365 TestQuicSpdyClientSession* client_session = nullptr; | 364 TestQuicSpdyClientSession* client_session = nullptr; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 394 &server_connection_, &server_session); | 393 &server_connection_, &server_session); |
| 395 CHECK(server_session); | 394 CHECK(server_session); |
| 396 server_session_.reset(server_session); | 395 server_session_.reset(server_session); |
| 397 crypto_test_utils::FakeServerOptions options; | 396 crypto_test_utils::FakeServerOptions options; |
| 398 crypto_test_utils::SetupCryptoServerConfigForTest( | 397 crypto_test_utils::SetupCryptoServerConfigForTest( |
| 399 server_connection_->clock(), server_connection_->random_generator(), | 398 server_connection_->clock(), server_connection_->random_generator(), |
| 400 &server_crypto_config_, options); | 399 &server_crypto_config_, options); |
| 401 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support = true; | 400 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support = true; |
| 402 } | 401 } |
| 403 | 402 |
| 404 QuicFlagSaver flags_; // Save/restore all QUIC flag values. | |
| 405 | |
| 406 MockQuicConnectionHelper helper_; | 403 MockQuicConnectionHelper helper_; |
| 407 MockAlarmFactory alarm_factory_; | 404 MockAlarmFactory alarm_factory_; |
| 408 | 405 |
| 409 // Client crypto stream state | 406 // Client crypto stream state |
| 410 PacketSavingConnection* client_connection_; | 407 PacketSavingConnection* client_connection_; |
| 411 std::unique_ptr<TestQuicSpdyClientSession> client_session_; | 408 std::unique_ptr<TestQuicSpdyClientSession> client_session_; |
| 412 QuicCryptoClientConfig client_crypto_config_; | 409 QuicCryptoClientConfig client_crypto_config_; |
| 413 | 410 |
| 414 // Server crypto stream state | 411 // Server crypto stream state |
| 415 PacketSavingConnection* server_connection_; | 412 PacketSavingConnection* server_connection_; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 client_state->GetNextServerDesignatedConnectionId(); | 444 client_state->GetNextServerDesignatedConnectionId(); |
| 448 QuicConnectionId expected_id = | 445 QuicConnectionId expected_id = |
| 449 server_session_->connection()->random_generator()->RandUint64(); | 446 server_session_->connection()->random_generator()->RandUint64(); |
| 450 EXPECT_EQ(GetPeerInMemoryConnectionId(expected_id), server_designated_id); | 447 EXPECT_EQ(GetPeerInMemoryConnectionId(expected_id), server_designated_id); |
| 451 EXPECT_FALSE(client_state->has_server_designated_connection_id()); | 448 EXPECT_FALSE(client_state->has_server_designated_connection_id()); |
| 452 } | 449 } |
| 453 | 450 |
| 454 } // namespace | 451 } // namespace |
| 455 } // namespace test | 452 } // namespace test |
| 456 } // namespace net | 453 } // namespace net |
| OLD | NEW |