NAME

Authen::NTLM - An NTLM authentication module

SYNOPSIS

use Mail::IMAPClient;
use Authen::NTLM;
my $imap = Mail::IMAPClient->new(Server=>'imaphost');
ntlm_user($username);
ntlm_password($password);
$imap->authenticate("NTLM", Authen::NTLM::ntlm);
:
$imap->logout;
ntlm_reset;
:

DESCRIPTION

This module provides methods to use NTLM authentication.  It can
be used as an authenticate method with the Mail::IMAPClient module
to perform the challenge/response mechanism for NTLM connections
or it can be used on its own for NTLM authentication with other
protocols (eg. HTTP).

The implementation is a direct port of the code from F<fetchmail>
which, itself, has based its NTLM implementation on F<samba>.  As
such, this code is not especially efficient, however it will still
take a fraction of a second to negotiate a login on a PII which is
likely to be good enough for most situations.

FUNCTIONS

ntlm_domain()
Set the domain to use in the NTLM authentication messages.
Returns the new domain.  Without an argument, this function
returns the current domain entry.
ntlm_user()
Set the username to use in the NTLM authentication messages.
Returns the new username.  Without an argument, this function
returns the current username entry.
ntlm_passwd()
Set the password to use in the NTLM authentication messages.
Returns the new password.  Without an argument, this function
returns the current password entry.
ntlm_reset()
Resets the NTLM challenge/response state machine so that the next
call to C<ntlm()> will produce an initial connect message.
ntlm()
Generate a reply to a challenge.  The NTLM protocol involves an
initial empty challenge from the server requiring a message
response containing the username and domain (which may be empty).
The first call to C<ntlm()> generates this first message ignoring
any arguments.

The second time it is called, it is assumend that the argument is
the challenge string sent from the server.  This will contain 8
bytes of data which are used in the DES functions to generate the
response authentication strings.  The result of the call is the
final authentication string.

If C<ntlm_reset()> is called, then the next call to C<ntlm()> will
start the process again allowing multiple authentications within
an application.

AUTHOR

Mark Bush <Mark.Bush@bushnet.demon.co.uk> - perl port
Eric S. Raymond - author of fetchmail
Andrew Tridgell and Jeremy Allison for SMB/Netbios code

SEE ALSO

perl, Mail::IMAPClient