Index: net/socket/ssl_server_socket_nss.cc |
diff --git a/net/socket/ssl_server_socket_nss.cc b/net/socket/ssl_server_socket_nss.cc |
index a43dbfe6b6f1d0f445773a6aac3ea062f8c70f8f..7516b62ab4c8b6a6b9fe6024e4974147d5da6134 100644 |
--- a/net/socket/ssl_server_socket_nss.cc |
+++ b/net/socket/ssl_server_socket_nss.cc |
@@ -169,6 +169,22 @@ int SSLServerSocketNSS::ExportKeyingMaterial(const base::StringPiece& label, |
return OK; |
} |
+int SSLServerSocketNSS::GetTLSUniqueChannelBinding(std::string* out) { |
+ if (!IsConnected()) |
+ return ERR_SOCKET_NOT_CONNECTED; |
+ unsigned char buf[64]; |
+ unsigned int len; |
+ SECStatus result = SSL_GetChannelBinding(nss_fd_, |
+ SSL_CHANNEL_BINDING_TLS_UNIQUE, |
+ buf, &len, arraysize(buf)); |
+ if (result != SECSuccess) { |
+ LogFailedNSSFunction(net_log_, "SSL_GetChannelBinding", ""); |
+ return MapNSSError(PORT_GetError()); |
+ } |
+ out->assign(reinterpret_cast<char*>(buf), len); |
+ return OK; |
+} |
+ |
int SSLServerSocketNSS::Connect(const CompletionCallback& callback) { |
NOTIMPLEMENTED(); |
return ERR_NOT_IMPLEMENTED; |