aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/ldap
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-10-11 08:18:14 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-10-11 08:18:14 +0000
commitdaa7210867e160d65be85926ea92fdeee91fa905 (patch)
tree97f0617aaf203355761af88f927d31ff5ba24dea /asn1/ldap
parentd099129659a93029d15f2d636007e1c426a73926 (diff)
fix for 1148
pretty horrible hack to store an ntlmssp blob inside an ldap string the info column is not entirely pretty but the payload is at least decoded svn path=/trunk/; revision=19490
Diffstat (limited to 'asn1/ldap')
-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");