aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
Diffstat (limited to 'asn1')
-rw-r--r--asn1/ldap/Lightweight-Directory-Access-Protocol-V3.asn7
-rw-r--r--asn1/ldap/ldap.cnf21
-rw-r--r--asn1/ldap/packet-ldap-template.c4
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");