Function: ntlm-smb-str-to-key

ntlm-smb-str-to-key is a byte-compiled function defined in ntlm.el.gz.

Signature

(ntlm-smb-str-to-key STR)

Documentation

Return a string of length 8 for the given string STR of length 7.

Source Code

;; Defined in /usr/src/emacs/lisp/net/ntlm.el.gz
(defun ntlm-smb-str-to-key (str)
  "Return a string of length 8 for the given string STR of length 7."
  (let ((key (make-string 8 0))
	(i 7))
    (aset key 0 (ash (aref str 0) -1))
    (aset key 1 (logior
		 (ash (logand (aref str 0) 1) 6)
		 (ash (aref str 1) -2)))
    (aset key 2 (logior
		 (ash (logand (aref str 1) 3) 5)
		 (ash (aref str 2) -3)))
    (aset key 3 (logior
		 (ash (logand (aref str 2) 7) 4)
		 (ash (aref str 3) -4)))
    (aset key 4 (logior
		 (ash (logand (aref str 3) 15) 3)
		 (ash (aref str 4) -5)))
    (aset key 5 (logior
		 (ash (logand (aref str 4) 31) 2)
		 (ash (aref str 5) -6)))
    (aset key 6 (logior
		 (ash (logand (aref str 5) 63) 1)
		 (ash (aref str 6) -7)))
    (aset key 7 (logand (aref str 6) 127))
    (while (>= i 0)
      (aset key i (ash (aref key i) 1))
      (setq i (1- i)))
    key))