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

Side by Side Diff: net/socket/ssl_client_socket_pool_unittest.cc

Issue 2067843003: Require a CTVerifier and CTPolicyEnforcer for TLS/QUIC sockets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixup Created 4 years, 6 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/socket/ssl_client_socket_impl.cc ('k') | net/socket/ssl_client_socket_unittest.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/http/http_proxy_client_socket_pool.h" 5 #include "net/http/http_proxy_client_socket_pool.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "net/base/auth.h" 12 #include "net/base/auth.h"
13 #include "net/base/load_timing_info.h" 13 #include "net/base/load_timing_info.h"
14 #include "net/base/load_timing_info_test_util.h" 14 #include "net/base/load_timing_info_test_util.h"
15 #include "net/base/net_errors.h" 15 #include "net/base/net_errors.h"
16 #include "net/base/test_completion_callback.h" 16 #include "net/base/test_completion_callback.h"
17 #include "net/cert/cert_verifier.h" 17 #include "net/cert/ct_policy_enforcer.h"
18 #include "net/cert/mock_cert_verifier.h"
19 #include "net/cert/multi_log_ct_verifier.h"
18 #include "net/dns/mock_host_resolver.h" 20 #include "net/dns/mock_host_resolver.h"
19 #include "net/http/http_auth_handler_factory.h" 21 #include "net/http/http_auth_handler_factory.h"
20 #include "net/http/http_network_session.h" 22 #include "net/http/http_network_session.h"
21 #include "net/http/http_request_headers.h" 23 #include "net/http/http_request_headers.h"
22 #include "net/http/http_response_headers.h" 24 #include "net/http/http_response_headers.h"
23 #include "net/http/http_server_properties_impl.h" 25 #include "net/http/http_server_properties_impl.h"
24 #include "net/http/transport_security_state.h" 26 #include "net/http/transport_security_state.h"
25 #include "net/proxy/proxy_service.h" 27 #include "net/proxy/proxy_service.h"
26 #include "net/socket/client_socket_handle.h" 28 #include "net/socket/client_socket_handle.h"
27 #include "net/socket/next_proto.h" 29 #include "net/socket/next_proto.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 ExpectConnectTimingHasTimes(load_timing_info.connect_timing, 73 ExpectConnectTimingHasTimes(load_timing_info.connect_timing,
72 CONNECT_TIMING_HAS_SSL_TIMES); 74 CONNECT_TIMING_HAS_SSL_TIMES);
73 ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info); 75 ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info);
74 } 76 }
75 77
76 class SSLClientSocketPoolTest 78 class SSLClientSocketPoolTest
77 : public testing::Test, 79 : public testing::Test,
78 public ::testing::WithParamInterface<NextProto> { 80 public ::testing::WithParamInterface<NextProto> {
79 protected: 81 protected:
80 SSLClientSocketPoolTest() 82 SSLClientSocketPoolTest()
81 : transport_security_state_(new TransportSecurityState), 83 : cert_verifier_(new MockCertVerifier),
84 transport_security_state_(new TransportSecurityState),
82 proxy_service_(ProxyService::CreateDirect()), 85 proxy_service_(ProxyService::CreateDirect()),
83 ssl_config_service_(new SSLConfigServiceDefaults), 86 ssl_config_service_(new SSLConfigServiceDefaults),
84 http_auth_handler_factory_( 87 http_auth_handler_factory_(
85 HttpAuthHandlerFactory::CreateDefault(&host_resolver_)), 88 HttpAuthHandlerFactory::CreateDefault(&host_resolver_)),
86 http_server_properties_(new HttpServerPropertiesImpl), 89 http_server_properties_(new HttpServerPropertiesImpl),
87 session_(CreateNetworkSession()), 90 session_(CreateNetworkSession()),
88 direct_transport_socket_params_(new TransportSocketParams( 91 direct_transport_socket_params_(new TransportSocketParams(
89 HostPortPair("host", 443), 92 HostPortPair("host", 443),
90 false, 93 false,
91 OnHostResolutionCallback(), 94 OnHostResolutionCallback(),
(...skipping 28 matching lines...) Expand all
120 &transport_socket_pool_, 123 &transport_socket_pool_,
121 NULL, 124 NULL,
122 NULL) { 125 NULL) {
123 scoped_refptr<SSLConfigService> ssl_config_service( 126 scoped_refptr<SSLConfigService> ssl_config_service(
124 new SSLConfigServiceDefaults); 127 new SSLConfigServiceDefaults);
125 ssl_config_service->GetSSLConfig(&ssl_config_); 128 ssl_config_service->GetSSLConfig(&ssl_config_);
126 } 129 }
127 130
128 void CreatePool(bool transport_pool, bool http_proxy_pool, bool socks_pool) { 131 void CreatePool(bool transport_pool, bool http_proxy_pool, bool socks_pool) {
129 pool_.reset(new SSLClientSocketPool( 132 pool_.reset(new SSLClientSocketPool(
130 kMaxSockets, kMaxSocketsPerGroup, NULL /* cert_verifier */, 133 kMaxSockets, kMaxSocketsPerGroup, cert_verifier_.get(),
131 NULL /* channel_id_service */, NULL /* transport_security_state */, 134 NULL /* channel_id_service */, transport_security_state_.get(),
132 NULL /* cert_transparency_verifier */, NULL /* ct_policy_enforcer */, 135 &ct_verifier_, &ct_policy_enforcer_,
133 std::string() /* ssl_session_cache_shard */, &socket_factory_, 136 std::string() /* ssl_session_cache_shard */, &socket_factory_,
134 transport_pool ? &transport_socket_pool_ : NULL, 137 transport_pool ? &transport_socket_pool_ : NULL,
135 socks_pool ? &socks_socket_pool_ : NULL, 138 socks_pool ? &socks_socket_pool_ : NULL,
136 http_proxy_pool ? &http_proxy_socket_pool_ : NULL, NULL, NULL)); 139 http_proxy_pool ? &http_proxy_socket_pool_ : NULL, NULL, NULL));
137 } 140 }
138 141
139 scoped_refptr<SSLSocketParams> SSLParams(ProxyServer::Scheme proxy, 142 scoped_refptr<SSLSocketParams> SSLParams(ProxyServer::Scheme proxy,
140 bool expect_spdy) { 143 bool expect_spdy) {
141 return make_scoped_refptr(new SSLSocketParams( 144 return make_scoped_refptr(new SSLSocketParams(
142 proxy == ProxyServer::SCHEME_DIRECT ? direct_transport_socket_params_ 145 proxy == ProxyServer::SCHEME_DIRECT ? direct_transport_socket_params_
(...skipping 13 matching lines...) Expand all
156 "Basic realm=MyRealm1", 159 "Basic realm=MyRealm1",
157 AuthCredentials(kFoo, kBar), 160 AuthCredentials(kFoo, kBar),
158 "/"); 161 "/");
159 } 162 }
160 163
161 HttpNetworkSession* CreateNetworkSession() { 164 HttpNetworkSession* CreateNetworkSession() {
162 HttpNetworkSession::Params params; 165 HttpNetworkSession::Params params;
163 params.host_resolver = &host_resolver_; 166 params.host_resolver = &host_resolver_;
164 params.cert_verifier = cert_verifier_.get(); 167 params.cert_verifier = cert_verifier_.get();
165 params.transport_security_state = transport_security_state_.get(); 168 params.transport_security_state = transport_security_state_.get();
169 params.cert_transparency_verifier = &ct_verifier_;
170 params.ct_policy_enforcer = &ct_policy_enforcer_;
166 params.proxy_service = proxy_service_.get(); 171 params.proxy_service = proxy_service_.get();
167 params.client_socket_factory = &socket_factory_; 172 params.client_socket_factory = &socket_factory_;
168 params.ssl_config_service = ssl_config_service_.get(); 173 params.ssl_config_service = ssl_config_service_.get();
169 params.http_auth_handler_factory = http_auth_handler_factory_.get(); 174 params.http_auth_handler_factory = http_auth_handler_factory_.get();
170 params.http_server_properties = http_server_properties_.get(); 175 params.http_server_properties = http_server_properties_.get();
171 params.spdy_default_protocol = GetParam(); 176 params.spdy_default_protocol = GetParam();
172 return new HttpNetworkSession(params); 177 return new HttpNetworkSession(params);
173 } 178 }
174 179
175 void TestIPPoolingDisabled(SSLSocketDataProvider* ssl); 180 void TestIPPoolingDisabled(SSLSocketDataProvider* ssl);
176 181
177 MockClientSocketFactory socket_factory_; 182 MockClientSocketFactory socket_factory_;
178 MockCachingHostResolver host_resolver_; 183 MockCachingHostResolver host_resolver_;
179 std::unique_ptr<CertVerifier> cert_verifier_; 184 std::unique_ptr<CertVerifier> cert_verifier_;
180 std::unique_ptr<TransportSecurityState> transport_security_state_; 185 std::unique_ptr<TransportSecurityState> transport_security_state_;
186 MultiLogCTVerifier ct_verifier_;
187 CTPolicyEnforcer ct_policy_enforcer_;
181 const std::unique_ptr<ProxyService> proxy_service_; 188 const std::unique_ptr<ProxyService> proxy_service_;
182 const scoped_refptr<SSLConfigService> ssl_config_service_; 189 const scoped_refptr<SSLConfigService> ssl_config_service_;
183 const std::unique_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_; 190 const std::unique_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_;
184 const std::unique_ptr<HttpServerPropertiesImpl> http_server_properties_; 191 const std::unique_ptr<HttpServerPropertiesImpl> http_server_properties_;
185 const std::unique_ptr<HttpNetworkSession> session_; 192 const std::unique_ptr<HttpNetworkSession> session_;
186 193
187 scoped_refptr<TransportSocketParams> direct_transport_socket_params_; 194 scoped_refptr<TransportSocketParams> direct_transport_socket_params_;
188 MockTransportClientSocketPool transport_socket_pool_; 195 MockTransportClientSocketPool transport_socket_pool_;
189 196
190 scoped_refptr<TransportSocketParams> proxy_transport_socket_params_; 197 scoped_refptr<TransportSocketParams> proxy_transport_socket_params_;
(...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 ssl.channel_id_sent = true; 938 ssl.channel_id_sent = true;
932 ssl.SetNextProto(GetParam()); 939 ssl.SetNextProto(GetParam());
933 TestIPPoolingDisabled(&ssl); 940 TestIPPoolingDisabled(&ssl);
934 } 941 }
935 942
936 // It would be nice to also test the timeouts in SSLClientSocketPool. 943 // It would be nice to also test the timeouts in SSLClientSocketPool.
937 944
938 } // namespace 945 } // namespace
939 946
940 } // namespace net 947 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/ssl_client_socket_impl.cc ('k') | net/socket/ssl_client_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698