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/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
6 | 6 |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "net/base/test_data_directory.h" | 9 #include "net/base/test_data_directory.h" |
10 #include "net/cert/cert_verifier.h" | 10 #include "net/cert/cert_verifier.h" |
(...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
675 // www.example.org (server1) | 675 // www.example.org (server1) |
676 // mail.example.org (server2) | 676 // mail.example.org (server2) |
677 // www.example.com | 677 // www.example.com |
678 base::FilePath certs_dir = GetTestCertsDirectory(); | 678 base::FilePath certs_dir = GetTestCertsDirectory(); |
679 scoped_refptr<X509Certificate> test_cert( | 679 scoped_refptr<X509Certificate> test_cert( |
680 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 680 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
681 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 681 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
682 ProofVerifyDetailsChromium verify_details; | 682 ProofVerifyDetailsChromium verify_details; |
683 verify_details.cert_verify_result.verified_cert = test_cert; | 683 verify_details.cert_verify_result.verified_cert = test_cert; |
684 verify_details.cert_verify_result.is_issued_by_known_root = true; | 684 verify_details.cert_verify_result.is_issued_by_known_root = true; |
685 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 685 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
686 | 686 |
687 host_resolver_.set_synchronous_mode(true); | 687 host_resolver_.set_synchronous_mode(true); |
688 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 688 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
689 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 689 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
690 | 690 |
691 QuicStreamRequest request(&factory_); | 691 QuicStreamRequest request(&factory_); |
692 is_https_ = true; | 692 is_https_ = true; |
693 EXPECT_EQ(OK, | 693 EXPECT_EQ(OK, |
694 request.Request(server1, | 694 request.Request(server1, |
695 is_https_, | 695 is_https_, |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
739 // www.example.org (server1) | 739 // www.example.org (server1) |
740 // mail.example.org (server2) | 740 // mail.example.org (server2) |
741 // www.example.com | 741 // www.example.com |
742 base::FilePath certs_dir = GetTestCertsDirectory(); | 742 base::FilePath certs_dir = GetTestCertsDirectory(); |
743 scoped_refptr<X509Certificate> test_cert( | 743 scoped_refptr<X509Certificate> test_cert( |
744 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 744 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
745 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 745 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
746 ProofVerifyDetailsChromium verify_details; | 746 ProofVerifyDetailsChromium verify_details; |
747 verify_details.cert_verify_result.verified_cert = test_cert; | 747 verify_details.cert_verify_result.verified_cert = test_cert; |
748 verify_details.cert_verify_result.is_issued_by_known_root = true; | 748 verify_details.cert_verify_result.is_issued_by_known_root = true; |
749 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 749 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
750 | 750 |
751 host_resolver_.set_synchronous_mode(true); | 751 host_resolver_.set_synchronous_mode(true); |
752 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 752 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
753 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 753 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
754 | 754 |
755 // Disable connection pooling. | 755 // Disable connection pooling. |
756 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); | 756 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); |
757 | 757 |
758 QuicStreamRequest request(&factory_); | 758 QuicStreamRequest request(&factory_); |
759 is_https_ = true; | 759 is_https_ = true; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 // www.example.org (server1) | 808 // www.example.org (server1) |
809 // mail.example.org | 809 // mail.example.org |
810 // www.example.com | 810 // www.example.com |
811 // But is not valid for mail.google.com (server2). | 811 // But is not valid for mail.google.com (server2). |
812 base::FilePath certs_dir = GetTestCertsDirectory(); | 812 base::FilePath certs_dir = GetTestCertsDirectory(); |
813 scoped_refptr<X509Certificate> test_cert( | 813 scoped_refptr<X509Certificate> test_cert( |
814 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 814 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
815 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 815 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
816 ProofVerifyDetailsChromium verify_details; | 816 ProofVerifyDetailsChromium verify_details; |
817 verify_details.cert_verify_result.verified_cert = test_cert; | 817 verify_details.cert_verify_result.verified_cert = test_cert; |
818 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 818 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
819 | |
820 | 819 |
821 host_resolver_.set_synchronous_mode(true); | 820 host_resolver_.set_synchronous_mode(true); |
822 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 821 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
823 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 822 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
824 | 823 |
825 QuicStreamRequest request(&factory_); | 824 QuicStreamRequest request(&factory_); |
826 is_https_ = true; | 825 is_https_ = true; |
827 EXPECT_EQ(OK, | 826 EXPECT_EQ(OK, |
828 request.Request(server1, | 827 request.Request(server1, |
829 is_https_, | 828 is_https_, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
877 // mail.example.org (server2) | 876 // mail.example.org (server2) |
878 base::FilePath certs_dir = GetTestCertsDirectory(); | 877 base::FilePath certs_dir = GetTestCertsDirectory(); |
879 scoped_refptr<X509Certificate> test_cert( | 878 scoped_refptr<X509Certificate> test_cert( |
880 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 879 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
881 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 880 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
882 ProofVerifyDetailsChromium verify_details; | 881 ProofVerifyDetailsChromium verify_details; |
883 verify_details.cert_verify_result.verified_cert = test_cert; | 882 verify_details.cert_verify_result.verified_cert = test_cert; |
884 verify_details.cert_verify_result.is_issued_by_known_root = true; | 883 verify_details.cert_verify_result.is_issued_by_known_root = true; |
885 verify_details.cert_verify_result.public_key_hashes.push_back( | 884 verify_details.cert_verify_result.public_key_hashes.push_back( |
886 test::GetTestHashValue(primary_pin)); | 885 test::GetTestHashValue(primary_pin)); |
887 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 886 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
888 | |
889 | 887 |
890 host_resolver_.set_synchronous_mode(true); | 888 host_resolver_.set_synchronous_mode(true); |
891 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 889 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
892 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 890 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
893 | 891 |
894 QuicStreamRequest request(&factory_); | 892 QuicStreamRequest request(&factory_); |
895 is_https_ = true; | 893 is_https_ = true; |
896 EXPECT_EQ(OK, | 894 EXPECT_EQ(OK, |
897 request.Request(server1, | 895 request.Request(server1, |
898 is_https_, | 896 is_https_, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 // mail.example.org (server2) | 945 // mail.example.org (server2) |
948 base::FilePath certs_dir = GetTestCertsDirectory(); | 946 base::FilePath certs_dir = GetTestCertsDirectory(); |
949 scoped_refptr<X509Certificate> test_cert( | 947 scoped_refptr<X509Certificate> test_cert( |
950 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 948 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
951 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 949 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
952 ProofVerifyDetailsChromium verify_details; | 950 ProofVerifyDetailsChromium verify_details; |
953 verify_details.cert_verify_result.verified_cert = test_cert; | 951 verify_details.cert_verify_result.verified_cert = test_cert; |
954 verify_details.cert_verify_result.is_issued_by_known_root = true; | 952 verify_details.cert_verify_result.is_issued_by_known_root = true; |
955 verify_details.cert_verify_result.public_key_hashes.push_back( | 953 verify_details.cert_verify_result.public_key_hashes.push_back( |
956 test::GetTestHashValue(primary_pin)); | 954 test::GetTestHashValue(primary_pin)); |
957 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 955 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
958 | |
959 | 956 |
960 host_resolver_.set_synchronous_mode(true); | 957 host_resolver_.set_synchronous_mode(true); |
961 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 958 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
962 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 959 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
963 | 960 |
964 // Disable connection pooling. | 961 // Disable connection pooling. |
965 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); | 962 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); |
966 | 963 |
967 QuicStreamRequest request(&factory_); | 964 QuicStreamRequest request(&factory_); |
968 is_https_ = true; | 965 is_https_ = true; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1018 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 1015 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
1019 backup_pin); | 1016 backup_pin); |
1020 | 1017 |
1021 // Load a cert that is valid for: | 1018 // Load a cert that is valid for: |
1022 // www.example.org (server1) | 1019 // www.example.org (server1) |
1023 // mail.example.org (server2) | 1020 // mail.example.org (server2) |
1024 base::FilePath certs_dir = GetTestCertsDirectory(); | 1021 base::FilePath certs_dir = GetTestCertsDirectory(); |
1025 scoped_refptr<X509Certificate> test_cert( | 1022 scoped_refptr<X509Certificate> test_cert( |
1026 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 1023 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
1027 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 1024 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
1028 ProofVerifyDetailsChromium verify_details; | 1025 |
1029 verify_details.cert_verify_result.verified_cert = test_cert; | 1026 ProofVerifyDetailsChromium verify_details1; |
1030 verify_details.cert_verify_result.is_issued_by_known_root = true; | 1027 verify_details1.cert_verify_result.verified_cert = test_cert; |
1031 verify_details.cert_verify_result.public_key_hashes.push_back( | 1028 verify_details1.cert_verify_result.is_issued_by_known_root = true; |
| 1029 verify_details1.cert_verify_result.public_key_hashes.push_back( |
1032 test::GetTestHashValue(bad_pin)); | 1030 test::GetTestHashValue(bad_pin)); |
1033 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 1031 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details1); |
1034 | 1032 |
| 1033 ProofVerifyDetailsChromium verify_details2; |
| 1034 verify_details2.cert_verify_result.verified_cert = test_cert; |
| 1035 verify_details2.cert_verify_result.is_issued_by_known_root = true; |
| 1036 verify_details2.cert_verify_result.public_key_hashes.push_back( |
| 1037 test::GetTestHashValue(primary_pin)); |
| 1038 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); |
1035 | 1039 |
1036 host_resolver_.set_synchronous_mode(true); | 1040 host_resolver_.set_synchronous_mode(true); |
1037 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 1041 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
1038 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1042 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
1039 | 1043 |
1040 QuicStreamRequest request(&factory_); | 1044 QuicStreamRequest request(&factory_); |
1041 is_https_ = true; | 1045 is_https_ = true; |
1042 EXPECT_EQ(OK, | 1046 EXPECT_EQ(OK, |
1043 request.Request(server1, | 1047 request.Request(server1, |
1044 is_https_, | 1048 is_https_, |
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1831 EXPECT_TRUE(socket_data.at_read_eof()); | 1835 EXPECT_TRUE(socket_data.at_read_eof()); |
1832 EXPECT_TRUE(socket_data.at_write_eof()); | 1836 EXPECT_TRUE(socket_data.at_write_eof()); |
1833 EXPECT_TRUE(socket_data2.at_read_eof()); | 1837 EXPECT_TRUE(socket_data2.at_read_eof()); |
1834 EXPECT_TRUE(socket_data2.at_write_eof()); | 1838 EXPECT_TRUE(socket_data2.at_write_eof()); |
1835 EXPECT_TRUE(socket_data3.at_read_eof()); | 1839 EXPECT_TRUE(socket_data3.at_read_eof()); |
1836 EXPECT_TRUE(socket_data3.at_write_eof()); | 1840 EXPECT_TRUE(socket_data3.at_write_eof()); |
1837 } | 1841 } |
1838 | 1842 |
1839 } // namespace test | 1843 } // namespace test |
1840 } // namespace net | 1844 } // namespace net |
OLD | NEW |