summaryrefslogtreecommitdiffstats
path: root/net/socket/ssl_server_socket_nss.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/socket/ssl_server_socket_nss.cc')
-rw-r--r--net/socket/ssl_server_socket_nss.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/net/socket/ssl_server_socket_nss.cc b/net/socket/ssl_server_socket_nss.cc
index 591b847..7203881 100644
--- a/net/socket/ssl_server_socket_nss.cc
+++ b/net/socket/ssl_server_socket_nss.cc
@@ -171,6 +171,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;