[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Notice of modified libntlm,
Matthew Allen <=