libntlm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Notice of modified libntlm


From: Matthew Allen
Subject: Notice of modified libntlm
Date: Thu, 17 Feb 2011 10:39:37 +1100

Hi all,

In getting my email client to connect to exchange 2010 I have heavily modified 
a copy of libntlm-0.4.2 which is available here:
http://lgi.svn.sourceforge.net/viewvc/lgi/trunk/src/common/INet/libntlm-0.4.2/

The edits revolve around supporting the OS version field / flag introduced in 
more recent versions of windows, adding a parameter for supplying the 
workstation name, unicode improvements and bit fields for the structure flags. 
The code that does the hash lmResp and ntResp has also been rewritten, mainly 
using the Thunderbird code as a guide. I'm not sure whether any of you are 
interested in the edits, but to comply with the LGPL I have to publish the 
changes and so here I am. I doubt my changes are cross platform or even work 
with all NTLM implementations but I got it working for the one use case I care 
about right now.

Ultimately I think the best approach will be moving away from mapping the 
format of the NTLM messages to structs and writing parsers/constructors that 
operate on byte streams. The presence of optional fields makes having mapping 
structs untenable. I've kinda worked around that with unions, but it's ugly and 
would be better served by a single struct with all fields that doesn't relate 
to the in-memory mapping of the NTML message at all.

I found the Microsoft protocol document that purports to describe the protocol 
but I found that the core calculation of lmResp and ntResp to be very different 
from actually implementations of NTLM. However the rest of the document is 
quite useful for getting the flags, and structure members right.
http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-NLMP%5D.pdf

Regards
--
Matthew Allen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]