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

Side by Side Diff: net/quic/test_tools/crypto_test_utils.cc

Issue 2740453006: Add QuicStringPiece which is actually StringPiece. (Closed)
Patch Set: fix compile error and rebase Created 3 years, 9 months 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/test_tools/crypto_test_utils.h ('k') | net/quic/test_tools/crypto_test_utils_test.cc » ('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) 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 <memory> 7 #include <memory>
8 8
9 #include "net/quic/core/crypto/channel_id.h" 9 #include "net/quic/core/crypto/channel_id.h"
10 #include "net/quic/core/crypto/common_cert_set.h" 10 #include "net/quic/core/crypto/common_cert_set.h"
(...skipping 16 matching lines...) Expand all
27 #include "net/quic/test_tools/quic_framer_peer.h" 27 #include "net/quic/test_tools/quic_framer_peer.h"
28 #include "net/quic/test_tools/quic_stream_peer.h" 28 #include "net/quic/test_tools/quic_stream_peer.h"
29 #include "net/quic/test_tools/quic_test_utils.h" 29 #include "net/quic/test_tools/quic_test_utils.h"
30 #include "net/quic/test_tools/simple_quic_framer.h" 30 #include "net/quic/test_tools/simple_quic_framer.h"
31 #include "third_party/boringssl/src/include/openssl/bn.h" 31 #include "third_party/boringssl/src/include/openssl/bn.h"
32 #include "third_party/boringssl/src/include/openssl/ec.h" 32 #include "third_party/boringssl/src/include/openssl/ec.h"
33 #include "third_party/boringssl/src/include/openssl/ecdsa.h" 33 #include "third_party/boringssl/src/include/openssl/ecdsa.h"
34 #include "third_party/boringssl/src/include/openssl/obj_mac.h" 34 #include "third_party/boringssl/src/include/openssl/obj_mac.h"
35 #include "third_party/boringssl/src/include/openssl/sha.h" 35 #include "third_party/boringssl/src/include/openssl/sha.h"
36 36
37 using base::StringPiece;
38 using std::string; 37 using std::string;
39 38
40 namespace net { 39 namespace net {
41 namespace test { 40 namespace test {
42 41
43 TestChannelIDKey::TestChannelIDKey(EVP_PKEY* ecdsa_key) 42 TestChannelIDKey::TestChannelIDKey(EVP_PKEY* ecdsa_key)
44 : ecdsa_key_(ecdsa_key) {} 43 : ecdsa_key_(ecdsa_key) {}
45 TestChannelIDKey::~TestChannelIDKey() {} 44 TestChannelIDKey::~TestChannelIDKey() {}
46 45
47 bool TestChannelIDKey::Sign(StringPiece signed_data, 46 bool TestChannelIDKey::Sign(QuicStringPiece signed_data,
48 string* out_signature) const { 47 string* out_signature) const {
49 bssl::ScopedEVP_MD_CTX md_ctx; 48 bssl::ScopedEVP_MD_CTX md_ctx;
50 if (EVP_DigestSignInit(md_ctx.get(), nullptr, EVP_sha256(), nullptr, 49 if (EVP_DigestSignInit(md_ctx.get(), nullptr, EVP_sha256(), nullptr,
51 ecdsa_key_.get()) != 1) { 50 ecdsa_key_.get()) != 1) {
52 return false; 51 return false;
53 } 52 }
54 53
55 EVP_DigestUpdate(md_ctx.get(), ChannelIDVerifier::kContextStr, 54 EVP_DigestUpdate(md_ctx.get(), ChannelIDVerifier::kContextStr,
56 strlen(ChannelIDVerifier::kContextStr) + 1); 55 strlen(ChannelIDVerifier::kContextStr) + 1);
57 EVP_DigestUpdate(md_ctx.get(), ChannelIDVerifier::kClientToServerStr, 56 EVP_DigestUpdate(md_ctx.get(), ChannelIDVerifier::kClientToServerStr,
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 return std::unique_ptr<ProcessClientHelloCallback>( 334 return std::unique_ptr<ProcessClientHelloCallback>(
336 new ProcessClientHelloCallback(this)); 335 new ProcessClientHelloCallback(this));
337 } 336 }
338 337
339 void ProcessClientHelloDone(std::unique_ptr<CryptoHandshakeMessage> rej) { 338 void ProcessClientHelloDone(std::unique_ptr<CryptoHandshakeMessage> rej) {
340 // Verify output is a REJ or SREJ. 339 // Verify output is a REJ or SREJ.
341 EXPECT_THAT(rej->tag(), 340 EXPECT_THAT(rej->tag(),
342 testing::AnyOf(testing::Eq(kSREJ), testing::Eq(kREJ))); 341 testing::AnyOf(testing::Eq(kSREJ), testing::Eq(kREJ)));
343 342
344 VLOG(1) << "Extract valid STK and SCID from\n" << rej->DebugString(); 343 VLOG(1) << "Extract valid STK and SCID from\n" << rej->DebugString();
345 StringPiece srct; 344 QuicStringPiece srct;
346 ASSERT_TRUE(rej->GetStringPiece(kSourceAddressTokenTag, &srct)); 345 ASSERT_TRUE(rej->GetStringPiece(kSourceAddressTokenTag, &srct));
347 346
348 StringPiece scfg; 347 QuicStringPiece scfg;
349 ASSERT_TRUE(rej->GetStringPiece(kSCFG, &scfg)); 348 ASSERT_TRUE(rej->GetStringPiece(kSCFG, &scfg));
350 std::unique_ptr<CryptoHandshakeMessage> server_config( 349 std::unique_ptr<CryptoHandshakeMessage> server_config(
351 CryptoFramer::ParseMessage(scfg)); 350 CryptoFramer::ParseMessage(scfg));
352 351
353 StringPiece scid; 352 QuicStringPiece scid;
354 ASSERT_TRUE(server_config->GetStringPiece(kSCID, &scid)); 353 ASSERT_TRUE(server_config->GetStringPiece(kSCID, &scid));
355 354
356 *out_ = result_->client_hello; 355 *out_ = result_->client_hello;
357 out_->SetStringPiece(kSCID, scid); 356 out_->SetStringPiece(kSCID, scid);
358 out_->SetStringPiece(kSourceAddressTokenTag, srct); 357 out_->SetStringPiece(kSourceAddressTokenTag, srct);
359 uint64_t xlct = LeafCertHashForTesting(); 358 uint64_t xlct = LeafCertHashForTesting();
360 out_->SetValue(kXLCT, xlct); 359 out_->SetValue(kXLCT, xlct);
361 } 360 }
362 361
363 protected: 362 protected:
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 if (!ok || chain->certs.empty()) { 578 if (!ok || chain->certs.empty()) {
580 DCHECK(false) << "Proof generation failed"; 579 DCHECK(false) << "Proof generation failed";
581 return 0; 580 return 0;
582 } 581 }
583 582
584 return QuicUtils::FNV1a_64_Hash(chain->certs.at(0)); 583 return QuicUtils::FNV1a_64_Hash(chain->certs.at(0));
585 } 584 }
586 585
587 class MockCommonCertSets : public CommonCertSets { 586 class MockCommonCertSets : public CommonCertSets {
588 public: 587 public:
589 MockCommonCertSets(StringPiece cert, uint64_t hash, uint32_t index) 588 MockCommonCertSets(QuicStringPiece cert, uint64_t hash, uint32_t index)
590 : cert_(cert.as_string()), hash_(hash), index_(index) {} 589 : cert_(cert.as_string()), hash_(hash), index_(index) {}
591 590
592 StringPiece GetCommonHashes() const override { 591 QuicStringPiece GetCommonHashes() const override {
593 CHECK(false) << "not implemented"; 592 CHECK(false) << "not implemented";
594 return StringPiece(); 593 return QuicStringPiece();
595 } 594 }
596 595
597 StringPiece GetCert(uint64_t hash, uint32_t index) const override { 596 QuicStringPiece GetCert(uint64_t hash, uint32_t index) const override {
598 if (hash == hash_ && index == index_) { 597 if (hash == hash_ && index == index_) {
599 return cert_; 598 return cert_;
600 } 599 }
601 return StringPiece(); 600 return QuicStringPiece();
602 } 601 }
603 602
604 bool MatchCert(StringPiece cert, 603 bool MatchCert(QuicStringPiece cert,
605 StringPiece common_set_hashes, 604 QuicStringPiece common_set_hashes,
606 uint64_t* out_hash, 605 uint64_t* out_hash,
607 uint32_t* out_index) const override { 606 uint32_t* out_index) const override {
608 if (cert != cert_) { 607 if (cert != cert_) {
609 return false; 608 return false;
610 } 609 }
611 610
612 if (common_set_hashes.size() % sizeof(uint64_t) != 0) { 611 if (common_set_hashes.size() % sizeof(uint64_t) != 0) {
613 return false; 612 return false;
614 } 613 }
615 bool client_has_set = false; 614 bool client_has_set = false;
(...skipping 14 matching lines...) Expand all
630 *out_index = index_; 629 *out_index = index_;
631 return true; 630 return true;
632 } 631 }
633 632
634 private: 633 private:
635 const string cert_; 634 const string cert_;
636 const uint64_t hash_; 635 const uint64_t hash_;
637 const uint32_t index_; 636 const uint32_t index_;
638 }; 637 };
639 638
640 CommonCertSets* MockCommonCertSets(StringPiece cert, 639 CommonCertSets* MockCommonCertSets(QuicStringPiece cert,
641 uint64_t hash, 640 uint64_t hash,
642 uint32_t index) { 641 uint32_t index) {
643 return new class MockCommonCertSets(cert, hash, index); 642 return new class MockCommonCertSets(cert, hash, index);
644 } 643 }
645 644
646 void FillInDummyReject(CryptoHandshakeMessage* rej, bool reject_is_stateless) { 645 void FillInDummyReject(CryptoHandshakeMessage* rej, bool reject_is_stateless) {
647 if (reject_is_stateless) { 646 if (reject_is_stateless) {
648 rej->set_tag(kSREJ); 647 rej->set_tag(kSREJ);
649 } else { 648 } else {
650 rej->set_tag(kREJ); 649 rej->set_tag(kREJ);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 QuicStreamPeer::session(client)->connection()->alternative_decrypter()); 692 QuicStreamPeer::session(client)->connection()->alternative_decrypter());
694 const QuicEncrypter* server_encrypter( 693 const QuicEncrypter* server_encrypter(
695 QuicFramerPeer::GetEncrypter(server_framer, ENCRYPTION_INITIAL)); 694 QuicFramerPeer::GetEncrypter(server_framer, ENCRYPTION_INITIAL));
696 const QuicDecrypter* server_decrypter( 695 const QuicDecrypter* server_decrypter(
697 QuicStreamPeer::session(server)->connection()->decrypter()); 696 QuicStreamPeer::session(server)->connection()->decrypter());
698 const QuicEncrypter* server_forward_secure_encrypter( 697 const QuicEncrypter* server_forward_secure_encrypter(
699 QuicFramerPeer::GetEncrypter(server_framer, ENCRYPTION_FORWARD_SECURE)); 698 QuicFramerPeer::GetEncrypter(server_framer, ENCRYPTION_FORWARD_SECURE));
700 const QuicDecrypter* server_forward_secure_decrypter( 699 const QuicDecrypter* server_forward_secure_decrypter(
701 QuicStreamPeer::session(server)->connection()->alternative_decrypter()); 700 QuicStreamPeer::session(server)->connection()->alternative_decrypter());
702 701
703 StringPiece client_encrypter_key = client_encrypter->GetKey(); 702 QuicStringPiece client_encrypter_key = client_encrypter->GetKey();
704 StringPiece client_encrypter_iv = client_encrypter->GetNoncePrefix(); 703 QuicStringPiece client_encrypter_iv = client_encrypter->GetNoncePrefix();
705 StringPiece client_decrypter_key = client_decrypter->GetKey(); 704 QuicStringPiece client_decrypter_key = client_decrypter->GetKey();
706 StringPiece client_decrypter_iv = client_decrypter->GetNoncePrefix(); 705 QuicStringPiece client_decrypter_iv = client_decrypter->GetNoncePrefix();
707 StringPiece client_forward_secure_encrypter_key = 706 QuicStringPiece client_forward_secure_encrypter_key =
708 client_forward_secure_encrypter->GetKey(); 707 client_forward_secure_encrypter->GetKey();
709 StringPiece client_forward_secure_encrypter_iv = 708 QuicStringPiece client_forward_secure_encrypter_iv =
710 client_forward_secure_encrypter->GetNoncePrefix(); 709 client_forward_secure_encrypter->GetNoncePrefix();
711 StringPiece client_forward_secure_decrypter_key = 710 QuicStringPiece client_forward_secure_decrypter_key =
712 client_forward_secure_decrypter->GetKey(); 711 client_forward_secure_decrypter->GetKey();
713 StringPiece client_forward_secure_decrypter_iv = 712 QuicStringPiece client_forward_secure_decrypter_iv =
714 client_forward_secure_decrypter->GetNoncePrefix(); 713 client_forward_secure_decrypter->GetNoncePrefix();
715 StringPiece server_encrypter_key = server_encrypter->GetKey(); 714 QuicStringPiece server_encrypter_key = server_encrypter->GetKey();
716 StringPiece server_encrypter_iv = server_encrypter->GetNoncePrefix(); 715 QuicStringPiece server_encrypter_iv = server_encrypter->GetNoncePrefix();
717 StringPiece server_decrypter_key = server_decrypter->GetKey(); 716 QuicStringPiece server_decrypter_key = server_decrypter->GetKey();
718 StringPiece server_decrypter_iv = server_decrypter->GetNoncePrefix(); 717 QuicStringPiece server_decrypter_iv = server_decrypter->GetNoncePrefix();
719 StringPiece server_forward_secure_encrypter_key = 718 QuicStringPiece server_forward_secure_encrypter_key =
720 server_forward_secure_encrypter->GetKey(); 719 server_forward_secure_encrypter->GetKey();
721 StringPiece server_forward_secure_encrypter_iv = 720 QuicStringPiece server_forward_secure_encrypter_iv =
722 server_forward_secure_encrypter->GetNoncePrefix(); 721 server_forward_secure_encrypter->GetNoncePrefix();
723 StringPiece server_forward_secure_decrypter_key = 722 QuicStringPiece server_forward_secure_decrypter_key =
724 server_forward_secure_decrypter->GetKey(); 723 server_forward_secure_decrypter->GetKey();
725 StringPiece server_forward_secure_decrypter_iv = 724 QuicStringPiece server_forward_secure_decrypter_iv =
726 server_forward_secure_decrypter->GetNoncePrefix(); 725 server_forward_secure_decrypter->GetNoncePrefix();
727 726
728 StringPiece client_subkey_secret = 727 QuicStringPiece client_subkey_secret =
729 client->crypto_negotiated_params().subkey_secret; 728 client->crypto_negotiated_params().subkey_secret;
730 StringPiece server_subkey_secret = 729 QuicStringPiece server_subkey_secret =
731 server->crypto_negotiated_params().subkey_secret; 730 server->crypto_negotiated_params().subkey_secret;
732 731
733 const char kSampleLabel[] = "label"; 732 const char kSampleLabel[] = "label";
734 const char kSampleContext[] = "context"; 733 const char kSampleContext[] = "context";
735 const size_t kSampleOutputLength = 32; 734 const size_t kSampleOutputLength = 32;
736 string client_key_extraction; 735 string client_key_extraction;
737 string server_key_extraction; 736 string server_key_extraction;
738 string client_tb_ekm; 737 string client_tb_ekm;
739 string server_tb_ekm; 738 string server_tb_ekm;
740 EXPECT_TRUE(client->ExportKeyingMaterial(kSampleLabel, kSampleContext, 739 EXPECT_TRUE(client->ExportKeyingMaterial(kSampleLabel, kSampleContext,
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
845 844
846 for (const auto& tag_and_value : tags_and_values) { 845 for (const auto& tag_and_value : tags_and_values) {
847 const string& tag = tag_and_value.first; 846 const string& tag = tag_and_value.first;
848 const string& value = tag_and_value.second; 847 const string& value = tag_and_value.second;
849 848
850 const QuicTag quic_tag = ParseTag(tag.c_str()); 849 const QuicTag quic_tag = ParseTag(tag.c_str());
851 850
852 size_t value_len = value.length(); 851 size_t value_len = value.length();
853 if (value_len > 0 && value[0] == '#') { 852 if (value_len > 0 && value[0] == '#') {
854 // This is ascii encoded hex. 853 // This is ascii encoded hex.
855 string hex_value = QuicTextUtils::HexDecode(StringPiece(&value[1])); 854 string hex_value = QuicTextUtils::HexDecode(QuicStringPiece(&value[1]));
856 msg.SetStringPiece(quic_tag, hex_value); 855 msg.SetStringPiece(quic_tag, hex_value);
857 continue; 856 continue;
858 } 857 }
859 msg.SetStringPiece(quic_tag, value); 858 msg.SetStringPiece(quic_tag, value);
860 } 859 }
861 860
862 // The CryptoHandshakeMessage needs to be serialized and parsed to ensure 861 // The CryptoHandshakeMessage needs to be serialized and parsed to ensure
863 // that any padding is included. 862 // that any padding is included.
864 std::unique_ptr<QuicData> bytes(CryptoFramer::ConstructHandshakeMessage(msg)); 863 std::unique_ptr<QuicData> bytes(CryptoFramer::ConstructHandshakeMessage(msg));
865 std::unique_ptr<CryptoHandshakeMessage> parsed( 864 std::unique_ptr<CryptoHandshakeMessage> parsed(
(...skipping 27 matching lines...) Expand all
893 892
894 size_t index = *inout_packet_index; 893 size_t index = *inout_packet_index;
895 for (; index < source_conn->encrypted_packets_.size(); index++) { 894 for (; index < source_conn->encrypted_packets_.size(); index++) {
896 if (!framer.ProcessPacket(*source_conn->encrypted_packets_[index])) { 895 if (!framer.ProcessPacket(*source_conn->encrypted_packets_[index])) {
897 // The framer will be unable to decrypt forward-secure packets sent after 896 // The framer will be unable to decrypt forward-secure packets sent after
898 // the handshake is complete. Don't treat them as handshake packets. 897 // the handshake is complete. Don't treat them as handshake packets.
899 break; 898 break;
900 } 899 }
901 900
902 for (const auto& stream_frame : framer.stream_frames()) { 901 for (const auto& stream_frame : framer.stream_frames()) {
903 ASSERT_TRUE(crypto_framer.ProcessInput( 902 ASSERT_TRUE(crypto_framer.ProcessInput(QuicStringPiece(
904 StringPiece(stream_frame->data_buffer, stream_frame->data_length))); 903 stream_frame->data_buffer, stream_frame->data_length)));
905 ASSERT_FALSE(crypto_visitor.error()); 904 ASSERT_FALSE(crypto_visitor.error());
906 } 905 }
907 QuicConnectionPeer::SetCurrentPacket( 906 QuicConnectionPeer::SetCurrentPacket(
908 dest_conn, source_conn->encrypted_packets_[index]->AsStringPiece()); 907 dest_conn, source_conn->encrypted_packets_[index]->AsStringPiece());
909 } 908 }
910 *inout_packet_index = index; 909 *inout_packet_index = index;
911 910
912 QuicConnectionPeer::SwapCrypters(dest_conn, framer.framer()); 911 QuicConnectionPeer::SwapCrypters(dest_conn, framer.framer());
913 912
914 ASSERT_EQ(0u, crypto_framer.InputBytesRemaining()); 913 ASSERT_EQ(0u, crypto_framer.InputBytesRemaining());
915 914
916 for (const CryptoHandshakeMessage& message : crypto_visitor.messages()) { 915 for (const CryptoHandshakeMessage& message : crypto_visitor.messages()) {
917 dest_stream->OnHandshakeMessage(message); 916 dest_stream->OnHandshakeMessage(message);
918 } 917 }
919 QuicConnectionPeer::SetCurrentPacket(dest_conn, StringPiece(nullptr, 0)); 918 QuicConnectionPeer::SetCurrentPacket(dest_conn, QuicStringPiece(nullptr, 0));
920 } 919 }
921 920
922 CryptoHandshakeMessage GenerateDefaultInchoateCHLO( 921 CryptoHandshakeMessage GenerateDefaultInchoateCHLO(
923 const QuicClock* clock, 922 const QuicClock* clock,
924 QuicVersion version, 923 QuicVersion version,
925 QuicCryptoServerConfig* crypto_config) { 924 QuicCryptoServerConfig* crypto_config) {
926 // clang-format off 925 // clang-format off
927 return CreateCHLO( 926 return CreateCHLO(
928 {{"PDMD", "X509"}, 927 {{"PDMD", "X509"},
929 {"AEAD", "AESG"}, 928 {"AEAD", "AESG"},
(...skipping 11 matching lines...) Expand all
941 QuicCryptoServerConfig::ConfigOptions new_config_options; 940 QuicCryptoServerConfig::ConfigOptions new_config_options;
942 old_config_options.id = "old-config-id"; 941 old_config_options.id = "old-config-id";
943 delete crypto_config->AddDefaultConfig(QuicRandom::GetInstance(), clock, 942 delete crypto_config->AddDefaultConfig(QuicRandom::GetInstance(), clock,
944 old_config_options); 943 old_config_options);
945 std::unique_ptr<QuicServerConfigProtobuf> primary_config( 944 std::unique_ptr<QuicServerConfigProtobuf> primary_config(
946 crypto_config->GenerateConfig(QuicRandom::GetInstance(), clock, 945 crypto_config->GenerateConfig(QuicRandom::GetInstance(), clock,
947 new_config_options)); 946 new_config_options));
948 primary_config->set_primary_time(clock->WallNow().ToUNIXSeconds()); 947 primary_config->set_primary_time(clock->WallNow().ToUNIXSeconds());
949 std::unique_ptr<CryptoHandshakeMessage> msg( 948 std::unique_ptr<CryptoHandshakeMessage> msg(
950 crypto_config->AddConfig(std::move(primary_config), clock->WallNow())); 949 crypto_config->AddConfig(std::move(primary_config), clock->WallNow()));
951 StringPiece orbit; 950 QuicStringPiece orbit;
952 CHECK(msg->GetStringPiece(kORBT, &orbit)); 951 CHECK(msg->GetStringPiece(kORBT, &orbit));
953 string nonce; 952 string nonce;
954 CryptoUtils::GenerateNonce( 953 CryptoUtils::GenerateNonce(
955 clock->WallNow(), QuicRandom::GetInstance(), 954 clock->WallNow(), QuicRandom::GetInstance(),
956 StringPiece(reinterpret_cast<const char*>(orbit.data()), 955 QuicStringPiece(reinterpret_cast<const char*>(orbit.data()),
957 sizeof(orbit.size())), 956 sizeof(orbit.size())),
958 &nonce); 957 &nonce);
959 return ("#" + QuicTextUtils::HexEncode(nonce)); 958 return ("#" + QuicTextUtils::HexEncode(nonce));
960 } 959 }
961 960
962 string GenerateClientPublicValuesHex() { 961 string GenerateClientPublicValuesHex() {
963 char public_value[32]; 962 char public_value[32];
964 memset(public_value, 42, sizeof(public_value)); 963 memset(public_value, 42, sizeof(public_value));
965 return ("#" + QuicTextUtils::HexEncode(public_value, sizeof(public_value))); 964 return ("#" + QuicTextUtils::HexEncode(public_value, sizeof(public_value)));
966 } 965 }
967 966
(...skipping 10 matching lines...) Expand all
978 FullChloGenerator generator(crypto_config, server_addr, client_addr, clock, 977 FullChloGenerator generator(crypto_config, server_addr, client_addr, clock,
979 proof, compressed_certs_cache, out); 978 proof, compressed_certs_cache, out);
980 crypto_config->ValidateClientHello( 979 crypto_config->ValidateClientHello(
981 inchoate_chlo, client_addr.host(), server_addr, version, clock, proof, 980 inchoate_chlo, client_addr.host(), server_addr, version, clock, proof,
982 generator.GetValidateClientHelloCallback()); 981 generator.GetValidateClientHelloCallback());
983 } 982 }
984 983
985 } // namespace crypto_test_utils 984 } // namespace crypto_test_utils
986 } // namespace test 985 } // namespace test
987 } // namespace net 986 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/test_tools/crypto_test_utils.h ('k') | net/quic/test_tools/crypto_test_utils_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698