summaryrefslogtreecommitdiff
path: root/source4/librpc/rpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/rpc')
-rw-r--r--source4/librpc/rpc/dcerpc_util.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c
index ba61f28c95..b52631670b 100644
--- a/source4/librpc/rpc/dcerpc_util.c
+++ b/source4/librpc/rpc/dcerpc_util.c
@@ -666,3 +666,25 @@ NTSTATUS dcerpc_secondary_smb(struct dcerpc_pipe *p, struct dcerpc_pipe **p2,
return NT_STATUS_OK;
}
+
+
+/*
+ fetch the user session key for the underlying transport. Currently
+ only works for the ncacn_np transport
+*/
+NTSTATUS dcerpc_fetch_session_key(struct dcerpc_pipe *p,
+ uint8 session_key[16])
+{
+ struct cli_tree *tree;
+
+ tree = dcerpc_smb_tree(p);
+ if (!tree) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ memcpy(session_key,
+ tree->session->transport->negotiate.user_session_key,
+ 16);
+
+ return NT_STATUS_OK;
+}