All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] cifs: Support NTLM2 session security during NTLMSSP authentication
@ 2010-12-08 15:41 shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w
       [not found] ` <1291822865-26472-1-git-send-email-shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w @ 2010-12-08 15:41 UTC (permalink / raw)
  To: smfrench-Re5JQEeQqe8AvxtiuMwx3w
  Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA, Shirish Pargaonkar

From: Shirish Pargaonkar <shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>


Indicate to the server a capability of NTLM2 session security (NTLM2 Key)
during ntlmssp protocol exchange in one of the bits of the flags field.
If server supports this capability, send NTLM2 key even if signing is not
required on the server.
If the server requires signing, the sesison keys exchanged for NTLMv2
and NTLM2 session security in auth packet of the nlmssp exchange are same.


Signed-off-by: Shirish Pargaonkar <shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
 fs/cifs/sess.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index 7b01d3f..122ad31 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -437,7 +437,7 @@ static void build_ntlmssp_negotiate_blob(unsigned char *pbuffer,
 	/* BB is NTLMV2 session security format easier to use here? */
 	flags = NTLMSSP_NEGOTIATE_56 |	NTLMSSP_REQUEST_TARGET |
 		NTLMSSP_NEGOTIATE_128 | NTLMSSP_NEGOTIATE_UNICODE |
-		NTLMSSP_NEGOTIATE_NTLM;
+		NTLMSSP_NEGOTIATE_NTLM | NTLMSSP_NEGOTIATE_EXTENDED_SEC;
 	if (ses->server->secMode &
 			(SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) {
 		flags |= NTLMSSP_NEGOTIATE_SIGN;
@@ -544,8 +544,9 @@ static int build_ntlmssp_auth_blob(unsigned char *pbuffer,
 	sec_blob->WorkstationName.MaximumLength = 0;
 	tmp += 2;
 
-	if ((ses->ntlmssp->server_flags & NTLMSSP_NEGOTIATE_KEY_XCH) &&
-			!calc_seckey(ses)) {
+	if (((ses->ntlmssp->server_flags & NTLMSSP_NEGOTIATE_KEY_XCH) ||
+		((ses->ntlmssp->server_flags & NTLMSSP_NEGOTIATE_EXTENDED_SEC)))
+			&& !calc_seckey(ses)) {
 		memcpy(tmp, ses->ntlmssp->ciphertext, CIFS_CPHTXT_SIZE);
 		sec_blob->SessionKey.BufferOffset = cpu_to_le32(tmp - pbuffer);
 		sec_blob->SessionKey.Length = cpu_to_le16(CIFS_CPHTXT_SIZE);
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-12-09 14:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-08 15:41 [PATCH] cifs: Support NTLM2 session security during NTLMSSP authentication shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w
     [not found] ` <1291822865-26472-1-git-send-email-shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-12-08 16:06   ` Jeff Layton
     [not found]     ` <20101208110608.607a23e2-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2010-12-08 16:33       ` Shirish Pargaonkar
     [not found]         ` <AANLkTi=WVaCDRHf5=DgnZr7crJByhH5r6F6S+_PVGY0F-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-12-08 17:28           ` Shirish Pargaonkar
     [not found]             ` <AANLkTinehfVNbrC2gNnDEi5OHDtgjYYimUqYO=+y4Dy6-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-12-08 18:16               ` Robbert Kouprie
     [not found]                 ` <4CFFCB61.4090807-C1IQQP51G3M@public.gmane.org>
2010-12-08 18:53                   ` Shirish Pargaonkar
     [not found]                     ` <AANLkTikU1OhcT8FmyrOZfrLtgK-8NKnRnFNnczFvz2C_-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-12-08 21:07                       ` Robbert Kouprie
     [not found]                         ` <4CFFF37D.5010004-C1IQQP51G3M@public.gmane.org>
2010-12-09 12:56                           ` Robbert Kouprie
     [not found]                             ` <alpine.DEB.2.00.1012091351180.9919-56sTcPfcKMhJlCS1zhbguEjk2N/pv5CcZkel5v8DVj8@public.gmane.org>
2010-12-09 14:35                               ` Shirish Pargaonkar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.