Chromium Code Reviews| Index: net/socket/ssl_client_socket_nss.h |
| diff --git a/net/socket/ssl_client_socket_nss.h b/net/socket/ssl_client_socket_nss.h |
| index 47fed74d9d3361f131840b487e0971929b224b9f..2e5e0522a609d9aa5ed8f329c89ae54bf4ebaca3 100644 |
| --- a/net/socket/ssl_client_socket_nss.h |
| +++ b/net/socket/ssl_client_socket_nss.h |
| @@ -42,6 +42,7 @@ class CTVerifier; |
| class ClientSocketHandle; |
| class ServerBoundCertService; |
| class SingleRequestCertVerifier; |
| +class SSLHostInfo; |
|
wtc
2014/01/15 19:08:59
This forward declaration is not necessary because
ramant (doing other things)
2014/01/18 00:21:56
Done.
|
| class TransportSecurityState; |
| class X509Certificate; |
| @@ -64,6 +65,7 @@ class SSLClientSocketNSS : public SSLClientSocket { |
| scoped_ptr<ClientSocketHandle> transport_socket, |
| const HostPortPair& host_and_port, |
| const SSLConfig& ssl_config, |
| + SSLHostInfo* ssl_host_info, |
| const SSLClientSocketContext& context); |
| virtual ~SSLClientSocketNSS(); |
| @@ -113,6 +115,7 @@ class SSLClientSocketNSS : public SSLClientSocket { |
| enum State { |
| STATE_NONE, |
| + STATE_LOAD_SSL_HOST_INFO, |
| STATE_HANDSHAKE, |
| STATE_HANDSHAKE_COMPLETE, |
| STATE_VERIFY_CERT, |
| @@ -131,11 +134,15 @@ class SSLClientSocketNSS : public SSLClientSocket { |
| void DoConnectCallback(int result); |
| void OnHandshakeIOComplete(int result); |
| + void LoadSSLHostInfo(); |
| + int DoLoadSSLHostInfo(); |
| + |
| int DoHandshakeLoop(int last_io_result); |
| int DoHandshake(); |
| int DoHandshakeComplete(int result); |
| int DoVerifyCert(int result); |
| int DoVerifyCertComplete(int result); |
| + void SaveSSLHostInfo(); |
| void VerifyCT(); |
| @@ -163,7 +170,11 @@ class SSLClientSocketNSS : public SSLClientSocket { |
| CompletionCallback user_connect_callback_; |
| - CertVerifyResult server_cert_verify_result_; |
| + // |server_cert_verify_result_| points at the verification result, which may, |
| + // or may not be, |&local_server_cert_verify_result_|, depending on whether |
| + // we used an SSLHostInfo's verification. |
| + const CertVerifyResult* server_cert_verify_result_; |
| + CertVerifyResult local_server_cert_verify_result_; |
| CertVerifier* const cert_verifier_; |
| scoped_ptr<SingleRequestCertVerifier> verifier_; |
| @@ -194,6 +205,8 @@ class SSLClientSocketNSS : public SSLClientSocket { |
| base::TimeTicks start_cert_verification_time_; |
| + scoped_ptr<SSLHostInfo> ssl_host_info_; |
| + |
| TransportSecurityState* transport_security_state_; |
| // The following two variables are added for debugging bug 65948. Will |