Homepage: https://www.gnu.org/software/emacs
Author: Taro Kawagishi
NTLM (NT LanManager) authentication support
This library is a direct translation of the Samba release 2.2.0 implementation of Windows NT and LanManager compatible password encryption. Interface functions: ntlm-build-auth-request This will return a binary string, which should be used in the base64 encoded form and it is the caller's responsibility to encode the returned string with base64. ntlm-build-auth-response It is the caller's responsibility to pass a base64 decoded string (which will be a binary string) as the first argument and to encode the returned string with base64. The second argument user should be given in user@domain format. ntlm-get-password-hashes NTLM authentication procedure example: 1. Open a network connection to the Exchange server at the IMAP port (143) 2. Receive an opening message such as: "* OK Microsoft Exchange IMAP4rev1 server version 5.5.2653.7 (XXXX) ready" 3. Ask for IMAP server capability by sending "NNN capability" 4. Receive a capability message such as: "* CAPABILITY IMAP4 IMAP4rev1 IDLE LITERAL+ LOGIN-REFERRALS MAILBOX-REFERRALS NAMESPACE AUTH=NTLM" 5. Ask for NTLM authentication by sending a string "NNN authenticate ntlm" 6. Receive continuation acknowledgment "+" 7. Send NTLM authentication request generated by 'ntlm-build-auth-request 8. Receive NTLM challenge string following acknowledgment "+" 9. Generate response to challenge by 'ntlm-build-auth-response (here two hash function values of the user password are encrypted) 10. Receive authentication completion message such as "NNN OK AUTHENTICATE NTLM completed."