diff options
author | Shirish Pargaonkar <shirishpargaonkar@gmail.com> | 2010-08-23 12:04:07 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2010-08-23 13:38:24 -0400 |
commit | 3ec6bbcdb4e85403f2c5958876ca9492afdf4031 (patch) | |
tree | 6195d224dd698fced1164ec6b6bf6127b9285985 /fs/cifs | |
parent | 9fbc590860e75785bdaf8b83e48fabfe4d4f7d58 (diff) |
missing changes during ntlmv2/ntlmssp auth and sign
Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/cifsencrypt.c | 2 | ||||
-rw-r--r-- | fs/cifs/sess.c | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c index 051d00011ca3..eef78c24e0cc 100644 --- a/fs/cifs/cifsencrypt.c +++ b/fs/cifs/cifsencrypt.c | |||
@@ -553,6 +553,8 @@ calc_seckey(struct TCP_Server_Info *server) | |||
553 | return 1; | 553 | return 1; |
554 | } | 554 | } |
555 | 555 | ||
556 | desc.tfm = tfm_arc4; | ||
557 | |||
556 | crypto_blkcipher_setkey(tfm_arc4, | 558 | crypto_blkcipher_setkey(tfm_arc4, |
557 | server->session_key.data.ntlmv2.key, CIFS_CPHTXT_SIZE); | 559 | server->session_key.data.ntlmv2.key, CIFS_CPHTXT_SIZE); |
558 | sg_init_one(&sgin, sec_key, CIFS_CPHTXT_SIZE); | 560 | sg_init_one(&sgin, sec_key, CIFS_CPHTXT_SIZE); |
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c index 41fc5328120d..4788e16a02cc 100644 --- a/fs/cifs/sess.c +++ b/fs/cifs/sess.c | |||
@@ -408,6 +408,8 @@ static int decode_ntlmssp_challenge(char *bcc_ptr, int blob_len, | |||
408 | /* BB spec says that if AvId field of MsvAvTimestamp is populated then | 408 | /* BB spec says that if AvId field of MsvAvTimestamp is populated then |
409 | we must set the MIC field of the AUTHENTICATE_MESSAGE */ | 409 | we must set the MIC field of the AUTHENTICATE_MESSAGE */ |
410 | 410 | ||
411 | ses->server->ntlmssp.server_flags = le32_to_cpu(pblob->NegotiateFlags); | ||
412 | |||
411 | tioffset = cpu_to_le16(pblob->TargetInfoArray.BufferOffset); | 413 | tioffset = cpu_to_le16(pblob->TargetInfoArray.BufferOffset); |
412 | tilen = cpu_to_le16(pblob->TargetInfoArray.Length); | 414 | tilen = cpu_to_le16(pblob->TargetInfoArray.Length); |
413 | ses->server->tilen = tilen; | 415 | ses->server->tilen = tilen; |
@@ -440,12 +442,13 @@ static void build_ntlmssp_negotiate_blob(unsigned char *pbuffer, | |||
440 | /* BB is NTLMV2 session security format easier to use here? */ | 442 | /* BB is NTLMV2 session security format easier to use here? */ |
441 | flags = NTLMSSP_NEGOTIATE_56 | NTLMSSP_REQUEST_TARGET | | 443 | flags = NTLMSSP_NEGOTIATE_56 | NTLMSSP_REQUEST_TARGET | |
442 | NTLMSSP_NEGOTIATE_128 | NTLMSSP_NEGOTIATE_UNICODE | | 444 | NTLMSSP_NEGOTIATE_128 | NTLMSSP_NEGOTIATE_UNICODE | |
443 | NTLMSSP_NEGOTIATE_NT_ONLY | NTLMSSP_NEGOTIATE_NTLM; | 445 | NTLMSSP_NEGOTIATE_NTLM; |
444 | if (ses->server->secMode & | 446 | if (ses->server->secMode & |
445 | (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) | 447 | (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) { |
446 | flags |= NTLMSSP_NEGOTIATE_SIGN; | 448 | flags |= NTLMSSP_NEGOTIATE_SIGN | |
447 | if (ses->server->secMode & SECMODE_SIGN_REQUIRED) | 449 | NTLMSSP_NEGOTIATE_KEY_XCH | |
448 | flags |= NTLMSSP_NEGOTIATE_ALWAYS_SIGN; | 450 | NTLMSSP_NEGOTIATE_EXTENDED_SEC; |
451 | } | ||
449 | 452 | ||
450 | sec_blob->NegotiateFlags |= cpu_to_le32(flags); | 453 | sec_blob->NegotiateFlags |= cpu_to_le32(flags); |
451 | 454 | ||