diff options
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn | 7 | ||||
-rw-r--r-- | asn1/ldap/ldap.cnf | 21 | ||||
-rw-r--r-- | asn1/ldap/packet-ldap-template.c | 4 |
3 files changed, 30 insertions, 2 deletions
diff --git a/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn b/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn index d5c2c84272..5afe6ff4f2 100644 --- a/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn +++ b/asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn @@ -1,7 +1,7 @@ -- Module Lightweight-Directory-Access-Protocol-V3 (RFC 2251:12/1997) Lightweight-Directory-Access-Protocol-V3 -- --- $Id:$ +-- $Id$ -- Copyright (C) The Internet Society (1997). This version of -- this ASN.1 module is part of RFC 2251; -- see the RFC itself for full legal notices. @@ -134,7 +134,10 @@ BindRequest ::= [APPLICATION 0] SEQUENCE { AuthenticationChoice ::= CHOICE { simple [0] Simple, -- 1 and 2 reserved - sasl [3] SaslCredentials + sasl [3] SaslCredentials, + -- 10,11 from bug 1148 + ntlmsspNegotiate [10] IMPLICIT OCTET STRING, + ntlmsspAuth [11] IMPLICIT OCTET STRING } Simple ::= OCTET STRING diff --git a/asn1/ldap/ldap.cnf b/asn1/ldap/ldap.cnf index 6d899c3f14..33805a0aed 100644 --- a/asn1/ldap/ldap.cnf +++ b/asn1/ldap/ldap.cnf @@ -597,6 +597,27 @@ ldap_conv_info_t *ldap_info; proto_item_append_text(it, "%%s", Filter_string); +#.FN_BODY AuthenticationChoice/ntlmsspNegotiate + call_dissector(ntlmssp_handle, tvb, pinfo, tree); + offset+=tvb_length_remaining(tvb, offset); + +#.FN_BODY AuthenticationChoice/ntlmsspAuth + call_dissector(ntlmssp_handle, tvb, pinfo, tree); + offset+=tvb_length_remaining(tvb, offset); + +#.FN_BODY BindResponse/matchedDN + tvbuff_t *new_tvb=NULL; + + offset = dissect_ber_octet_string(FALSE, pinfo, tree, tvb, offset, hf_ldap_matchedDN, &new_tvb); + + if( new_tvb + && (tvb_length(new_tvb)>=7) + && (!tvb_memeql(new_tvb, 0, "NTLMSSP", 7))){ + call_dissector(ntlmssp_handle, new_tvb, pinfo, tree); + } + return offset; + + #.NO_EMIT AttributeType Attribute diff --git a/asn1/ldap/packet-ldap-template.c b/asn1/ldap/packet-ldap-template.c index 456fa0aebc..aff390fb30 100644 --- a/asn1/ldap/packet-ldap-template.c +++ b/asn1/ldap/packet-ldap-template.c @@ -90,6 +90,7 @@ #include "packet-frame.h" #include "packet-ldap.h" +#include "packet-ntlmssp.h" #include "packet-ber.h" #include "packet-per.h" @@ -172,6 +173,7 @@ static gboolean is_binary_attr_type = FALSE; static dissector_handle_t gssapi_handle; static dissector_handle_t gssapi_wrap_handle; +static dissector_handle_t ntlmssp_handle = NULL; /* different types of rpc calls ontop of ms cldap */ @@ -1660,6 +1662,8 @@ proto_reg_handoff_ldap(void) gssapi_handle = find_dissector("gssapi"); gssapi_wrap_handle = find_dissector("gssapi_verf"); + ntlmssp_handle = find_dissector("ntlmssp"); + /* http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dsml/dsml/ldap_controls_and_session_support.asp */ add_oid_str_name("1.2.840.113556.1.4.319","LDAP_PAGED_RESULT_OID_STRING"); add_oid_str_name("1.2.840.113556.1.4.417","LDAP_SERVER_SHOW_DELETED_OID"); |