diff options
Diffstat (limited to 'net/socket')
-rw-r--r-- | net/socket/socket_test_util.cc | 5 | ||||
-rw-r--r-- | net/socket/socket_test_util.h | 1 | ||||
-rw-r--r-- | net/socket/ssl_client_socket.h | 5 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_nss.cc | 8 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_nss.h | 1 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_openssl.cc | 4 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_openssl.h | 1 |
7 files changed, 25 insertions, 0 deletions
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc index 072cbe0..f10965c 100644 --- a/net/socket/socket_test_util.cc +++ b/net/socket/socket_test_util.cc @@ -833,6 +833,11 @@ Error MockClientSocket::GetSignedEKMForTokenBinding(crypto::ECPrivateKey* key, return ERR_NOT_IMPLEMENTED; } +crypto::ECPrivateKey* MockClientSocket::GetChannelIDKey() const { + NOTREACHED(); + return NULL; +} + SSLFailureState MockClientSocket::GetSSLFailureState() const { return IsConnected() ? SSL_FAILURE_NONE : SSL_FAILURE_UNKNOWN; } diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h index 3470b5d..7f200549 100644 --- a/net/socket/socket_test_util.h +++ b/net/socket/socket_test_util.h @@ -581,6 +581,7 @@ class MockClientSocket : public SSLClientSocket { ChannelIDService* GetChannelIDService() const override; Error GetSignedEKMForTokenBinding(crypto::ECPrivateKey* key, std::vector<uint8_t>* out) override; + crypto::ECPrivateKey* GetChannelIDKey() const override; SSLFailureState GetSSLFailureState() const override; protected: diff --git a/net/socket/ssl_client_socket.h b/net/socket/ssl_client_socket.h index 9f6551a..10affda 100644 --- a/net/socket/ssl_client_socket.h +++ b/net/socket/ssl_client_socket.h @@ -153,6 +153,11 @@ class NET_EXPORT SSLClientSocket : public SSLSocket { virtual Error GetSignedEKMForTokenBinding(crypto::ECPrivateKey* key, std::vector<uint8_t>* out) = 0; + // This method is only for debugging crbug.com/548423 and will be removed when + // that bug is closed. This returns the channel ID key that was used when + // establishing the connection (or NULL if no channel ID was used). + virtual crypto::ECPrivateKey* GetChannelIDKey() const = 0; + // Returns the state of the handshake when it failed, or |SSL_FAILURE_NONE| if // the handshake succeeded. This is used to classify causes of the TLS version // fallback. diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc index 9526c1c..38f2a78 100644 --- a/net/socket/ssl_client_socket_nss.cc +++ b/net/socket/ssl_client_socket_nss.cc @@ -521,6 +521,10 @@ class SSLClientSocketNSS::Core : public base::RefCountedThreadSafe<Core> { // verified, and may not be called within an NSS callback. void CacheSessionIfNecessary(); + crypto::ECPrivateKey* GetChannelIDKey() const { + return channel_id_key_.get(); + } + private: friend class base::RefCountedThreadSafe<Core>; ~Core(); @@ -3198,6 +3202,10 @@ Error SSLClientSocketNSS::GetSignedEKMForTokenBinding( return ERR_NOT_IMPLEMENTED; } +crypto::ECPrivateKey* SSLClientSocketNSS::GetChannelIDKey() const { + return core_->GetChannelIDKey(); +} + SSLFailureState SSLClientSocketNSS::GetSSLFailureState() const { if (completed_handshake_) return SSL_FAILURE_NONE; diff --git a/net/socket/ssl_client_socket_nss.h b/net/socket/ssl_client_socket_nss.h index 0df9d4f..d4d1740 100644 --- a/net/socket/ssl_client_socket_nss.h +++ b/net/socket/ssl_client_socket_nss.h @@ -101,6 +101,7 @@ class SSLClientSocketNSS : public SSLClientSocket { ChannelIDService* GetChannelIDService() const override; Error GetSignedEKMForTokenBinding(crypto::ECPrivateKey* key, std::vector<uint8_t>* out) override; + crypto::ECPrivateKey* GetChannelIDKey() const override; SSLFailureState GetSSLFailureState() const override; private: diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc index e36346f..9e23a4d 100644 --- a/net/socket/ssl_client_socket_openssl.cc +++ b/net/socket/ssl_client_socket_openssl.cc @@ -588,6 +588,10 @@ Error SSLClientSocketOpenSSL::GetSignedEKMForTokenBinding( return OK; } +crypto::ECPrivateKey* SSLClientSocketOpenSSL::GetChannelIDKey() const { + return channel_id_key_.get(); +} + SSLFailureState SSLClientSocketOpenSSL::GetSSLFailureState() const { return ssl_failure_state_; } diff --git a/net/socket/ssl_client_socket_openssl.h b/net/socket/ssl_client_socket_openssl.h index 70d195a..d1078a9 100644 --- a/net/socket/ssl_client_socket_openssl.h +++ b/net/socket/ssl_client_socket_openssl.h @@ -78,6 +78,7 @@ class SSLClientSocketOpenSSL : public SSLClientSocket { ChannelIDService* GetChannelIDService() const override; Error GetSignedEKMForTokenBinding(crypto::ECPrivateKey* key, std::vector<uint8_t>* out) override; + crypto::ECPrivateKey* GetChannelIDKey() const override; SSLFailureState GetSSLFailureState() const override; // SSLSocket implementation. |