| 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 <memory> | 5 #include <memory> |
| 6 #include <utility> | 6 #include <utility> |
| 7 | 7 |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 | 10 |
| (...skipping 6198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6209 request->Start(); | 6209 request->Start(); |
| 6210 base::RunLoop().Run(); | 6210 base::RunLoop().Run(); |
| 6211 | 6211 |
| 6212 TransportSecurityState* security_state = | 6212 TransportSecurityState* security_state = |
| 6213 default_context_.transport_security_state(); | 6213 default_context_.transport_security_state(); |
| 6214 TransportSecurityState::PKPState pkp_state; | 6214 TransportSecurityState::PKPState pkp_state; |
| 6215 EXPECT_FALSE( | 6215 EXPECT_FALSE( |
| 6216 security_state->GetDynamicPKPState(test_server_hostname, &pkp_state)); | 6216 security_state->GetDynamicPKPState(test_server_hostname, &pkp_state)); |
| 6217 } | 6217 } |
| 6218 | 6218 |
| 6219 TEST_F(URLRequestTestHTTP, PKPBypassRecorded) { |
| 6220 EmbeddedTestServer https_test_server(net::EmbeddedTestServer::TYPE_HTTPS); |
| 6221 https_test_server.SetSSLConfig( |
| 6222 net::EmbeddedTestServer::CERT_COMMON_NAME_IS_DOMAIN); |
| 6223 https_test_server.ServeFilesFromSourceDirectory( |
| 6224 base::FilePath(kTestFilePath)); |
| 6225 ASSERT_TRUE(https_test_server.Start()); |
| 6226 |
| 6227 // Set up a MockCertVerifier to be a local root that violates the pin |
| 6228 scoped_refptr<X509Certificate> cert = https_test_server.GetCertificate(); |
| 6229 ASSERT_TRUE(cert); |
| 6230 |
| 6231 MockCertVerifier cert_verifier; |
| 6232 CertVerifyResult verify_result; |
| 6233 verify_result.verified_cert = cert; |
| 6234 verify_result.is_issued_by_known_root = false; |
| 6235 HashValue hash; |
| 6236 ASSERT_TRUE( |
| 6237 hash.FromString("sha256/1111111111111111111111111111111111111111111=")); |
| 6238 verify_result.public_key_hashes.push_back(hash); |
| 6239 cert_verifier.AddResultForCert(cert.get(), verify_result, OK); |
| 6240 cert_verifier.set_default_result(OK); |
| 6241 |
| 6242 std::string test_server_hostname = https_test_server.GetURL("/").host(); |
| 6243 |
| 6244 // Set up HPKP |
| 6245 base::Time current_time = base::Time::Now(); |
| 6246 const base::Time expiry = current_time + base::TimeDelta::FromSeconds(10000); |
| 6247 HashValue pin; |
| 6248 ASSERT_TRUE( |
| 6249 pin.FromString("sha256/2222222222222222222222222222222222222222222=")); |
| 6250 HashValueVector hashes; |
| 6251 hashes.push_back(pin); |
| 6252 GURL report_uri(kHPKPReportUri); |
| 6253 TransportSecurityState security_state; |
| 6254 security_state.AddHPKP(test_server_hostname, expiry, |
| 6255 false, /* include subdomains */ |
| 6256 hashes, report_uri); |
| 6257 |
| 6258 TestNetworkDelegate network_delegate; |
| 6259 TestURLRequestContext context(true); |
| 6260 context.set_transport_security_state(&security_state); |
| 6261 context.set_network_delegate(&network_delegate); |
| 6262 context.set_cert_verifier(&cert_verifier); |
| 6263 context.Init(); |
| 6264 |
| 6265 TestDelegate d; |
| 6266 std::unique_ptr<URLRequest> request(context.CreateRequest( |
| 6267 https_test_server.GetURL("/hpkp-headers.html"), DEFAULT_PRIORITY, &d)); |
| 6268 request->Start(); |
| 6269 base::RunLoop().Run(); |
| 6270 |
| 6271 TransportSecurityState::PKPState pkp_state; |
| 6272 EXPECT_TRUE( |
| 6273 security_state.GetDynamicPKPState(test_server_hostname, &pkp_state)); |
| 6274 EXPECT_TRUE(request->ssl_info().pkp_bypassed); |
| 6275 } |
| 6276 |
| 6219 TEST_F(URLRequestTestHTTP, ProcessSTSOnce) { | 6277 TEST_F(URLRequestTestHTTP, ProcessSTSOnce) { |
| 6220 EmbeddedTestServer https_test_server(net::EmbeddedTestServer::TYPE_HTTPS); | 6278 EmbeddedTestServer https_test_server(net::EmbeddedTestServer::TYPE_HTTPS); |
| 6221 https_test_server.SetSSLConfig( | 6279 https_test_server.SetSSLConfig( |
| 6222 net::EmbeddedTestServer::CERT_COMMON_NAME_IS_DOMAIN); | 6280 net::EmbeddedTestServer::CERT_COMMON_NAME_IS_DOMAIN); |
| 6223 https_test_server.ServeFilesFromSourceDirectory( | 6281 https_test_server.ServeFilesFromSourceDirectory( |
| 6224 base::FilePath(kTestFilePath)); | 6282 base::FilePath(kTestFilePath)); |
| 6225 ASSERT_TRUE(https_test_server.Start()); | 6283 ASSERT_TRUE(https_test_server.Start()); |
| 6226 | 6284 |
| 6227 std::string test_server_hostname = https_test_server.GetURL("/").host(); | 6285 std::string test_server_hostname = https_test_server.GetURL("/").host(); |
| 6228 | 6286 |
| (...skipping 3812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10041 AddTestInterceptor()->set_main_intercept_job(std::move(job)); | 10099 AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
| 10042 | 10100 |
| 10043 req->Start(); | 10101 req->Start(); |
| 10044 req->Cancel(); | 10102 req->Cancel(); |
| 10045 base::RunLoop().RunUntilIdle(); | 10103 base::RunLoop().RunUntilIdle(); |
| 10046 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 10104 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
| 10047 EXPECT_EQ(0, d.received_redirect_count()); | 10105 EXPECT_EQ(0, d.received_redirect_count()); |
| 10048 } | 10106 } |
| 10049 | 10107 |
| 10050 } // namespace net | 10108 } // namespace net |
| OLD | NEW |