Index: net/socket/ssl_client_socket_openssl.h |
diff --git a/net/socket/ssl_client_socket_openssl.h b/net/socket/ssl_client_socket_openssl.h |
index 1799a629f474143fdac63699677875f689ef62ba..ce450aef299c7257ec448f02bee6c95724f23baa 100644 |
--- a/net/socket/ssl_client_socket_openssl.h |
+++ b/net/socket/ssl_client_socket_openssl.h |
@@ -7,6 +7,7 @@ |
#pragma once |
#include "base/scoped_ptr.h" |
+#include "net/base/cert_verify_result.h" |
#include "net/base/completion_callback.h" |
#include "net/base/io_buffer.h" |
#include "net/base/ssl_config_service.h" |
@@ -19,6 +20,7 @@ typedef struct x509_store_ctx_st X509_STORE_CTX; |
namespace net { |
+class CertVerifier; |
class SSLCertRequestInfo; |
class SSLConfig; |
class SSLInfo; |
@@ -68,7 +70,11 @@ class SSLClientSocketOpenSSL : public SSLClientSocket { |
bool DoTransportIO(); |
int DoHandshake(); |
+ int DoVerifyCert(int result); |
+ int DoVerifyCertComplete(int result); |
void DoConnectCallback(int result); |
+ void InvalidateSessionIfBadCertificate(); |
+ X509Certificate* UpdateServerCert(); |
void OnHandshakeIOComplete(int result); |
void OnSendComplete(int result); |
@@ -106,11 +112,18 @@ class SSLClientSocketOpenSSL : public SSLClientSocket { |
scoped_refptr<IOBuffer> user_write_buf_; |
int user_write_buf_len_; |
+ // Set when handshake finishes. |
+ scoped_refptr<X509Certificate> server_cert_; |
+ CertVerifyResult server_cert_verify_result_; |
+ |
// Stores client authentication information between ClientAuthHandler and |
// GetSSLCertRequestInfo calls. |
std::vector<scoped_refptr<X509Certificate> > client_certs_; |
bool client_auth_cert_needed_; |
+ scoped_ptr<CertVerifier> verifier_; |
+ CompletionCallbackImpl<SSLClientSocketOpenSSL> handshake_io_callback_; |
+ |
// OpenSSL stuff |
SSL* ssl_; |
BIO* transport_bio_; |