diff options
author | rogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-22 14:47:50 +0000 |
---|---|---|
committer | rogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-22 14:47:50 +0000 |
commit | af806e6d9e18cdd223c76db4af45af3559e75245 (patch) | |
tree | 21c7badd804adacb46558fc73d0f953f49614c54 /net/quic/crypto/crypto_server_test.cc | |
parent | c85a2af7a310db435ddb5fd849a7de56b1b49c79 (diff) | |
download | chromium_src-af806e6d9e18cdd223c76db4af45af3559e75245.zip chromium_src-af806e6d9e18cdd223c76db4af45af3559e75245.tar.gz chromium_src-af806e6d9e18cdd223c76db4af45af3559e75245.tar.bz2 |
Revert 201501 "Land Recent QUIC changes."
Broke chromium.chrome build:
../../net/quic/test_tools/crypto_test_utils.cc:400:error: 'v' may be used uninitialized in this function
> Land Recent QUIC changes.
>
> Use example.com as test hostname.
>
> Merge internal change: 46048925
>
> Only updating the time of last packet once we've done our best to verify packet validity.
>
> Merge internal change: 46044184
>
> Improve logging behavior in quic_connection.h.
>
> Merge internal change: 46033559
>
> Moving the public flags to the beginning of the header in preparation for variable length guids.
>
> Merge internal change: 45980153
>
> QUIC: change the GCM tag size to 12 bytes.
>
> Merge internal change: 45973625
>
> QUIC: add some crypto tests.
>
> The client code tries to be correct, which can hamper some tests that wish to
> send invalid requests.
>
> This CL contains some utilities for constructing arbitrary handshake messages
> and some tests that exercise the server crypto code.
>
> Merge internal change: 45972782
>
> Not allowing retransmissions to affect client timeouts. Fixes a serious
> bug where if client vanishes and we have unacked packets, the connection
> could live on forever.
>
> Merge internal change: 45935953
>
> Address wtc's comments on cl/44272981.
>
> Merge internal change: 45917323
>
> QUIC: don't CHECK when QUIC is enabled without any certificates loaded.
>
> Without certificates we don't have any key material for the source-address
> token nor server config and so QUIC isn't setup at server load time. However,
> if QUIC is enabled anyway then it'll crash.
>
> This change removes the CHECK and has every crypto handshake fail instead.
>
> (I have tests for the recent SNI change pending, into which a test for this
> will fall nicely, hopefully this afternoon. But I'm prioritising this change
> for now rather than waiting for the test CL to land.)
>
> Merge internal change: 45914344
>
> Merging cleanup changes from chromium
>
> Merge internal change: 45797529
>
> QUIC: pad client hello messages and require padding on the server.
>
> This reduces any amplification factor that an attacker might get from us. I've
> picked a minimum size of 512 bytes out of thin air.
>
> Satyam has a change pending that bumps the version to 2 so I've omitted that here.
>
> Merge internal change: 45779287
>
> QUIC: small fixes
>
> * Don't send invalid SNIs as a client.
> * Don't require an SNI as a server.
> * Don't ignore client hello processing errors.
>
> Merge internal change: 45774287
>
> QUIC - set QUIC max stream per connections based on SNI.
>
> Merge internal change: 45656436
>
> - Enabled EndToEnd's Timeout unittest.
> - Ported IsValidSNI and NormalizeHostname from internal code.
>
> R=rch@chromium.org
>
> Review URL: https://chromiumcodereview.appspot.com/15385004
TBR=rtenneti@chromium.org
Review URL: https://codereview.chromium.org/15737008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201516 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/crypto/crypto_server_test.cc')
-rw-r--r-- | net/quic/crypto/crypto_server_test.cc | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/net/quic/crypto/crypto_server_test.cc b/net/quic/crypto/crypto_server_test.cc deleted file mode 100644 index 7ab0efe..0000000 --- a/net/quic/crypto/crypto_server_test.cc +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "net/quic/crypto/crypto_server_config.h" -#include "net/quic/crypto/quic_random.h" -#include "net/quic/test_tools/crypto_test_utils.h" -#include "net/quic/test_tools/mock_clock.h" -#include "testing/gtest/include/gtest/gtest.h" - -using std::string; - -namespace net { -namespace test { - -class CryptoServerTest : public ::testing::Test { - public: - CryptoServerTest() - : rand_(QuicRandom::GetInstance()), - config_(QuicCryptoServerConfig::TESTING), - addr_(ParseIPLiteralToNumber("192.0.2.33", &ip_) ? - ip_ : IPAddressNumber(), 1) { - } - - virtual void SetUp() { - scoped_ptr<CryptoHandshakeMessage> msg( - config_.AddDefaultConfig(rand_, &clock_, 0)); - } - - void ShouldSucceed(const CryptoHandshakeMessage& message) { - string error_details; - QuicErrorCode error = config_.ProcessClientHello( - message, 1 /* GUID */, addr_, &clock_, - rand_, ¶ms_, &out_, &error_details); - - ASSERT_EQ(error, QUIC_NO_ERROR) - << "Message failed with error " << error_details << ": " - << message.DebugString(); - } - - void ShouldFailMentioning(const char* error_substr, - const CryptoHandshakeMessage& message) { - string error_details; - QuicErrorCode error = config_.ProcessClientHello( - message, 1 /* GUID */, addr_, &clock_, - rand_, ¶ms_, &out_, &error_details); - - ASSERT_NE(error, QUIC_NO_ERROR) - << "Message didn't fail: " << message.DebugString(); - - EXPECT_TRUE(error_details.find(error_substr) != string::npos) - << error_substr << " not in " << error_details; - } - - CryptoHandshakeMessage InchoateClientHello(const char* message_tag, ...) { - va_list ap; - va_start(ap, message_tag); - - CryptoHandshakeMessage message = - CryptoTestUtils::BuildMessage(message_tag, ap); - va_end(ap); - - message.SetStringPiece(kPAD, string(kClientHelloMinimumSize, '-')); - return message; - } - - private: - QuicRandom* const rand_; - MockClock clock_; - QuicCryptoServerConfig config_; - QuicCryptoNegotiatedParameters params_; - CryptoHandshakeMessage out_; - IPAddressNumber ip_; - IPEndPoint addr_; -}; - -TEST_F(CryptoServerTest, BadSNI) { - static const char* kBadSNIs[] = { - "", - "foo", - "#00", - "#ff00", - "127.0.0.1", - "ffee::1", - }; - - for (size_t i = 0; i < arraysize(kBadSNIs); i++) { - ShouldFailMentioning("SNI", InchoateClientHello( - "CHLO", - "SNI", kBadSNIs[i], - NULL)); - } -} - -TEST_F(CryptoServerTest, TooSmall) { - ShouldFailMentioning("too small", CryptoTestUtils::Message( - "CHLO", - NULL)); -} - -TEST_F(CryptoServerTest, BadSourceAddressToken) { - // Invalid source-address tokens should be ignored. - static const char* kBadSourceAddressTokens[] = { - "", - "foo", - "#0000", - "#0000000000000000000000000000000000000000", - }; - - for (size_t i = 0; i < arraysize(kBadSourceAddressTokens); i++) { - ShouldSucceed(InchoateClientHello( - "CHLO", - "STK", kBadSourceAddressTokens[i], - NULL)); - } -} - -TEST_F(CryptoServerTest, BadClientNonce) { - // Invalid nonces should be ignored. - static const char* kBadNonces[] = { - "", - "#0000", - "#0000000000000000000000000000000000000000", - }; - - for (size_t i = 0; i < arraysize(kBadNonces); i++) { - ShouldSucceed(InchoateClientHello( - "CHLO", - "NONC", kBadNonces[i], - NULL)); - } -} - -class CryptoServerTestNoConfig : public CryptoServerTest { - public: - virtual void SetUp() { - // Deliberately don't add a config so that we can test this situation. - } -}; - -TEST_F(CryptoServerTestNoConfig, DontCrash) { - ShouldFailMentioning("No config", InchoateClientHello( - "CHLO", - NULL)); -} - -} // namespace test -} // namespace net |