From feb79bcd1b3f755b1125ba471c4e17c7b7ede66d Mon Sep 17 00:00:00 2001 From: "rkn@chromium.org" Date: Thu, 21 Jul 2011 16:55:17 +0000 Subject: Added an OriginBoundCertStore field to the SSLClientSocketNSS class and did the plumbing to pass this field through the layers. In addition, this CL groups several fields together into a single struct |SSLClientSocket::Context|. BUG=None TEST=None Review URL: http://codereview.chromium.org/7315009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93416 0039d316-1c4b-4281-b951-d872f2087c98 --- net/socket_stream/socket_stream.cc | 7 ++++++- net/socket_stream/socket_stream.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'net/socket_stream') diff --git a/net/socket_stream/socket_stream.cc b/net/socket_stream/socket_stream.cc index b8e9773..74eabec 100644 --- a/net/socket_stream/socket_stream.cc +++ b/net/socket_stream/socket_stream.cc @@ -53,6 +53,7 @@ SocketStream::SocketStream(const GURL& url, Delegate* delegate) next_state_(STATE_NONE), host_resolver_(NULL), cert_verifier_(NULL), + origin_bound_cert_service_(NULL), http_auth_handler_factory_(NULL), factory_(ClientSocketFactory::GetDefaultFactory()), proxy_mode_(kDirectConnection), @@ -121,6 +122,7 @@ void SocketStream::set_context(URLRequestContext* context) { if (context_) { host_resolver_ = context_->host_resolver(); cert_verifier_ = context_->cert_verifier(); + origin_bound_cert_service_ = context_->origin_bound_cert_service(); http_auth_handler_factory_ = context_->http_auth_handler_factory(); } } @@ -850,12 +852,15 @@ int SocketStream::DoSOCKSConnectComplete(int result) { int SocketStream::DoSSLConnect() { DCHECK(factory_); + SSLClientSocketContext ssl_context; + ssl_context.cert_verifier = cert_verifier_; + ssl_context.origin_bound_cert_service = origin_bound_cert_service_; // TODO(agl): look into plumbing SSLHostInfo here. socket_.reset(factory_->CreateSSLClientSocket(socket_.release(), HostPortPair::FromURL(url_), ssl_config_, NULL /* ssl_host_info */, - cert_verifier_)); + ssl_context)); next_state_ = STATE_SSL_CONNECT_COMPLETE; metrics_->OnCountConnectionType(SocketStreamMetrics::SSL_CONNECTION); return socket_->Connect(&io_callback_); diff --git a/net/socket_stream/socket_stream.h b/net/socket_stream/socket_stream.h index 3cbea0f..19331f4 100644 --- a/net/socket_stream/socket_stream.h +++ b/net/socket_stream/socket_stream.h @@ -304,6 +304,7 @@ class NET_API SocketStream : public base::RefCountedThreadSafe { State next_state_; HostResolver* host_resolver_; CertVerifier* cert_verifier_; + OriginBoundCertService* origin_bound_cert_service_; HttpAuthHandlerFactory* http_auth_handler_factory_; ClientSocketFactory* factory_; -- cgit v1.1