[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r118042: * lisp/net/ntlm.el (ntlm-build-auth-request
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] trunk r118042: * lisp/net/ntlm.el (ntlm-build-auth-request): Add NTLM2 Session support. |
Date: |
Sat, 04 Oct 2014 19:23:49 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 118042
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/15603
author: Thomas Fitzsimmons <address@hidden>
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2014-10-04 12:23:42 -0700
message:
* lisp/net/ntlm.el (ntlm-build-auth-request): Add NTLM2 Session support.
modified:
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/net/ntlm.el ntlm.el-20091113204419-o5vbwnq5f7feedwu-7948
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2014-10-04 19:14:03 +0000
+++ b/lisp/ChangeLog 2014-10-04 19:23:42 +0000
@@ -1,3 +1,8 @@
+2014-10-04 Thomas Fitzsimmons <address@hidden>
+
+ * net/ntlm.el (ntlm-build-auth-request):
+ Add NTLM2 Session support. (Bug#15603)
+
2014-10-04 Glenn Morris <address@hidden>
* apropos.el (apropos-symbols-internal):
=== modified file 'lisp/net/ntlm.el'
--- a/lisp/net/ntlm.el 2014-01-01 07:43:34 +0000
+++ b/lisp/net/ntlm.el 2014-10-04 19:23:42 +0000
@@ -80,8 +80,8 @@
(request-msgType (concat (make-string 1 1) (make-string 3 0)))
;0x01 0x00 0x00 0x00
(request-flags (concat (make-string 1 7) (make-string 1 178)
- (make-string 2 0)))
- ;0x07 0xb2 0x00 0x00
+ (make-string 1 8) (make-string 1 0)))
+ ;0x07 0xb2 0x08 0x00
lu ld off-d off-u)
(when (string-match "@" user)
(unless domain
@@ -144,11 +144,35 @@
(setq domain (substring user (1+ (match-beginning 0))))
(setq user (substring user 0 (match-beginning 0))))
- ;; generate response data
- (setq lmRespData
- (ntlm-smb-owf-encrypt (car password-hashes) challengeData))
- (setq ntRespData
- (ntlm-smb-owf-encrypt (cadr password-hashes) challengeData))
+ ;; check if "negotiate NTLM2 key" flag is set in type 2 message
+ (if (not (zerop (logand (aref flags 2) 8)))
+ (let (randomString
+ sessionHash)
+ ;; generate NTLM2 session response data
+ (setq randomString (string-make-unibyte
+ (concat
+ (make-string 1 (random 256))
+ (make-string 1 (random 256))
+ (make-string 1 (random 256))
+ (make-string 1 (random 256))
+ (make-string 1 (random 256))
+ (make-string 1 (random 256))
+ (make-string 1 (random 256))
+ (make-string 1 (random 256)))))
+ (setq sessionHash (secure-hash 'md5
+ (concat challengeData randomString)
+ nil nil t))
+ (setq sessionHash (substring sessionHash 0 8))
+
+ (setq lmRespData (concat randomString (make-string 16 0)))
+ (setq ntRespData (ntlm-smb-owf-encrypt
+ (cadr password-hashes) sessionHash)))
+ (progn
+ ;; generate response data
+ (setq lmRespData
+ (ntlm-smb-owf-encrypt (car password-hashes) challengeData))
+ (setq ntRespData
+ (ntlm-smb-owf-encrypt (cadr password-hashes) challengeData))))
;; get offsets to fields to pack the response struct in a string
(setq lu (length user))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r118042: * lisp/net/ntlm.el (ntlm-build-auth-request): Add NTLM2 Session support.,
Glenn Morris <=