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_.set_default_proof_verify_details( |
| 686 &verify_details); |
686 | 687 |
687 host_resolver_.set_synchronous_mode(true); | 688 host_resolver_.set_synchronous_mode(true); |
688 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 689 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
689 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 690 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
690 | 691 |
691 QuicStreamRequest request(&factory_); | 692 QuicStreamRequest request(&factory_); |
692 is_https_ = true; | 693 is_https_ = true; |
693 EXPECT_EQ(OK, | 694 EXPECT_EQ(OK, |
694 request.Request(server1, | 695 request.Request(server1, |
695 is_https_, | 696 is_https_, |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
739 // www.example.org (server1) | 740 // www.example.org (server1) |
740 // mail.example.org (server2) | 741 // mail.example.org (server2) |
741 // www.example.com | 742 // www.example.com |
742 base::FilePath certs_dir = GetTestCertsDirectory(); | 743 base::FilePath certs_dir = GetTestCertsDirectory(); |
743 scoped_refptr<X509Certificate> test_cert( | 744 scoped_refptr<X509Certificate> test_cert( |
744 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 745 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
745 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 746 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
746 ProofVerifyDetailsChromium verify_details; | 747 ProofVerifyDetailsChromium verify_details; |
747 verify_details.cert_verify_result.verified_cert = test_cert; | 748 verify_details.cert_verify_result.verified_cert = test_cert; |
748 verify_details.cert_verify_result.is_issued_by_known_root = true; | 749 verify_details.cert_verify_result.is_issued_by_known_root = true; |
749 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 750 crypto_client_stream_factory_.set_default_proof_verify_details( |
| 751 &verify_details); |
750 | 752 |
751 host_resolver_.set_synchronous_mode(true); | 753 host_resolver_.set_synchronous_mode(true); |
752 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 754 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
753 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 755 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
754 | 756 |
755 // Disable connection pooling. | 757 // Disable connection pooling. |
756 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); | 758 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); |
757 | 759 |
758 QuicStreamRequest request(&factory_); | 760 QuicStreamRequest request(&factory_); |
759 is_https_ = true; | 761 is_https_ = true; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 // www.example.org (server1) | 810 // www.example.org (server1) |
809 // mail.example.org | 811 // mail.example.org |
810 // www.example.com | 812 // www.example.com |
811 // But is not valid for mail.google.com (server2). | 813 // But is not valid for mail.google.com (server2). |
812 base::FilePath certs_dir = GetTestCertsDirectory(); | 814 base::FilePath certs_dir = GetTestCertsDirectory(); |
813 scoped_refptr<X509Certificate> test_cert( | 815 scoped_refptr<X509Certificate> test_cert( |
814 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 816 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
815 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 817 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
816 ProofVerifyDetailsChromium verify_details; | 818 ProofVerifyDetailsChromium verify_details; |
817 verify_details.cert_verify_result.verified_cert = test_cert; | 819 verify_details.cert_verify_result.verified_cert = test_cert; |
818 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 820 crypto_client_stream_factory_.set_default_proof_verify_details( |
819 | 821 &verify_details); |
820 | 822 |
821 host_resolver_.set_synchronous_mode(true); | 823 host_resolver_.set_synchronous_mode(true); |
822 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 824 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
823 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 825 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
824 | 826 |
825 QuicStreamRequest request(&factory_); | 827 QuicStreamRequest request(&factory_); |
826 is_https_ = true; | 828 is_https_ = true; |
827 EXPECT_EQ(OK, | 829 EXPECT_EQ(OK, |
828 request.Request(server1, | 830 request.Request(server1, |
829 is_https_, | 831 is_https_, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
877 // mail.example.org (server2) | 879 // mail.example.org (server2) |
878 base::FilePath certs_dir = GetTestCertsDirectory(); | 880 base::FilePath certs_dir = GetTestCertsDirectory(); |
879 scoped_refptr<X509Certificate> test_cert( | 881 scoped_refptr<X509Certificate> test_cert( |
880 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 882 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
881 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 883 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
882 ProofVerifyDetailsChromium verify_details; | 884 ProofVerifyDetailsChromium verify_details; |
883 verify_details.cert_verify_result.verified_cert = test_cert; | 885 verify_details.cert_verify_result.verified_cert = test_cert; |
884 verify_details.cert_verify_result.is_issued_by_known_root = true; | 886 verify_details.cert_verify_result.is_issued_by_known_root = true; |
885 verify_details.cert_verify_result.public_key_hashes.push_back( | 887 verify_details.cert_verify_result.public_key_hashes.push_back( |
886 test::GetTestHashValue(primary_pin)); | 888 test::GetTestHashValue(primary_pin)); |
887 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 889 crypto_client_stream_factory_.set_default_proof_verify_details( |
888 | 890 &verify_details); |
889 | 891 |
890 host_resolver_.set_synchronous_mode(true); | 892 host_resolver_.set_synchronous_mode(true); |
891 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 893 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
892 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 894 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
893 | 895 |
894 QuicStreamRequest request(&factory_); | 896 QuicStreamRequest request(&factory_); |
895 is_https_ = true; | 897 is_https_ = true; |
896 EXPECT_EQ(OK, | 898 EXPECT_EQ(OK, |
897 request.Request(server1, | 899 request.Request(server1, |
898 is_https_, | 900 is_https_, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 // mail.example.org (server2) | 949 // mail.example.org (server2) |
948 base::FilePath certs_dir = GetTestCertsDirectory(); | 950 base::FilePath certs_dir = GetTestCertsDirectory(); |
949 scoped_refptr<X509Certificate> test_cert( | 951 scoped_refptr<X509Certificate> test_cert( |
950 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 952 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
951 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 953 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
952 ProofVerifyDetailsChromium verify_details; | 954 ProofVerifyDetailsChromium verify_details; |
953 verify_details.cert_verify_result.verified_cert = test_cert; | 955 verify_details.cert_verify_result.verified_cert = test_cert; |
954 verify_details.cert_verify_result.is_issued_by_known_root = true; | 956 verify_details.cert_verify_result.is_issued_by_known_root = true; |
955 verify_details.cert_verify_result.public_key_hashes.push_back( | 957 verify_details.cert_verify_result.public_key_hashes.push_back( |
956 test::GetTestHashValue(primary_pin)); | 958 test::GetTestHashValue(primary_pin)); |
957 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 959 crypto_client_stream_factory_.set_default_proof_verify_details( |
958 | 960 &verify_details); |
959 | 961 |
960 host_resolver_.set_synchronous_mode(true); | 962 host_resolver_.set_synchronous_mode(true); |
961 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 963 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
962 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 964 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
963 | 965 |
964 // Disable connection pooling. | 966 // Disable connection pooling. |
965 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); | 967 QuicStreamFactoryPeer::DisableConnectionPooling(&factory_); |
966 | 968 |
967 QuicStreamRequest request(&factory_); | 969 QuicStreamRequest request(&factory_); |
968 is_https_ = true; | 970 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, | 1020 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
1019 backup_pin); | 1021 backup_pin); |
1020 | 1022 |
1021 // Load a cert that is valid for: | 1023 // Load a cert that is valid for: |
1022 // www.example.org (server1) | 1024 // www.example.org (server1) |
1023 // mail.example.org (server2) | 1025 // mail.example.org (server2) |
1024 base::FilePath certs_dir = GetTestCertsDirectory(); | 1026 base::FilePath certs_dir = GetTestCertsDirectory(); |
1025 scoped_refptr<X509Certificate> test_cert( | 1027 scoped_refptr<X509Certificate> test_cert( |
1026 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 1028 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
1027 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); | 1029 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
1028 ProofVerifyDetailsChromium verify_details; | 1030 |
1029 verify_details.cert_verify_result.verified_cert = test_cert; | 1031 ProofVerifyDetailsChromium verify_details1; |
1030 verify_details.cert_verify_result.is_issued_by_known_root = true; | 1032 verify_details1.cert_verify_result.verified_cert = test_cert; |
1031 verify_details.cert_verify_result.public_key_hashes.push_back( | 1033 verify_details1.cert_verify_result.is_issued_by_known_root = true; |
| 1034 verify_details1.cert_verify_result.public_key_hashes.push_back( |
1032 test::GetTestHashValue(bad_pin)); | 1035 test::GetTestHashValue(bad_pin)); |
1033 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 1036 crypto_client_stream_factory_.set_proof_verify_details_for_server( |
| 1037 &verify_details1, |
| 1038 QuicServerId(server1, /*is_https=*/true, privacy_mode_)); |
1034 | 1039 |
| 1040 ProofVerifyDetailsChromium verify_details2; |
| 1041 verify_details2.cert_verify_result.verified_cert = test_cert; |
| 1042 verify_details2.cert_verify_result.is_issued_by_known_root = true; |
| 1043 verify_details2.cert_verify_result.public_key_hashes.push_back( |
| 1044 test::GetTestHashValue(primary_pin)); |
| 1045 crypto_client_stream_factory_.set_proof_verify_details_for_server( |
| 1046 &verify_details2, |
| 1047 QuicServerId(server2, /*is_https=*/true, privacy_mode_)); |
1035 | 1048 |
1036 host_resolver_.set_synchronous_mode(true); | 1049 host_resolver_.set_synchronous_mode(true); |
1037 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 1050 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
1038 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1051 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
1039 | 1052 |
1040 QuicStreamRequest request(&factory_); | 1053 QuicStreamRequest request(&factory_); |
1041 is_https_ = true; | 1054 is_https_ = true; |
1042 EXPECT_EQ(OK, | 1055 EXPECT_EQ(OK, |
1043 request.Request(server1, | 1056 request.Request(server1, |
1044 is_https_, | 1057 is_https_, |
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1831 EXPECT_TRUE(socket_data.at_read_eof()); | 1844 EXPECT_TRUE(socket_data.at_read_eof()); |
1832 EXPECT_TRUE(socket_data.at_write_eof()); | 1845 EXPECT_TRUE(socket_data.at_write_eof()); |
1833 EXPECT_TRUE(socket_data2.at_read_eof()); | 1846 EXPECT_TRUE(socket_data2.at_read_eof()); |
1834 EXPECT_TRUE(socket_data2.at_write_eof()); | 1847 EXPECT_TRUE(socket_data2.at_write_eof()); |
1835 EXPECT_TRUE(socket_data3.at_read_eof()); | 1848 EXPECT_TRUE(socket_data3.at_read_eof()); |
1836 EXPECT_TRUE(socket_data3.at_write_eof()); | 1849 EXPECT_TRUE(socket_data3.at_write_eof()); |
1837 } | 1850 } |
1838 | 1851 |
1839 } // namespace test | 1852 } // namespace test |
1840 } // namespace net | 1853 } // namespace net |
OLD | NEW |