Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(660)

Side by Side Diff: net/quic/crypto/crypto_server_test.cc

Issue 1535363003: Switch to standard integer types in net/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: stddef Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/crypto/crypto_server_config_protobuf.h ('k') | net/quic/crypto/crypto_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 <ostream> 5 #include <ostream>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/basictypes.h"
9 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
10 #include "crypto/secure_hash.h" 9 #include "crypto/secure_hash.h"
11 #include "net/quic/crypto/cert_compressor.h" 10 #include "net/quic/crypto/cert_compressor.h"
12 #include "net/quic/crypto/common_cert_set.h" 11 #include "net/quic/crypto/common_cert_set.h"
13 #include "net/quic/crypto/crypto_handshake.h" 12 #include "net/quic/crypto/crypto_handshake.h"
14 #include "net/quic/crypto/crypto_server_config_protobuf.h" 13 #include "net/quic/crypto/crypto_server_config_protobuf.h"
15 #include "net/quic/crypto/crypto_utils.h" 14 #include "net/quic/crypto/crypto_utils.h"
16 #include "net/quic/crypto/proof_source.h" 15 #include "net/quic/crypto/proof_source.h"
17 #include "net/quic/crypto/quic_crypto_server_config.h" 16 #include "net/quic/crypto/quic_crypto_server_config.h"
18 #include "net/quic/crypto/quic_random.h" 17 #include "net/quic/crypto/quic_random.h"
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 CryptoUtils::GenerateNonce( 316 CryptoUtils::GenerateNonce(
318 clock_.WallNow(), rand_, 317 clock_.WallNow(), rand_,
319 StringPiece(reinterpret_cast<const char*>(orbit_), sizeof(orbit_)), 318 StringPiece(reinterpret_cast<const char*>(orbit_), sizeof(orbit_)),
320 &nonce); 319 &nonce);
321 return nonce; 320 return nonce;
322 } 321 }
323 322
324 void CheckRejectReasons( 323 void CheckRejectReasons(
325 const HandshakeFailureReason* expected_handshake_failures, 324 const HandshakeFailureReason* expected_handshake_failures,
326 size_t expected_count) { 325 size_t expected_count) {
327 const uint32* reject_reasons; 326 const uint32_t* reject_reasons;
328 size_t num_reject_reasons; 327 size_t num_reject_reasons;
329 static_assert(sizeof(QuicTag) == sizeof(uint32), "header_out_of_sync"); 328 static_assert(sizeof(QuicTag) == sizeof(uint32_t), "header_out_of_sync");
330 QuicErrorCode error_code = 329 QuicErrorCode error_code =
331 out_.GetTaglist(kRREJ, &reject_reasons, &num_reject_reasons); 330 out_.GetTaglist(kRREJ, &reject_reasons, &num_reject_reasons);
332 ASSERT_EQ(QUIC_NO_ERROR, error_code); 331 ASSERT_EQ(QUIC_NO_ERROR, error_code);
333 332
334 if (FLAGS_use_early_return_when_verifying_chlo) { 333 if (FLAGS_use_early_return_when_verifying_chlo) {
335 EXPECT_EQ(1u, num_reject_reasons); 334 EXPECT_EQ(1u, num_reject_reasons);
336 } else { 335 } else {
337 EXPECT_EQ(expected_count, num_reject_reasons); 336 EXPECT_EQ(expected_count, num_reject_reasons);
338 } 337 }
339 for (size_t i = 0; i < num_reject_reasons; ++i) { 338 for (size_t i = 0; i < num_reject_reasons; ++i) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 string cert_sct; 377 string cert_sct;
379 scoped_ptr<ProofSource> proof_source( 378 scoped_ptr<ProofSource> proof_source(
380 CryptoTestUtils::ProofSourceForTesting()); 379 CryptoTestUtils::ProofSourceForTesting());
381 if (!proof_source->GetProof(server_ip, "", "", false, &certs, &sig, 380 if (!proof_source->GetProof(server_ip, "", "", false, &certs, &sig,
382 &cert_sct) || 381 &cert_sct) ||
383 certs->empty()) { 382 certs->empty()) {
384 return "#0100000000000000"; 383 return "#0100000000000000";
385 } 384 }
386 385
387 std::ostringstream xlct_stream; 386 std::ostringstream xlct_stream;
388 uint64 xlct = 387 uint64_t xlct =
389 QuicUtils::FNV1a_64_Hash(certs->at(0).c_str(), certs->at(0).length()); 388 QuicUtils::FNV1a_64_Hash(certs->at(0).c_str(), certs->at(0).length());
390 return "#" + base::HexEncode(reinterpret_cast<char*>(&xlct), sizeof(xlct)); 389 return "#" + base::HexEncode(reinterpret_cast<char*>(&xlct), sizeof(xlct));
391 } 390 }
392 391
393 protected: 392 protected:
394 QuicRandom* const rand_; 393 QuicRandom* const rand_;
395 MockRandom rand_for_id_generation_; 394 MockRandom rand_for_id_generation_;
396 MockClock clock_; 395 MockClock clock_;
397 IPEndPoint client_address_; 396 IPEndPoint client_address_;
398 QuicVersionVector supported_versions_; 397 QuicVersionVector supported_versions_;
399 QuicVersion client_version_; 398 QuicVersion client_version_;
400 string client_version_string_; 399 string client_version_string_;
401 QuicCryptoServerConfig config_; 400 QuicCryptoServerConfig config_;
402 QuicCryptoServerConfig::ConfigOptions config_options_; 401 QuicCryptoServerConfig::ConfigOptions config_options_;
403 QuicCryptoNegotiatedParameters params_; 402 QuicCryptoNegotiatedParameters params_;
404 QuicCryptoProof crypto_proof_; 403 QuicCryptoProof crypto_proof_;
405 CryptoHandshakeMessage out_; 404 CryptoHandshakeMessage out_;
406 uint8 orbit_[kOrbitSize]; 405 uint8_t orbit_[kOrbitSize];
407 bool use_stateless_rejects_; 406 bool use_stateless_rejects_;
408 407
409 // These strings contain hex escaped values from the server suitable for using 408 // These strings contain hex escaped values from the server suitable for using
410 // when constructing client hello messages. 409 // when constructing client hello messages.
411 string nonce_hex_, pub_hex_, srct_hex_, scid_hex_; 410 string nonce_hex_, pub_hex_, srct_hex_, scid_hex_;
412 scoped_ptr<CryptoHandshakeMessage> server_config_; 411 scoped_ptr<CryptoHandshakeMessage> server_config_;
413 }; 412 };
414 413
415 // Run all CryptoServerTest with both values of 414 // Run all CryptoServerTest with both values of
416 // FLAGS_use_early_return_when_verifying_chlo. 415 // FLAGS_use_early_return_when_verifying_chlo.
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
1005 // Need to take a copy of |scid| has we're about to call |Erase|. 1004 // Need to take a copy of |scid| has we're about to call |Erase|.
1006 const string scid_str(scid.as_string()); 1005 const string scid_str(scid.as_string());
1007 1006
1008 scfg->Erase(kSCID); 1007 scfg->Erase(kSCID);
1009 scfg->MarkDirty(); 1008 scfg->MarkDirty();
1010 const QuicData& serialized(scfg->GetSerialized()); 1009 const QuicData& serialized(scfg->GetSerialized());
1011 1010
1012 scoped_ptr<crypto::SecureHash> hash( 1011 scoped_ptr<crypto::SecureHash> hash(
1013 crypto::SecureHash::Create(crypto::SecureHash::SHA256)); 1012 crypto::SecureHash::Create(crypto::SecureHash::SHA256));
1014 hash->Update(serialized.data(), serialized.length()); 1013 hash->Update(serialized.data(), serialized.length());
1015 uint8 digest[16]; 1014 uint8_t digest[16];
1016 hash->Finish(digest, sizeof(digest)); 1015 hash->Finish(digest, sizeof(digest));
1017 1016
1018 ASSERT_EQ(scid.size(), sizeof(digest)); 1017 ASSERT_EQ(scid.size(), sizeof(digest));
1019 EXPECT_EQ(0, memcmp(digest, scid_str.c_str(), sizeof(digest))); 1018 EXPECT_EQ(0, memcmp(digest, scid_str.c_str(), sizeof(digest)));
1020 } 1019 }
1021 1020
1022 class CryptoServerTestNoConfig : public CryptoServerTest { 1021 class CryptoServerTestNoConfig : public CryptoServerTest {
1023 public: 1022 public:
1024 void SetUp() override { 1023 void SetUp() override {
1025 // Deliberately don't add a config so that we can test this situation. 1024 // Deliberately don't add a config so that we can test this situation.
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1100 1099
1101 class AsyncStrikeServerVerificationTest : public CryptoServerTest { 1100 class AsyncStrikeServerVerificationTest : public CryptoServerTest {
1102 protected: 1101 protected:
1103 AsyncStrikeServerVerificationTest() {} 1102 AsyncStrikeServerVerificationTest() {}
1104 1103
1105 void SetUp() override { 1104 void SetUp() override {
1106 const string kOrbit = "12345678"; 1105 const string kOrbit = "12345678";
1107 config_options_.orbit = kOrbit; 1106 config_options_.orbit = kOrbit;
1108 strike_register_client_ = new DelayedVerifyStrikeRegisterClient( 1107 strike_register_client_ = new DelayedVerifyStrikeRegisterClient(
1109 10000, // strike_register_max_entries 1108 10000, // strike_register_max_entries
1110 static_cast<uint32>(clock_.WallNow().ToUNIXSeconds()), 1109 static_cast<uint32_t>(clock_.WallNow().ToUNIXSeconds()),
1111 60, // strike_register_window_secs 1110 60, // strike_register_window_secs
1112 reinterpret_cast<const uint8*>(kOrbit.c_str()), 1111 reinterpret_cast<const uint8_t*>(kOrbit.c_str()),
1113 StrikeRegister::NO_STARTUP_PERIOD_NEEDED); 1112 StrikeRegister::NO_STARTUP_PERIOD_NEEDED);
1114 config_.SetStrikeRegisterClient(strike_register_client_); 1113 config_.SetStrikeRegisterClient(strike_register_client_);
1115 CryptoServerTest::SetUp(); 1114 CryptoServerTest::SetUp();
1116 strike_register_client_->StartDelayingVerification(); 1115 strike_register_client_->StartDelayingVerification();
1117 } 1116 }
1118 1117
1119 DelayedVerifyStrikeRegisterClient* strike_register_client_; 1118 DelayedVerifyStrikeRegisterClient* strike_register_client_;
1120 }; 1119 };
1121 1120
1122 TEST_P(AsyncStrikeServerVerificationTest, AsyncReplayProtection) { 1121 TEST_P(AsyncStrikeServerVerificationTest, AsyncReplayProtection) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1165 1164
1166 strike_register_client_->RunPendingVerifications(); 1165 strike_register_client_->RunPendingVerifications();
1167 ASSERT_TRUE(called); 1166 ASSERT_TRUE(called);
1168 EXPECT_EQ(0, strike_register_client_->PendingVerifications()); 1167 EXPECT_EQ(0, strike_register_client_->PendingVerifications());
1169 // The message should be rejected now. 1168 // The message should be rejected now.
1170 CheckRejectTag(); 1169 CheckRejectTag();
1171 } 1170 }
1172 1171
1173 } // namespace test 1172 } // namespace test
1174 } // namespace net 1173 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/crypto/crypto_server_config_protobuf.h ('k') | net/quic/crypto/crypto_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698