diff options
author | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 19:55:27 +0000 |
---|---|---|
committer | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 19:55:27 +0000 |
commit | 4f4de7e6e1393bf1b068337cdf8895e91addfa72 (patch) | |
tree | 872947e61b717b7ad582a2c5688e2bdb1e0b2b1f /net/socket/ssl_client_socket_win.h | |
parent | f7002808992b52e582dd2fff531863de7b673b9e (diff) | |
download | chromium_src-4f4de7e6e1393bf1b068337cdf8895e91addfa72.zip chromium_src-4f4de7e6e1393bf1b068337cdf8895e91addfa72.tar.gz chromium_src-4f4de7e6e1393bf1b068337cdf8895e91addfa72.tar.bz2 |
Correctly handle SSL Client Authentication requests when connecting
to an HTTPS/SPDY proxy. Modify SSLClientSocket classes to correctly set the host_and_port field of the cert_request_info. Modify HttpNetworkTransaction to use this field when populating the SSL client auth cache.
BUG=59292
TEST=HttpProxyClientSocketPoolTest.SslClientAuth
Review URL: http://codereview.chromium.org/4339001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65976 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/ssl_client_socket_win.h')
-rw-r--r-- | net/socket/ssl_client_socket_win.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/net/socket/ssl_client_socket_win.h b/net/socket/ssl_client_socket_win.h index 4f96e80..61c67f0 100644 --- a/net/socket/ssl_client_socket_win.h +++ b/net/socket/ssl_client_socket_win.h @@ -17,25 +17,29 @@ #include "base/scoped_ptr.h" #include "net/base/cert_verify_result.h" #include "net/base/completion_callback.h" +#include "net/base/host_port_pair.h" #include "net/base/net_log.h" #include "net/base/ssl_config_service.h" #include "net/socket/ssl_client_socket.h" namespace net { +class BoundNetLog; class CertVerifier; class ClientSocketHandle; -class BoundNetLog; +class HostPortPair; // An SSL client socket implemented with the Windows Schannel. class SSLClientSocketWin : public SSLClientSocket { public: // Takes ownership of the |transport_socket|, which must already be connected. - // The given hostname will be compared with the name(s) in the server's - // certificate during the SSL handshake. ssl_config specifies the SSL - // settings. + // The hostname specified in |host_and_port| will be compared with the name(s) + // in the server's certificate during the SSL handshake. If SSL client + // authentication is requested, the host_and_port field of SSLCertRequestInfo + // will be populated with |host_and_port|. |ssl_config| specifies + // the SSL settings. SSLClientSocketWin(ClientSocketHandle* transport_socket, - const std::string& hostname, + const HostPortPair& host_and_port, const SSLConfig& ssl_config); ~SSLClientSocketWin(); @@ -103,7 +107,7 @@ class SSLClientSocketWin : public SSLClientSocket { CompletionCallbackImpl<SSLClientSocketWin> write_callback_; scoped_ptr<ClientSocketHandle> transport_; - std::string hostname_; + HostPortPair host_and_port_; SSLConfig ssl_config_; // User function to callback when the Connect() completes. |