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

Unified Diff: net/socket/ssl_client_socket_nss.h

Issue 135373002: Added SSLHostInfo. Storing of server host info to our standard disk cache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge with TOT Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698