summaryrefslogtreecommitdiffstats
path: root/net/socket
diff options
context:
space:
mode:
Diffstat (limited to 'net/socket')
-rw-r--r--net/socket/socket_test_util.cc5
-rw-r--r--net/socket/socket_test_util.h1
-rw-r--r--net/socket/ssl_client_socket.h5
-rw-r--r--net/socket/ssl_client_socket_nss.cc8
-rw-r--r--net/socket/ssl_client_socket_nss.h1
-rw-r--r--net/socket/ssl_client_socket_openssl.cc4
-rw-r--r--net/socket/ssl_client_socket_openssl.h1
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.