2 This filter was automatically generated
3 from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntlmssp.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntlmssp.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at http://wiki.wireshark.org/Pidl
16 #pragma warning(disable:4005)
17 #pragma warning(disable:4013)
18 #pragma warning(disable:4018)
19 #pragma warning(disable:4101)
24 #include <epan/packet.h>
26 #include "packet-dcerpc.h"
27 #include "packet-dcerpc-nt.h"
28 #include "packet-windows-common.h"
29 #include "packet-dcerpc-ntlmssp.h"
31 /* Ett declarations */
32 static gint ett_dcerpc_ntlmssp = -1;
33 static gint ett_ntlmssp_NEGOTIATE = -1;
34 static gint ett_ntlmssp_ntlmssp_VERSION = -1;
35 static gint ett_ntlmssp_ntlmssp_Version = -1;
36 static gint ett_ntlmssp_NEGOTIATE_MESSAGE = -1;
37 static gint ett_ntlmssp_Restriction_Encoding = -1;
38 static gint ett_ntlmssp_ntlmssp_AvFlags = -1;
39 static gint ett_ntlmssp_ntlmssp_AvValue = -1;
40 static gint ett_ntlmssp_AV_PAIR = -1;
41 static gint ett_ntlmssp_AV_PAIR_LIST = -1;
42 static gint ett_ntlmssp_CHALLENGE_MESSAGE = -1;
43 static gint ett_ntlmssp_LM_RESPONSE = -1;
44 static gint ett_ntlmssp_LMv2_RESPONSE = -1;
45 static gint ett_ntlmssp_ntlmssp_LM_RESPONSE = -1;
46 static gint ett_ntlmssp_NTLM_RESPONSE = -1;
47 static gint ett_ntlmssp_NTLMv2_CLIENT_CHALLENGE = -1;
48 static gint ett_ntlmssp_NTLMv2_RESPONSE = -1;
49 static gint ett_ntlmssp_ntlmssp_NTLM_RESPONSE = -1;
50 static gint ett_ntlmssp_MIC = -1;
51 static gint ett_ntlmssp_AUTHENTICATE_MESSAGE = -1;
52 static gint ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE = -1;
53 static gint ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 = -1;
56 /* Header field declarations */
57 static gint hf_ntlmssp_decode_NTLMv2_RESPONSE_response = -1;
58 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameInfoMaxLen = -1;
59 static gint hf_ntlmssp_ntlmssp_VERSION_Reserved = -1;
60 static gint hf_ntlmssp_ntlmssp_AvValue_AvNbComputerName = -1;
61 static gint hf_ntlmssp_CHALLENGE_MESSAGE_Reserved = -1;
62 static gint hf_ntlmssp_ntlmssp_AvValue_AvTimestamp = -1;
63 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM = -1;
64 static gint hf_ntlmssp_Restriction_Encoding_MachineId = -1;
65 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationLen = -1;
66 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM = -1;
67 static gint hf_ntlmssp_ntlmssp_AvValue_ChannelBindings = -1;
68 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature = -1;
69 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL = -1;
70 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH = -1;
71 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved1 = -1;
72 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs = -1;
73 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName_ = -1;
74 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationMaxLen = -1;
75 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY = -1;
76 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfoLen = -1;
77 static gint hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient = -1;
78 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse_ = -1;
79 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse = -1;
80 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED = -1;
81 static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Checksum = -1;
82 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Version = -1;
83 static gint hf_ntlmssp_LM_RESPONSE_Response = -1;
84 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameLen = -1;
85 static gint hf_ntlmssp_NTLMv2_RESPONSE_Response = -1;
86 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE = -1;
87 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_RespType = -1;
88 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameMaxLen = -1;
89 static gint hf_ntlmssp_ntlmssp_Version_version = -1;
90 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameLen = -1;
91 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameMaxLen = -1;
92 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_56 = -1;
93 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen = -1;
94 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_MessageType = -1;
95 static gint hf_ntlmssp_ntlmssp_AvValue_AvNbDomainName = -1;
96 static gint hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE = -1;
97 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION = -1;
98 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetName_ = -1;
99 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_TARGET = -1;
100 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation_ = -1;
101 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameMaxLen = -1;
102 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN = -1;
103 static gint hf_ntlmssp_decode_CHALLENGE_MESSAGE_challenge = -1;
104 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName_ = -1;
105 static gint hf_ntlmssp_ntlmssp_LM_RESPONSE_v1 = -1;
106 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetName = -1;
107 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved2 = -1;
108 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL = -1;
109 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_MessageType = -1;
110 static gint hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v2 = -1;
111 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationLen = -1;
112 static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Version = -1;
113 static gint hf_ntlmssp_AV_PAIR_AvLen = -1;
114 static gint hf_ntlmssp_decode_NTLMv2_CLIENT_CHALLENGE_challenge = -1;
115 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName_ = -1;
116 static gint hf_ntlmssp_LMv2_RESPONSE_Response = -1;
117 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationMaxLen = -1;
118 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen = -1;
119 static gint hf_ntlmssp_AV_PAIR_AvId = -1;
120 static gint hf_ntlmssp_ntlmssp_AvValue_blob = -1;
121 static gint hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge = -1;
122 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY = -1;
123 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN = -1;
124 static gint hf_ntlmssp_AV_PAIR_LIST_pair = -1;
125 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseLen = -1;
126 static gint hf_ntlmssp_NTLM_RESPONSE_Response = -1;
127 static gint hf_ntlmssp_AV_PAIR_LIST_count = -1;
128 static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum = -1;
129 static gint hf_ntlmssp_CHALLENGE_MESSAGE_Version = -1;
130 static gint hf_ntlmssp_Restriction_Encoding_SubjectIntegrityLevel = -1;
131 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse = -1;
132 static gint hf_ntlmssp_decode_NEGOTIATE_MESSAGE_negotiate = -1;
133 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName = -1;
134 static gint hf_ntlmssp_ntlmssp_AvValue_AvFlags = -1;
135 static gint hf_ntlmssp_CHALLENGE_MESSAGE_Signature = -1;
136 static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version = -1;
137 static gint hf_ntlmssp_Restriction_Encoding_Z4 = -1;
138 static gint hf_ntlmssp_ntlmssp_AvValue_AvDnsTreeName = -1;
139 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey = -1;
140 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseLen = -1;
141 static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_SeqNum = -1;
142 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY = -1;
143 static gint hf_ntlmssp_ntlmssp_VERSION_NTLMRevisionCurrent = -1;
144 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO = -1;
145 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen = -1;
146 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameLen = -1;
147 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Signature = -1;
148 static gint hf_ntlmssp_ntlmssp_AvValue_AvRestrictions = -1;
149 static gint hf_ntlmssp_MIC_MIC = -1;
150 static gint hf_ntlmssp_AV_PAIR_Value_ = -1;
151 static gint hf_ntlmssp_Restriction_Encoding_Size = -1;
152 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs_ = -1;
153 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_HiRespType = -1;
154 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient = -1;
155 static gint hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT = -1;
156 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_ANONYMOUS = -1;
157 static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_RandomPad = -1;
158 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NegotiateFlags = -1;
159 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE = -1;
160 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation_ = -1;
161 static gint hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v1 = -1;
162 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Version = -1;
163 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY = -1;
164 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE = -1;
165 static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum = -1;
166 static gint hf_ntlmssp_decode_AUTHENTICATE_MESSAGE_authenticate = -1;
167 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo = -1;
168 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo_ = -1;
169 static gint hf_ntlmssp_opnum = -1;
170 static gint hf_ntlmssp_ntlmssp_VERSION_ProductBuild = -1;
171 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM = -1;
172 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName = -1;
173 static gint hf_ntlmssp_ntlmssp_AvValue_AvDnsComputerName = -1;
174 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_128 = -1;
175 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved3 = -1;
176 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_NegotiateFlags = -1;
177 static gint hf_ntlmssp_NTLMv2_RESPONSE_Challenge = -1;
178 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_ = -1;
179 static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameMaxLen = -1;
180 static gint hf_ntlmssp_ntlmssp_VERSION_ProductMinorVersion = -1;
181 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation = -1;
182 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY = -1;
183 static gint hf_ntlmssp_CHALLENGE_MESSAGE_NegotiateFlags = -1;
184 static gint hf_ntlmssp_ntlmssp_AvValue_AvTargetName = -1;
185 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER = -1;
186 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED = -1;
187 static gint hf_ntlmssp_CHALLENGE_MESSAGE_MessageType = -1;
188 static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN = -1;
189 static gint hf_ntlmssp_AV_PAIR_Value = -1;
190 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameLen = -1;
191 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse_ = -1;
192 static gint hf_ntlmssp_Restriction_Encoding_IntegrityLevel = -1;
193 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen = -1;
194 static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName = -1;
195 static gint hf_ntlmssp_ntlmssp_VERSION_ProductMajorVersion = -1;
196 static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation = -1;
197 static gint hf_ntlmssp_ntlmssp_AvValue_AvDnsDomainName = -1;
198 static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_TimeStamp = -1;
200 static gint proto_dcerpc_ntlmssp = -1;
201 /* Version information */
204 static e_uuid_t uuid_dcerpc_ntlmssp = {
205 0x6e746c6d, 0x7373, 0x700a,
206 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x", 0x }
208 static guint16 ver_dcerpc_ntlmssp = 0;
210 const value_string ntlmssp_ntlmssp_MessageType_vals[] = {
211 { NtLmNegotiate, "NtLmNegotiate" },
212 { NtLmChallenge, "NtLmChallenge" },
213 { NtLmAuthenticate, "NtLmAuthenticate" },
216 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE_tfs = {
217 "NTLMSSP_NEGOTIATE_UNICODE is SET",
218 "NTLMSSP_NEGOTIATE_UNICODE is NOT SET",
220 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_tfs = {
221 "NTLMSSP_NEGOTIATE_OEM is SET",
222 "NTLMSSP_NEGOTIATE_OEM is NOT SET",
224 static const true_false_string NEGOTIATE_NTLMSSP_REQUEST_TARGET_tfs = {
225 "NTLMSSP_REQUEST_TARGET is SET",
226 "NTLMSSP_REQUEST_TARGET is NOT SET",
228 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN_tfs = {
229 "NTLMSSP_NEGOTIATE_SIGN is SET",
230 "NTLMSSP_NEGOTIATE_SIGN is NOT SET",
232 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL_tfs = {
233 "NTLMSSP_NEGOTIATE_SEAL is SET",
234 "NTLMSSP_NEGOTIATE_SEAL is NOT SET",
236 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM_tfs = {
237 "NTLMSSP_NEGOTIATE_DATAGRAM is SET",
238 "NTLMSSP_NEGOTIATE_DATAGRAM is NOT SET",
240 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY_tfs = {
241 "NTLMSSP_NEGOTIATE_LM_KEY is SET",
242 "NTLMSSP_NEGOTIATE_LM_KEY is NOT SET",
244 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE_tfs = {
245 "NTLMSSP_NEGOTIATE_NETWARE is SET",
246 "NTLMSSP_NEGOTIATE_NETWARE is NOT SET",
248 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM_tfs = {
249 "NTLMSSP_NEGOTIATE_NTLM is SET",
250 "NTLMSSP_NEGOTIATE_NTLM is NOT SET",
252 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY_tfs = {
253 "NTLMSSP_NEGOTIATE_NT_ONLY is SET",
254 "NTLMSSP_NEGOTIATE_NT_ONLY is NOT SET",
256 static const true_false_string NEGOTIATE_NTLMSSP_ANONYMOUS_tfs = {
257 "NTLMSSP_ANONYMOUS is SET",
258 "NTLMSSP_ANONYMOUS is NOT SET",
260 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED_tfs = {
261 "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED is SET",
262 "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED is NOT SET",
264 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED_tfs = {
265 "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED is SET",
266 "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED is NOT SET",
268 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL_tfs = {
269 "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL is SET",
270 "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL is NOT SET",
272 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN_tfs = {
273 "NTLMSSP_NEGOTIATE_ALWAYS_SIGN is SET",
274 "NTLMSSP_NEGOTIATE_ALWAYS_SIGN is NOT SET",
276 static const true_false_string NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN_tfs = {
277 "NTLMSSP_TARGET_TYPE_DOMAIN is SET",
278 "NTLMSSP_TARGET_TYPE_DOMAIN is NOT SET",
280 static const true_false_string NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER_tfs = {
281 "NTLMSSP_TARGET_TYPE_SERVER is SET",
282 "NTLMSSP_TARGET_TYPE_SERVER is NOT SET",
284 static const true_false_string NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE_tfs = {
285 "NTLMSSP_TARGET_TYPE_SHARE is SET",
286 "NTLMSSP_TARGET_TYPE_SHARE is NOT SET",
288 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY_tfs = {
289 "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY is SET",
290 "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY is NOT SET",
292 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY_tfs = {
293 "NTLMSSP_NEGOTIATE_IDENTIFY is SET",
294 "NTLMSSP_NEGOTIATE_IDENTIFY is NOT SET",
296 static const true_false_string NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY_tfs = {
297 "NTLMSSP_REQUEST_NON_NT_SESSION_KEY is SET",
298 "NTLMSSP_REQUEST_NON_NT_SESSION_KEY is NOT SET",
300 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO_tfs = {
301 "NTLMSSP_NEGOTIATE_TARGET_INFO is SET",
302 "NTLMSSP_NEGOTIATE_TARGET_INFO is NOT SET",
304 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION_tfs = {
305 "NTLMSSP_NEGOTIATE_VERSION is SET",
306 "NTLMSSP_NEGOTIATE_VERSION is NOT SET",
308 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_128_tfs = {
309 "NTLMSSP_NEGOTIATE_128 is SET",
310 "NTLMSSP_NEGOTIATE_128 is NOT SET",
312 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH_tfs = {
313 "NTLMSSP_NEGOTIATE_KEY_EXCH is SET",
314 "NTLMSSP_NEGOTIATE_KEY_EXCH is NOT SET",
316 static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_56_tfs = {
317 "NTLMSSP_NEGOTIATE_56 is SET",
318 "NTLMSSP_NEGOTIATE_56 is NOT SET",
320 const value_string ntlmssp_ntlmssp_WindowsMajorVersion_vals[] = {
321 { NTLMSSP_WINDOWS_MAJOR_VERSION_5, "NTLMSSP_WINDOWS_MAJOR_VERSION_5" },
322 { NTLMSSP_WINDOWS_MAJOR_VERSION_6, "NTLMSSP_WINDOWS_MAJOR_VERSION_6" },
325 const value_string ntlmssp_ntlmssp_WindowsMinorVersion_vals[] = {
326 { NTLMSSP_WINDOWS_MINOR_VERSION_0, "NTLMSSP_WINDOWS_MINOR_VERSION_0" },
327 { NTLMSSP_WINDOWS_MINOR_VERSION_1, "NTLMSSP_WINDOWS_MINOR_VERSION_1" },
328 { NTLMSSP_WINDOWS_MINOR_VERSION_2, "NTLMSSP_WINDOWS_MINOR_VERSION_2" },
331 const value_string ntlmssp_ntlmssp_NTLMRevisionCurrent_vals[] = {
332 { NTLMSSP_REVISION_W2K3_RC1, "NTLMSSP_REVISION_W2K3_RC1" },
333 { NTLMSSP_REVISION_W2K3, "NTLMSSP_REVISION_W2K3" },
336 static int ntlmssp_dissect_element_VERSION_ProductMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
337 static int ntlmssp_dissect_element_VERSION_ProductMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
338 static int ntlmssp_dissect_element_VERSION_ProductBuild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
339 static int ntlmssp_dissect_element_VERSION_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
340 static int ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
341 static int ntlmssp_dissect_element_VERSION_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
342 static int ntlmssp_dissect_element_Version_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
343 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
344 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
345 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
346 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
347 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
348 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
349 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
350 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
351 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
352 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
353 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
354 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
355 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
356 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
357 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *);
358 const value_string ntlmssp_ntlmssp_AvId_vals[] = {
359 { MsvAvEOL, "MsvAvEOL" },
360 { MsvAvNbComputerName, "MsvAvNbComputerName" },
361 { MsvAvNbDomainName, "MsvAvNbDomainName" },
362 { MsvAvDnsComputerName, "MsvAvDnsComputerName" },
363 { MsvAvDnsDomainName, "MsvAvDnsDomainName" },
364 { MsvAvDnsTreeName, "MsvAvDnsTreeName" },
365 { MsvAvFlags, "MsvAvFlags" },
366 { MsvAvTimestamp, "MsvAvTimestamp" },
367 { MsAvRestrictions, "MsAvRestrictions" },
368 { MsvAvTargetName, "MsvAvTargetName" },
369 { MsvChannelBindings, "MsvChannelBindings" },
372 static int ntlmssp_dissect_element_Restriction_Encoding_Size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
373 static int ntlmssp_dissect_element_Restriction_Encoding_Z4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
374 static int ntlmssp_dissect_element_Restriction_Encoding_IntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
375 static int ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
376 static int ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
377 static int ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
378 static const true_false_string ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT_tfs = {
379 "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT is SET",
380 "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT is NOT SET",
382 static const true_false_string ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE_tfs = {
383 "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE is SET",
384 "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE is NOT SET",
386 static int ntlmssp_dissect_element_AvValue_AvNbComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
387 static int ntlmssp_dissect_element_AvValue_AvNbDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
388 static int ntlmssp_dissect_element_AvValue_AvDnsComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
389 static int ntlmssp_dissect_element_AvValue_AvDnsDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
390 static int ntlmssp_dissect_element_AvValue_AvDnsTreeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
391 static int ntlmssp_dissect_element_AvValue_AvFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
392 static int ntlmssp_dissect_element_AvValue_AvTimestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
393 static int ntlmssp_dissect_element_AvValue_AvRestrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
394 static int ntlmssp_dissect_element_AvValue_AvTargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
395 static int ntlmssp_dissect_element_AvValue_ChannelBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
396 static int ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
397 static int ntlmssp_dissect_element_AvValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
398 static int ntlmssp_dissect_element_AV_PAIR_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId);
399 static int ntlmssp_dissect_element_AV_PAIR_AvLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
400 static int ntlmssp_dissect_element_AV_PAIR_Value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId);
401 static int ntlmssp_dissect_element_AV_PAIR_Value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId);
402 static int ntlmssp_dissect_element_AV_PAIR_LIST_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
403 static int ntlmssp_dissect_element_AV_PAIR_LIST_pair(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
404 static int ntlmssp_dissect_element_AV_PAIR_LIST_pair_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
405 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
406 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
407 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
408 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
409 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
410 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
411 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
412 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
413 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
414 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
415 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
416 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
417 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
418 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfoLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
419 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameInfoMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
420 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
421 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
422 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
423 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *);
424 static int ntlmssp_dissect_element_LM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
425 static int ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
426 static int ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
427 static int ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
428 static int ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
429 static int ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
430 static int ntlmssp_dissect_element_LM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
431 static int ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
432 static int ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
433 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_RespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
434 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_HiRespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
435 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
436 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
437 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
438 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
439 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
440 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
441 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
442 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
443 static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
444 static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
445 static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
446 static int ntlmssp_dissect_element_NTLM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
447 static int ntlmssp_dissect_element_NTLM_RESPONSE_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
448 static int ntlmssp_dissect_element_MIC_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
449 static int ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
450 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
451 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
452 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
453 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen);
454 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
455 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen);
456 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen);
457 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen);
458 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen);
459 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
460 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen);
461 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen);
462 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen);
463 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
464 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
465 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
466 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
467 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
468 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
469 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
470 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
471 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
472 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
473 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
474 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
475 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
476 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
477 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
478 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
479 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
480 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
481 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
482 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
483 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
484 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *);
485 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
486 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_RandomPad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
487 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
488 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
489 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
490 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
491 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
492 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
493 static int ntlmssp_dissect_element_decode_NEGOTIATE_MESSAGE_negotiate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
494 static int ntlmssp_dissect_element_decode_CHALLENGE_MESSAGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
495 static int ntlmssp_dissect_element_decode_AUTHENTICATE_MESSAGE_authenticate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
496 static int ntlmssp_dissect_element_decode_NTLMv2_CLIENT_CHALLENGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
497 static int ntlmssp_dissect_element_decode_NTLMv2_RESPONSE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
501 /* IDL: NtLmNegotiate=0x00000001, */
502 /* IDL: NtLmChallenge=0x00000002, */
503 /* IDL: NtLmAuthenticate=0x00000003, */
507 ntlmssp_dissect_enum_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
511 parameter=(guint32)*param;
513 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
515 *param=(guint32)parameter;
522 /* IDL: NTLMSSP_NEGOTIATE_UNICODE = 0x00000001 , */
523 /* IDL: NTLMSSP_NEGOTIATE_OEM = 0x00000002 , */
524 /* IDL: NTLMSSP_REQUEST_TARGET = 0x00000004 , */
525 /* IDL: NTLMSSP_NEGOTIATE_SIGN = 0x00000010 , */
526 /* IDL: NTLMSSP_NEGOTIATE_SEAL = 0x00000020 , */
527 /* IDL: NTLMSSP_NEGOTIATE_DATAGRAM = 0x00000040 , */
528 /* IDL: NTLMSSP_NEGOTIATE_LM_KEY = 0x00000080 , */
529 /* IDL: NTLMSSP_NEGOTIATE_NETWARE = 0x00000100 , */
530 /* IDL: NTLMSSP_NEGOTIATE_NTLM = 0x00000200 , */
531 /* IDL: NTLMSSP_NEGOTIATE_NT_ONLY = 0x00000400 , */
532 /* IDL: NTLMSSP_ANONYMOUS = 0x00000800 , */
533 /* IDL: NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED = 0x00001000 , */
534 /* IDL: NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED = 0x00002000 , */
535 /* IDL: NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL = 0x00004000 , */
536 /* IDL: NTLMSSP_NEGOTIATE_ALWAYS_SIGN = 0x00008000 , */
537 /* IDL: NTLMSSP_TARGET_TYPE_DOMAIN = 0x00010000 , */
538 /* IDL: NTLMSSP_TARGET_TYPE_SERVER = 0x00020000 , */
539 /* IDL: NTLMSSP_TARGET_TYPE_SHARE = 0x00040000 , */
540 /* IDL: NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY = 0x00080000 , */
541 /* IDL: NTLMSSP_NEGOTIATE_IDENTIFY = 0x00100000 , */
542 /* IDL: NTLMSSP_REQUEST_NON_NT_SESSION_KEY = 0x00400000 , */
543 /* IDL: NTLMSSP_NEGOTIATE_TARGET_INFO = 0x00800000 , */
544 /* IDL: NTLMSSP_NEGOTIATE_VERSION = 0x02000000 , */
545 /* IDL: NTLMSSP_NEGOTIATE_128 = 0x20000000 , */
546 /* IDL: NTLMSSP_NEGOTIATE_KEY_EXCH = 0x40000000 , */
547 /* IDL: NTLMSSP_NEGOTIATE_56 = 0x80000000 , */
551 ntlmssp_dissect_bitmap_NEGOTIATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
553 proto_item *item = NULL;
554 proto_tree *tree = NULL;
560 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
561 tree = proto_item_add_subtree(item,ett_ntlmssp_NEGOTIATE);
564 offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
565 proto_item_append_text(item, ": ");
568 proto_item_append_text(item, "(No values set)");
570 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE, tvb, offset-4, 4, flags);
571 if (flags&( 0x00000001 )){
572 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_UNICODE");
573 if (flags & (~( 0x00000001 )))
574 proto_item_append_text(item, ", ");
576 flags&=(~( 0x00000001 ));
578 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM, tvb, offset-4, 4, flags);
579 if (flags&( 0x00000002 )){
580 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_OEM");
581 if (flags & (~( 0x00000002 )))
582 proto_item_append_text(item, ", ");
584 flags&=(~( 0x00000002 ));
586 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_TARGET, tvb, offset-4, 4, flags);
587 if (flags&( 0x00000004 )){
588 proto_item_append_text(item, "NTLMSSP_REQUEST_TARGET");
589 if (flags & (~( 0x00000004 )))
590 proto_item_append_text(item, ", ");
592 flags&=(~( 0x00000004 ));
594 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN, tvb, offset-4, 4, flags);
595 if (flags&( 0x00000010 )){
596 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_SIGN");
597 if (flags & (~( 0x00000010 )))
598 proto_item_append_text(item, ", ");
600 flags&=(~( 0x00000010 ));
602 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL, tvb, offset-4, 4, flags);
603 if (flags&( 0x00000020 )){
604 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_SEAL");
605 if (flags & (~( 0x00000020 )))
606 proto_item_append_text(item, ", ");
608 flags&=(~( 0x00000020 ));
610 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM, tvb, offset-4, 4, flags);
611 if (flags&( 0x00000040 )){
612 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_DATAGRAM");
613 if (flags & (~( 0x00000040 )))
614 proto_item_append_text(item, ", ");
616 flags&=(~( 0x00000040 ));
618 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY, tvb, offset-4, 4, flags);
619 if (flags&( 0x00000080 )){
620 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_LM_KEY");
621 if (flags & (~( 0x00000080 )))
622 proto_item_append_text(item, ", ");
624 flags&=(~( 0x00000080 ));
626 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE, tvb, offset-4, 4, flags);
627 if (flags&( 0x00000100 )){
628 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_NETWARE");
629 if (flags & (~( 0x00000100 )))
630 proto_item_append_text(item, ", ");
632 flags&=(~( 0x00000100 ));
634 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM, tvb, offset-4, 4, flags);
635 if (flags&( 0x00000200 )){
636 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_NTLM");
637 if (flags & (~( 0x00000200 )))
638 proto_item_append_text(item, ", ");
640 flags&=(~( 0x00000200 ));
642 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY, tvb, offset-4, 4, flags);
643 if (flags&( 0x00000400 )){
644 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_NT_ONLY");
645 if (flags & (~( 0x00000400 )))
646 proto_item_append_text(item, ", ");
648 flags&=(~( 0x00000400 ));
650 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_ANONYMOUS, tvb, offset-4, 4, flags);
651 if (flags&( 0x00000800 )){
652 proto_item_append_text(item, "NTLMSSP_ANONYMOUS");
653 if (flags & (~( 0x00000800 )))
654 proto_item_append_text(item, ", ");
656 flags&=(~( 0x00000800 ));
658 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED, tvb, offset-4, 4, flags);
659 if (flags&( 0x00001000 )){
660 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED");
661 if (flags & (~( 0x00001000 )))
662 proto_item_append_text(item, ", ");
664 flags&=(~( 0x00001000 ));
666 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED, tvb, offset-4, 4, flags);
667 if (flags&( 0x00002000 )){
668 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED");
669 if (flags & (~( 0x00002000 )))
670 proto_item_append_text(item, ", ");
672 flags&=(~( 0x00002000 ));
674 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL, tvb, offset-4, 4, flags);
675 if (flags&( 0x00004000 )){
676 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL");
677 if (flags & (~( 0x00004000 )))
678 proto_item_append_text(item, ", ");
680 flags&=(~( 0x00004000 ));
682 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN, tvb, offset-4, 4, flags);
683 if (flags&( 0x00008000 )){
684 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_ALWAYS_SIGN");
685 if (flags & (~( 0x00008000 )))
686 proto_item_append_text(item, ", ");
688 flags&=(~( 0x00008000 ));
690 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN, tvb, offset-4, 4, flags);
691 if (flags&( 0x00010000 )){
692 proto_item_append_text(item, "NTLMSSP_TARGET_TYPE_DOMAIN");
693 if (flags & (~( 0x00010000 )))
694 proto_item_append_text(item, ", ");
696 flags&=(~( 0x00010000 ));
698 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER, tvb, offset-4, 4, flags);
699 if (flags&( 0x00020000 )){
700 proto_item_append_text(item, "NTLMSSP_TARGET_TYPE_SERVER");
701 if (flags & (~( 0x00020000 )))
702 proto_item_append_text(item, ", ");
704 flags&=(~( 0x00020000 ));
706 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE, tvb, offset-4, 4, flags);
707 if (flags&( 0x00040000 )){
708 proto_item_append_text(item, "NTLMSSP_TARGET_TYPE_SHARE");
709 if (flags & (~( 0x00040000 )))
710 proto_item_append_text(item, ", ");
712 flags&=(~( 0x00040000 ));
714 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY, tvb, offset-4, 4, flags);
715 if (flags&( 0x00080000 )){
716 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY");
717 if (flags & (~( 0x00080000 )))
718 proto_item_append_text(item, ", ");
720 flags&=(~( 0x00080000 ));
722 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY, tvb, offset-4, 4, flags);
723 if (flags&( 0x00100000 )){
724 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_IDENTIFY");
725 if (flags & (~( 0x00100000 )))
726 proto_item_append_text(item, ", ");
728 flags&=(~( 0x00100000 ));
730 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY, tvb, offset-4, 4, flags);
731 if (flags&( 0x00400000 )){
732 proto_item_append_text(item, "NTLMSSP_REQUEST_NON_NT_SESSION_KEY");
733 if (flags & (~( 0x00400000 )))
734 proto_item_append_text(item, ", ");
736 flags&=(~( 0x00400000 ));
738 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO, tvb, offset-4, 4, flags);
739 if (flags&( 0x00800000 )){
740 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_TARGET_INFO");
741 if (flags & (~( 0x00800000 )))
742 proto_item_append_text(item, ", ");
744 flags&=(~( 0x00800000 ));
746 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION, tvb, offset-4, 4, flags);
747 if (flags&( 0x02000000 )){
748 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_VERSION");
749 if (flags & (~( 0x02000000 )))
750 proto_item_append_text(item, ", ");
752 flags&=(~( 0x02000000 ));
754 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_128, tvb, offset-4, 4, flags);
755 if (flags&( 0x20000000 )){
756 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_128");
757 if (flags & (~( 0x20000000 )))
758 proto_item_append_text(item, ", ");
760 flags&=(~( 0x20000000 ));
762 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH, tvb, offset-4, 4, flags);
763 if (flags&( 0x40000000 )){
764 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_KEY_EXCH");
765 if (flags & (~( 0x40000000 )))
766 proto_item_append_text(item, ", ");
768 flags&=(~( 0x40000000 ));
770 proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_56, tvb, offset-4, 4, flags);
771 if (flags&( 0x80000000 )){
772 proto_item_append_text(item, "NTLMSSP_NEGOTIATE_56");
773 if (flags & (~( 0x80000000 )))
774 proto_item_append_text(item, ", ");
776 flags&=(~( 0x80000000 ));
779 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
787 /* IDL: NTLMSSP_WINDOWS_MAJOR_VERSION_5=0x05, */
788 /* IDL: NTLMSSP_WINDOWS_MAJOR_VERSION_6=0x06, */
792 ntlmssp_dissect_enum_WindowsMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
796 parameter=(guint8)*param;
798 offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
800 *param=(guint32)parameter;
807 /* IDL: NTLMSSP_WINDOWS_MINOR_VERSION_0=0x00, */
808 /* IDL: NTLMSSP_WINDOWS_MINOR_VERSION_1=0x01, */
809 /* IDL: NTLMSSP_WINDOWS_MINOR_VERSION_2=0x02, */
813 ntlmssp_dissect_enum_WindowsMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
817 parameter=(guint8)*param;
819 offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
821 *param=(guint32)parameter;
828 /* IDL: NTLMSSP_REVISION_W2K3_RC1=0x0A, */
829 /* IDL: NTLMSSP_REVISION_W2K3=0x0F, */
833 ntlmssp_dissect_enum_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
837 parameter=(guint8)*param;
839 offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
841 *param=(guint32)parameter;
848 /* IDL: ntlmssp_WindowsMajorVersion ProductMajorVersion; */
849 /* IDL: ntlmssp_WindowsMinorVersion ProductMinorVersion; */
850 /* IDL: uint16 ProductBuild; */
851 /* IDL: uint8 Reserved[3]; */
852 /* IDL: ntlmssp_NTLMRevisionCurrent NTLMRevisionCurrent; */
856 ntlmssp_dissect_element_VERSION_ProductMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
858 offset = ntlmssp_dissect_enum_WindowsMajorVersion(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_ProductMajorVersion, 0);
864 ntlmssp_dissect_element_VERSION_ProductMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
866 offset = ntlmssp_dissect_enum_WindowsMinorVersion(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_ProductMinorVersion, 0);
872 ntlmssp_dissect_element_VERSION_ProductBuild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
874 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_ProductBuild, 0);
880 ntlmssp_dissect_element_VERSION_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
882 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
883 int conformant = di->conformant_run;
885 offset = ntlmssp_dissect_element_VERSION_Reserved_(tvb, offset, 3, pinfo, tree, drep);
892 ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
894 proto_tree_add_bytes(tree, hf_ntlmssp_ntlmssp_VERSION_Reserved, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
900 ntlmssp_dissect_element_VERSION_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
902 offset = ntlmssp_dissect_enum_NTLMRevisionCurrent(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_NTLMRevisionCurrent, 0);
908 ntlmssp_dissect_struct_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
910 proto_item *item = NULL;
911 proto_tree *tree = NULL;
912 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
920 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
921 tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_VERSION);
924 offset = ntlmssp_dissect_element_VERSION_ProductMajorVersion(tvb, offset, pinfo, tree, drep);
926 offset = ntlmssp_dissect_element_VERSION_ProductMinorVersion(tvb, offset, pinfo, tree, drep);
928 offset = ntlmssp_dissect_element_VERSION_ProductBuild(tvb, offset, pinfo, tree, drep);
930 offset = ntlmssp_dissect_element_VERSION_Reserved(tvb, offset, pinfo, tree, drep);
932 offset = ntlmssp_dissect_element_VERSION_NTLMRevisionCurrent(tvb, offset, pinfo, tree, drep);
935 proto_item_set_len(item, offset-old_offset);
938 if (di->call_data->flags & DCERPC_IS_NDR64) {
946 /* IDL: [noprint(1)] [nodiscriminant(1)] union { */
947 /* IDL: [case(NTLMSSP_NEGOTIATE_VERSION)] [case(NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_VERSION version; */
948 /* IDL: [default] ; */
952 ntlmssp_dissect_element_Version_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
954 offset = ntlmssp_dissect_struct_VERSION(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_Version_version,0);
960 ntlmssp_dissect_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
962 proto_item *item = NULL;
963 proto_tree *tree = NULL;
965 guint32 level = param;
969 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_Version");
970 tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_Version);
974 case NTLMSSP_NEGOTIATE_VERSION:
975 offset = ntlmssp_dissect_element_Version_version(tvb, offset, pinfo, tree, drep);
981 proto_item_set_len(item, offset-old_offset);
988 /* IDL: [value("NTLMSSP")] [charset(DOS)] uint8 Signature[8]; */
989 /* IDL: [value(NtLmNegotiate)] ntlmssp_MessageType MessageType; */
990 /* IDL: NEGOTIATE NegotiateFlags; */
991 /* IDL: [value(DomainName?strlen(DomainName):0)] uint16 DomainNameLen; */
992 /* IDL: [value(DomainNameLen)] uint16 DomainNameMaxLen; */
993 /* IDL: [relative(1)] [subcontext_size(DomainNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM))] string *DomainName; */
994 /* IDL: [value(Workstation?strlen(Workstation):0)] uint16 WorkstationLen; */
995 /* IDL: [value(WorkstationLen)] uint16 WorkstationMaxLen; */
996 /* IDL: [relative(1)] [subcontext_size(WorkstationLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM))] string *Workstation; */
997 /* IDL: [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version; */
1001 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1003 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1004 int conformant = di->conformant_run;
1006 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvb, offset, 8, pinfo, tree, drep);
1013 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1015 proto_tree_add_bytes(tree, hf_ntlmssp_NEGOTIATE_MESSAGE_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
1021 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1023 offset = ntlmssp_dissect_enum_MessageType(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_MessageType, 0);
1029 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1031 offset = ntlmssp_dissect_bitmap_NEGOTIATE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_NegotiateFlags, 0);
1037 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1039 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameLen, 0);
1045 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1047 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameMaxLen, 0);
1053 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1055 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName_, , "Pointer to Domainname (string)",hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName);
1061 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1063 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1065 int conformant = di->conformant_run;
1069 guint32 saved_flags = di->call_data->flags;
1070 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName_, &size);
1071 di->call_data->flags &= ~DCERPC_IS_NDR64;
1072 subtvb = tvb_new_subset(tvb, offset, size, -1);
1073 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName__(subtvb, 0, pinfo, tree, drep);
1075 di->call_data->flags = saved_flags;
1082 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1089 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1091 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationLen, 0);
1097 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1099 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationMaxLen, 0);
1105 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1107 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation_, , "Pointer to Workstation (string)",hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation);
1113 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1115 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1117 int conformant = di->conformant_run;
1121 guint32 saved_flags = di->call_data->flags;
1122 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation_, &size);
1123 di->call_data->flags &= ~DCERPC_IS_NDR64;
1124 subtvb = tvb_new_subset(tvb, offset, size, -1);
1125 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation__(subtvb, 0, pinfo, tree, drep);
1127 di->call_data->flags = saved_flags;
1134 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1141 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *)
1143 offset = ntlmssp_dissect_Version(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_Version, *);
1149 ntlmssp_dissect_struct_NEGOTIATE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1151 proto_item *item = NULL;
1152 proto_tree *tree = NULL;
1153 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1158 old_offset = offset;
1161 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1162 tree = proto_item_add_subtree(item, ett_ntlmssp_NEGOTIATE_MESSAGE);
1165 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvb, offset, pinfo, tree, drep);
1167 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_MessageType(tvb, offset, pinfo, tree, drep);
1169 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_NegotiateFlags(tvb, offset, pinfo, tree, drep);
1171 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameLen(tvb, offset, pinfo, tree, drep);
1173 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameMaxLen(tvb, offset, pinfo, tree, drep);
1175 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName(tvb, offset, pinfo, tree, drep);
1177 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationLen(tvb, offset, pinfo, tree, drep);
1179 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationMaxLen(tvb, offset, pinfo, tree, drep);
1181 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation(tvb, offset, pinfo, tree, drep);
1183 offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Version(tvb, offset, pinfo, tree, drep, &);
1186 proto_item_set_len(item, offset-old_offset);
1189 if (di->call_data->flags & DCERPC_IS_NDR64) {
1198 /* IDL: MsvAvEOL=0, */
1199 /* IDL: MsvAvNbComputerName=1, */
1200 /* IDL: MsvAvNbDomainName=2, */
1201 /* IDL: MsvAvDnsComputerName=3, */
1202 /* IDL: MsvAvDnsDomainName=4, */
1203 /* IDL: MsvAvDnsTreeName=5, */
1204 /* IDL: MsvAvFlags=6, */
1205 /* IDL: MsvAvTimestamp=7, */
1206 /* IDL: MsAvRestrictions=8, */
1207 /* IDL: MsvAvTargetName=9, */
1208 /* IDL: MsvChannelBindings=10, */
1212 ntlmssp_dissect_enum_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
1214 guint1632 parameter=0;
1216 parameter=(guint1632)*param;
1218 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
1220 *param=(guint32)parameter;
1227 /* IDL: uint32 Size; */
1228 /* IDL: [value(0)] uint32 Z4; */
1229 /* IDL: uint32 IntegrityLevel; */
1230 /* IDL: uint32 SubjectIntegrityLevel; */
1231 /* IDL: uint8 MachineId[32]; */
1235 ntlmssp_dissect_element_Restriction_Encoding_Size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1237 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_Size, 0);
1243 ntlmssp_dissect_element_Restriction_Encoding_Z4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1245 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_Z4, 0);
1251 ntlmssp_dissect_element_Restriction_Encoding_IntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1253 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_IntegrityLevel, 0);
1259 ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1261 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_SubjectIntegrityLevel, 0);
1267 ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1269 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1270 int conformant = di->conformant_run;
1272 offset = ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvb, offset, 32, pinfo, tree, drep);
1279 ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1281 proto_tree_add_bytes(tree, hf_ntlmssp_Restriction_Encoding_MachineId, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
1287 ntlmssp_dissect_struct_Restriction_Encoding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1289 proto_item *item = NULL;
1290 proto_tree *tree = NULL;
1291 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1296 old_offset = offset;
1299 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1300 tree = proto_item_add_subtree(item, ett_ntlmssp_Restriction_Encoding);
1303 offset = ntlmssp_dissect_element_Restriction_Encoding_Size(tvb, offset, pinfo, tree, drep);
1305 offset = ntlmssp_dissect_element_Restriction_Encoding_Z4(tvb, offset, pinfo, tree, drep);
1307 offset = ntlmssp_dissect_element_Restriction_Encoding_IntegrityLevel(tvb, offset, pinfo, tree, drep);
1309 offset = ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvb, offset, pinfo, tree, drep);
1311 offset = ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvb, offset, pinfo, tree, drep);
1314 proto_item_set_len(item, offset-old_offset);
1317 if (di->call_data->flags & DCERPC_IS_NDR64) {
1326 /* IDL: NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT = 0x00000001 , */
1327 /* IDL: NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE = 0x00000002 , */
1331 ntlmssp_dissect_bitmap_AvFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1333 proto_item *item = NULL;
1334 proto_tree *tree = NULL;
1340 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
1341 tree = proto_item_add_subtree(item,ett_ntlmssp_ntlmssp_AvFlags);
1344 offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
1345 proto_item_append_text(item, ": ");
1348 proto_item_append_text(item, "(No values set)");
1350 proto_tree_add_boolean(tree, hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT, tvb, offset-4, 4, flags);
1351 if (flags&( 0x00000001 )){
1352 proto_item_append_text(item, "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT");
1353 if (flags & (~( 0x00000001 )))
1354 proto_item_append_text(item, ", ");
1356 flags&=(~( 0x00000001 ));
1358 proto_tree_add_boolean(tree, hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE, tvb, offset-4, 4, flags);
1359 if (flags&( 0x00000002 )){
1360 proto_item_append_text(item, "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE");
1361 if (flags & (~( 0x00000002 )))
1362 proto_item_append_text(item, ", ");
1364 flags&=(~( 0x00000002 ));
1367 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
1374 /* IDL: [gensize(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_NOALIGN)] union { */
1375 /* IDL: [case(MsvAvEOL)] [case(MsvAvEOL)] EMPTY ; */
1376 /* IDL: [case(MsvAvNbComputerName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvNbComputerName)] string AvNbComputerName; */
1377 /* IDL: [case(MsvAvNbDomainName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvNbDomainName)] string AvNbDomainName; */
1378 /* IDL: [case(MsvAvDnsComputerName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvDnsComputerName)] string AvDnsComputerName; */
1379 /* IDL: [case(MsvAvDnsDomainName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvDnsDomainName)] string AvDnsDomainName; */
1380 /* IDL: [case(MsvAvDnsTreeName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvDnsTreeName)] string AvDnsTreeName; */
1381 /* IDL: [case(MsvAvFlags)] [case(MsvAvFlags)] ntlmssp_AvFlags AvFlags; */
1382 /* IDL: [case(MsvAvTimestamp)] [case(MsvAvTimestamp)] NTTIME AvTimestamp; */
1383 /* IDL: [case(MsAvRestrictions)] [case(MsAvRestrictions)] Restriction_Encoding AvRestrictions; */
1384 /* IDL: [case(MsvAvTargetName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvTargetName)] string AvTargetName; */
1385 /* IDL: [case(MsvChannelBindings)] [case(MsvChannelBindings)] uint8 ChannelBindings[16]; */
1386 /* IDL: [default] ; */
1390 ntlmssp_dissect_element_AvValue_AvNbComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1397 ntlmssp_dissect_element_AvValue_AvNbDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1404 ntlmssp_dissect_element_AvValue_AvDnsComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1411 ntlmssp_dissect_element_AvValue_AvDnsDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1418 ntlmssp_dissect_element_AvValue_AvDnsTreeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1425 ntlmssp_dissect_element_AvValue_AvFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1427 offset = ntlmssp_dissect_bitmap_AvFlags(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_AvFlags, 0);
1433 ntlmssp_dissect_element_AvValue_AvTimestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1435 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_AvTimestamp);
1441 ntlmssp_dissect_element_AvValue_AvRestrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1443 offset = ntlmssp_dissect_struct_Restriction_Encoding(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_AvValue_AvRestrictions,0);
1449 ntlmssp_dissect_element_AvValue_AvTargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1456 ntlmssp_dissect_element_AvValue_ChannelBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1458 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1459 int conformant = di->conformant_run;
1461 offset = ntlmssp_dissect_element_AvValue_ChannelBindings_(tvb, offset, 16, pinfo, tree, drep);
1468 ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1470 proto_tree_add_bytes(tree, hf_ntlmssp_ntlmssp_AvValue_ChannelBindings, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
1476 ntlmssp_dissect_element_AvValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1478 offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_blob, 1);
1484 ntlmssp_dissect_AvValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1486 proto_item *item = NULL;
1487 proto_tree *tree = NULL;
1489 guint32 level = param;
1491 old_offset = offset;
1493 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_AvValue");
1494 tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_AvValue);
1501 case MsvAvNbComputerName:
1502 offset = ntlmssp_dissect_element_AvValue_AvNbComputerName(tvb, offset, pinfo, tree, drep);
1505 case MsvAvNbDomainName:
1506 offset = ntlmssp_dissect_element_AvValue_AvNbDomainName(tvb, offset, pinfo, tree, drep);
1509 case MsvAvDnsComputerName:
1510 offset = ntlmssp_dissect_element_AvValue_AvDnsComputerName(tvb, offset, pinfo, tree, drep);
1513 case MsvAvDnsDomainName:
1514 offset = ntlmssp_dissect_element_AvValue_AvDnsDomainName(tvb, offset, pinfo, tree, drep);
1517 case MsvAvDnsTreeName:
1518 offset = ntlmssp_dissect_element_AvValue_AvDnsTreeName(tvb, offset, pinfo, tree, drep);
1522 offset = ntlmssp_dissect_element_AvValue_AvFlags(tvb, offset, pinfo, tree, drep);
1525 case MsvAvTimestamp:
1526 offset = ntlmssp_dissect_element_AvValue_AvTimestamp(tvb, offset, pinfo, tree, drep);
1529 case MsAvRestrictions:
1530 offset = ntlmssp_dissect_element_AvValue_AvRestrictions(tvb, offset, pinfo, tree, drep);
1533 case MsvAvTargetName:
1534 offset = ntlmssp_dissect_element_AvValue_AvTargetName(tvb, offset, pinfo, tree, drep);
1537 case MsvChannelBindings:
1538 offset = ntlmssp_dissect_element_AvValue_ChannelBindings(tvb, offset, pinfo, tree, drep);
1542 offset = ntlmssp_dissect_element_AvValue_blob(tvb, offset, pinfo, tree, drep);
1545 proto_item_set_len(item, offset-old_offset);
1552 /* IDL: ntlmssp_AvId AvId; */
1553 /* IDL: [value(ndr_size_ntlmssp_AvValue(&r->Value,r->AvId,0))] uint16 AvLen; */
1554 /* IDL: [subcontext_size(AvLen)] [subcontext(0)] [switch_is(AvId)] ntlmssp_AvValue Value; */
1558 ntlmssp_dissect_element_AV_PAIR_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId)
1560 offset = ntlmssp_dissect_enum_AvId(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_AvId, AvId);
1566 ntlmssp_dissect_element_AV_PAIR_AvLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1568 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_AvLen, 0);
1574 ntlmssp_dissect_element_AV_PAIR_Value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId)
1576 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1578 int conformant = di->conformant_run;
1582 guint32 saved_flags = di->call_data->flags;
1583 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_Value_, &size);
1584 di->call_data->flags &= ~DCERPC_IS_NDR64;
1585 subtvb = tvb_new_subset(tvb, offset, size, -1);
1586 ntlmssp_dissect_element_AV_PAIR_Value_(subtvb, 0, pinfo, tree, drep, AvId);
1588 di->call_data->flags = saved_flags;
1595 ntlmssp_dissect_element_AV_PAIR_Value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId)
1597 offset = ntlmssp_dissect_AvValue(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_Value, *AvId);
1603 ntlmssp_dissect_struct_AV_PAIR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1606 proto_item *item = NULL;
1607 proto_tree *tree = NULL;
1608 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1612 old_offset = offset;
1615 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1616 tree = proto_item_add_subtree(item, ett_ntlmssp_AV_PAIR);
1619 offset = ntlmssp_dissect_element_AV_PAIR_AvId(tvb, offset, pinfo, tree, drep, &AvId);
1621 offset = ntlmssp_dissect_element_AV_PAIR_AvLen(tvb, offset, pinfo, tree, drep);
1623 offset = ntlmssp_dissect_element_AV_PAIR_Value(tvb, offset, pinfo, tree, drep, &AvId);
1626 proto_item_set_len(item, offset-old_offset);
1629 if (di->call_data->flags & DCERPC_IS_NDR64) {
1638 /* IDL: uint32 count; */
1639 /* IDL: AV_PAIR pair[count]; */
1643 ntlmssp_dissect_element_AV_PAIR_LIST_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1645 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_LIST_count, 0);
1651 ntlmssp_dissect_element_AV_PAIR_LIST_pair(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1658 ntlmssp_dissect_element_AV_PAIR_LIST_pair_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1660 offset = ntlmssp_dissect_struct_AV_PAIR(tvb,offset,pinfo,tree,drep,hf_ntlmssp_AV_PAIR_LIST_pair,0);
1666 ntlmssp_dissect_struct_AV_PAIR_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1668 proto_item *item = NULL;
1669 proto_tree *tree = NULL;
1670 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1674 old_offset = offset;
1677 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1678 tree = proto_item_add_subtree(item, ett_ntlmssp_AV_PAIR_LIST);
1681 offset = ntlmssp_dissect_element_AV_PAIR_LIST_count(tvb, offset, pinfo, tree, drep);
1683 offset = ntlmssp_dissect_element_AV_PAIR_LIST_pair(tvb, offset, pinfo, tree, drep);
1686 proto_item_set_len(item, offset-old_offset);
1689 if (di->call_data->flags & DCERPC_IS_NDR64) {
1698 /* IDL: [value("NTLMSSP")] [charset(DOS)] uint8 Signature[8]; */
1699 /* IDL: [value(NtLmChallenge)] ntlmssp_MessageType MessageType; */
1700 /* IDL: [value(ndr_ntlmssp_string_length(NegotiateFlags,TargetName))] uint16 TargetNameLen; */
1701 /* IDL: [value(TargetNameLen)] uint16 TargetNameMaxLen; */
1702 /* IDL: [relative(1)] [subcontext_size(TargetNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *TargetName; */
1703 /* IDL: NEGOTIATE NegotiateFlags; */
1704 /* IDL: uint8 ServerChallenge[8]; */
1705 /* IDL: uint8 Reserved[8]; */
1706 /* IDL: [value(ndr_size_AV_PAIR_LIST(TargetInfo,ndr->flags))] uint16 TargetInfoLen; */
1707 /* IDL: [value(TargetInfoLen)] uint16 TargetNameInfoMaxLen; */
1708 /* IDL: [relative(1)] [subcontext_size(TargetInfoLen)] [subcontext(0)] AV_PAIR_LIST *TargetInfo; */
1709 /* IDL: [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version; */
1713 ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1715 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1716 int conformant = di->conformant_run;
1718 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvb, offset, 8, pinfo, tree, drep);
1725 ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1727 proto_tree_add_bytes(tree, hf_ntlmssp_CHALLENGE_MESSAGE_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
1733 ntlmssp_dissect_element_CHALLENGE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1735 offset = ntlmssp_dissect_enum_MessageType(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_MessageType, 0);
1741 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1743 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameLen, 0);
1749 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1751 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameMaxLen, 0);
1757 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1759 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName_, , "Pointer to Targetname (string)",hf_ntlmssp_CHALLENGE_MESSAGE_TargetName);
1765 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1767 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1769 int conformant = di->conformant_run;
1773 guint32 saved_flags = di->call_data->flags;
1774 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetName_, &size);
1775 di->call_data->flags &= ~DCERPC_IS_NDR64;
1776 subtvb = tvb_new_subset(tvb, offset, size, -1);
1777 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName__(subtvb, 0, pinfo, tree, drep);
1779 di->call_data->flags = saved_flags;
1786 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1793 ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1795 offset = ntlmssp_dissect_bitmap_NEGOTIATE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_NegotiateFlags, 0);
1801 ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1803 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1804 int conformant = di->conformant_run;
1806 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvb, offset, 8, pinfo, tree, drep);
1813 ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1815 proto_tree_add_bytes(tree, hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
1821 ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1823 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1824 int conformant = di->conformant_run;
1826 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvb, offset, 8, pinfo, tree, drep);
1833 ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1835 proto_tree_add_bytes(tree, hf_ntlmssp_CHALLENGE_MESSAGE_Reserved, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
1841 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfoLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1843 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfoLen, 0);
1849 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameInfoMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1851 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameInfoMaxLen, 0);
1857 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1859 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo_, , "Pointer to Targetinfo (AV_PAIR_LIST)",hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo);
1865 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1867 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1869 int conformant = di->conformant_run;
1873 guint32 saved_flags = di->call_data->flags;
1874 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo_, &size);
1875 di->call_data->flags &= ~DCERPC_IS_NDR64;
1876 subtvb = tvb_new_subset(tvb, offset, size, -1);
1877 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo__(subtvb, 0, pinfo, tree, drep);
1879 di->call_data->flags = saved_flags;
1886 ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1888 offset = ntlmssp_dissect_struct_AV_PAIR_LIST(tvb,offset,pinfo,tree,drep,hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo,0);
1894 ntlmssp_dissect_element_CHALLENGE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *)
1896 offset = ntlmssp_dissect_Version(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_Version, *);
1902 ntlmssp_dissect_struct_CHALLENGE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1904 proto_item *item = NULL;
1905 proto_tree *tree = NULL;
1906 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1911 old_offset = offset;
1914 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1915 tree = proto_item_add_subtree(item, ett_ntlmssp_CHALLENGE_MESSAGE);
1918 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvb, offset, pinfo, tree, drep);
1920 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_MessageType(tvb, offset, pinfo, tree, drep);
1922 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameLen(tvb, offset, pinfo, tree, drep);
1924 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameMaxLen(tvb, offset, pinfo, tree, drep);
1926 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName(tvb, offset, pinfo, tree, drep);
1928 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvb, offset, pinfo, tree, drep);
1930 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvb, offset, pinfo, tree, drep);
1932 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvb, offset, pinfo, tree, drep);
1934 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfoLen(tvb, offset, pinfo, tree, drep);
1936 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameInfoMaxLen(tvb, offset, pinfo, tree, drep);
1938 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo(tvb, offset, pinfo, tree, drep);
1940 offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Version(tvb, offset, pinfo, tree, drep, &);
1943 proto_item_set_len(item, offset-old_offset);
1946 if (di->call_data->flags & DCERPC_IS_NDR64) {
1955 /* IDL: uint8 Response[24]; */
1959 ntlmssp_dissect_element_LM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1961 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
1962 int conformant = di->conformant_run;
1964 offset = ntlmssp_dissect_element_LM_RESPONSE_Response_(tvb, offset, 24, pinfo, tree, drep);
1971 ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1973 proto_tree_add_bytes(tree, hf_ntlmssp_LM_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
1979 ntlmssp_dissect_struct_LM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1981 proto_item *item = NULL;
1982 proto_tree *tree = NULL;
1986 old_offset = offset;
1989 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1990 tree = proto_item_add_subtree(item, ett_ntlmssp_LM_RESPONSE);
1993 offset = ntlmssp_dissect_element_LM_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
1996 proto_item_set_len(item, offset-old_offset);
2004 /* IDL: uint8 Response[16]; */
2005 /* IDL: uint8 ChallengeFromClient[8]; */
2009 ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2011 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2012 int conformant = di->conformant_run;
2014 offset = ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvb, offset, 16, pinfo, tree, drep);
2021 ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2023 proto_tree_add_bytes(tree, hf_ntlmssp_LMv2_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
2029 ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2031 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2032 int conformant = di->conformant_run;
2034 offset = ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvb, offset, 8, pinfo, tree, drep);
2041 ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2043 proto_tree_add_bytes(tree, hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
2049 ntlmssp_dissect_struct_LMv2_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2051 proto_item *item = NULL;
2052 proto_tree *tree = NULL;
2056 old_offset = offset;
2059 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2060 tree = proto_item_add_subtree(item, ett_ntlmssp_LMv2_RESPONSE);
2063 offset = ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
2065 offset = ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvb, offset, pinfo, tree, drep);
2068 proto_item_set_len(item, offset-old_offset);
2075 /* IDL: [nodiscriminant(1)] union { */
2076 /* IDL: [case(24)] [case(24)] LM_RESPONSE v1; */
2077 /* IDL: [default] ; */
2081 ntlmssp_dissect_element_LM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2083 offset = ntlmssp_dissect_struct_LM_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_LM_RESPONSE_v1,0);
2089 ntlmssp_dissect_LM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2091 proto_item *item = NULL;
2092 proto_tree *tree = NULL;
2094 guint32 level = param;
2096 old_offset = offset;
2098 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_LM_RESPONSE");
2099 tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_LM_RESPONSE);
2104 offset = ntlmssp_dissect_element_LM_RESPONSE_v1(tvb, offset, pinfo, tree, drep);
2110 proto_item_set_len(item, offset-old_offset);
2117 /* IDL: uint8 Response[24]; */
2121 ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2123 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2124 int conformant = di->conformant_run;
2126 offset = ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvb, offset, 24, pinfo, tree, drep);
2133 ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2135 proto_tree_add_bytes(tree, hf_ntlmssp_NTLM_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
2141 ntlmssp_dissect_struct_NTLM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2143 proto_item *item = NULL;
2144 proto_tree *tree = NULL;
2148 old_offset = offset;
2151 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2152 tree = proto_item_add_subtree(item, ett_ntlmssp_NTLM_RESPONSE);
2155 offset = ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
2158 proto_item_set_len(item, offset-old_offset);
2166 /* IDL: [value(1)] uint8 RespType; */
2167 /* IDL: [value(1)] uint8 HiRespType; */
2168 /* IDL: uint16 Reserved1; */
2169 /* IDL: uint32 Reserved2; */
2170 /* IDL: NTTIME TimeStamp; */
2171 /* IDL: uint8 ChallengeFromClient[8]; */
2172 /* IDL: uint32 Reserved3; */
2173 /* IDL: [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] AV_PAIR_LIST AvPairs; */
2177 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_RespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2179 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_RespType, 0);
2185 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_HiRespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2187 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_HiRespType, 0);
2193 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2195 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved1, 0);
2201 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2203 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved2, 0);
2209 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2211 offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_TimeStamp);
2217 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2219 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2220 int conformant = di->conformant_run;
2222 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvb, offset, 8, pinfo, tree, drep);
2229 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2231 proto_tree_add_bytes(tree, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
2237 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2239 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved3, 0);
2245 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2247 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2249 int conformant = di->conformant_run;
2253 guint32 saved_flags = di->call_data->flags;
2254 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs_, &size);
2255 di->call_data->flags &= ~DCERPC_IS_NDR64;
2256 subtvb = tvb_new_subset(tvb, offset, size, -1);
2257 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs_(subtvb, 0, pinfo, tree, drep);
2259 di->call_data->flags = saved_flags;
2266 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2268 offset = ntlmssp_dissect_struct_AV_PAIR_LIST(tvb,offset,pinfo,tree,drep,hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs,0);
2274 ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2276 proto_item *item = NULL;
2277 proto_tree *tree = NULL;
2278 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2283 old_offset = offset;
2286 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2287 tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMv2_CLIENT_CHALLENGE);
2290 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_RespType(tvb, offset, pinfo, tree, drep);
2292 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_HiRespType(tvb, offset, pinfo, tree, drep);
2294 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved1(tvb, offset, pinfo, tree, drep);
2296 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved2(tvb, offset, pinfo, tree, drep);
2298 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvb, offset, pinfo, tree, drep);
2300 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvb, offset, pinfo, tree, drep);
2302 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved3(tvb, offset, pinfo, tree, drep);
2304 offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs(tvb, offset, pinfo, tree, drep);
2307 proto_item_set_len(item, offset-old_offset);
2310 if (di->call_data->flags & DCERPC_IS_NDR64) {
2319 /* IDL: uint8 Response[16]; */
2320 /* IDL: NTLMv2_CLIENT_CHALLENGE Challenge; */
2324 ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2326 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2327 int conformant = di->conformant_run;
2329 offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvb, offset, 16, pinfo, tree, drep);
2336 ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2338 proto_tree_add_bytes(tree, hf_ntlmssp_NTLMv2_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
2344 ntlmssp_dissect_element_NTLMv2_RESPONSE_Challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2346 offset = ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_NTLMv2_RESPONSE_Challenge,0);
2352 ntlmssp_dissect_struct_NTLMv2_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2354 proto_item *item = NULL;
2355 proto_tree *tree = NULL;
2356 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2361 old_offset = offset;
2364 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2365 tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMv2_RESPONSE);
2368 offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
2370 offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Challenge(tvb, offset, pinfo, tree, drep);
2373 proto_item_set_len(item, offset-old_offset);
2376 if (di->call_data->flags & DCERPC_IS_NDR64) {
2384 /* IDL: [public(1)] [nodiscriminant(1)] union { */
2385 /* IDL: [case(0)] [case(0)] EMPTY ; */
2386 /* IDL: [case(0x18)] [case(0x18)] NTLM_RESPONSE v1; */
2387 /* IDL: [default] ; */
2391 ntlmssp_dissect_element_NTLM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2393 offset = ntlmssp_dissect_struct_NTLM_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v1,0);
2399 ntlmssp_dissect_element_NTLM_RESPONSE_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2401 offset = ntlmssp_dissect_struct_NTLMv2_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v2,0);
2407 ntlmssp_dissect_NTLM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2409 proto_item *item = NULL;
2410 proto_tree *tree = NULL;
2412 guint32 level = param;
2414 old_offset = offset;
2416 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_NTLM_RESPONSE");
2417 tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_NTLM_RESPONSE);
2425 offset = ntlmssp_dissect_element_NTLM_RESPONSE_v1(tvb, offset, pinfo, tree, drep);
2429 offset = ntlmssp_dissect_element_NTLM_RESPONSE_v2(tvb, offset, pinfo, tree, drep);
2432 proto_item_set_len(item, offset-old_offset);
2439 /* IDL: uint8 MIC[16]; */
2443 ntlmssp_dissect_element_MIC_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2445 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2446 int conformant = di->conformant_run;
2448 offset = ntlmssp_dissect_element_MIC_MIC_(tvb, offset, 16, pinfo, tree, drep);
2455 ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2457 proto_tree_add_bytes(tree, hf_ntlmssp_MIC_MIC, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
2463 ntlmssp_dissect_struct_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2465 proto_item *item = NULL;
2466 proto_tree *tree = NULL;
2470 old_offset = offset;
2473 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2474 tree = proto_item_add_subtree(item, ett_ntlmssp_MIC);
2477 offset = ntlmssp_dissect_element_MIC_MIC(tvb, offset, pinfo, tree, drep);
2480 proto_item_set_len(item, offset-old_offset);
2488 /* IDL: [value("NTLMSSP")] [charset(DOS)] uint8 Signature[8]; */
2489 /* IDL: [value(NtLmAuthenticate)] ntlmssp_MessageType MessageType; */
2490 /* IDL: uint16 LmChallengeResponseLen; */
2491 /* IDL: [value(LmChallengeResponseLen)] uint16 LmChallengeResponseMaxLen; */
2492 /* IDL: [relative(1)] [subcontext_size(LmChallengeResponseLen)] [subcontext(0)] [switch_is(LmChallengeResponseLen)] ntlmssp_LM_RESPONSE *LmChallengeResponse; */
2493 /* IDL: uint16 NtChallengeResponseLen; */
2494 /* IDL: [value(NtChallengeResponseLen)] uint16 NtChallengeResponseMaxLen; */
2495 /* IDL: [relative(1)] [subcontext_size(NtChallengeResponseMaxLen)] [subcontext(0)] [switch_is(NtChallengeResponseLen)] ntlmssp_NTLM_RESPONSE *NtChallengeResponse; */
2496 /* IDL: [value(ndr_ntlmssp_string_length(NegotiateFlags,DomainName))] uint16 DomainNameLen; */
2497 /* IDL: [value(DomainNameLen)] uint16 DomainNameMaxLen; */
2498 /* IDL: [relative(1)] [subcontext_size(DomainNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *DomainName; */
2499 /* IDL: [value(ndr_ntlmssp_string_length(NegotiateFlags,UserName))] uint16 UserNameLen; */
2500 /* IDL: [value(UserNameLen)] uint16 UserNameMaxLen; */
2501 /* IDL: [relative(1)] [subcontext_size(UserNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *UserName; */
2502 /* IDL: [value(ndr_ntlmssp_string_length(NegotiateFlags,Workstation))] uint16 WorkstationLen; */
2503 /* IDL: [value(WorkstationLen)] uint16 WorkstationMaxLen; */
2504 /* IDL: [relative(1)] [subcontext_size(WorkstationLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *Workstation; */
2505 /* IDL: [value(EncryptedRandomSessionKey->length)] uint16 EncryptedRandomSessionKeyLen; */
2506 /* IDL: [value(EncryptedRandomSessionKeyLen)] uint16 EncryptedRandomSessionKeyMaxLen; */
2507 /* IDL: [relative(1)] [subcontext_size(EncryptedRandomSessionKeyLen)] [subcontext(0)] DATA_BLOB *EncryptedRandomSessionKey; */
2508 /* IDL: NEGOTIATE NegotiateFlags; */
2509 /* IDL: [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version; */
2513 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2515 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2516 int conformant = di->conformant_run;
2518 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvb, offset, 8, pinfo, tree, drep);
2525 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2527 proto_tree_add_bytes(tree, hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
2533 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2535 offset = ntlmssp_dissect_enum_MessageType(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_MessageType, 0);
2541 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen)
2543 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseLen, LmChallengeResponseLen);
2549 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2551 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen, 0);
2557 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen)
2559 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse_, , "Pointer to Lmchallengeresponse (ntlmssp_LM_RESPONSE)",hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse);
2565 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen)
2567 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2569 int conformant = di->conformant_run;
2573 guint32 saved_flags = di->call_data->flags;
2574 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse_, &size);
2575 di->call_data->flags &= ~DCERPC_IS_NDR64;
2576 subtvb = tvb_new_subset(tvb, offset, size, -1);
2577 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse__(subtvb, 0, pinfo, tree, drep, LmChallengeResponseLen);
2579 di->call_data->flags = saved_flags;
2586 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *LmChallengeResponseLen)
2588 offset = ntlmssp_dissect_LM_RESPONSE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse, *LmChallengeResponseLen);
2594 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen)
2596 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseLen, NtChallengeResponseLen);
2602 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2604 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen, 0);
2610 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen)
2612 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse_, , "Pointer to Ntchallengeresponse (ntlmssp_NTLM_RESPONSE)",hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse);
2618 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen)
2620 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2622 int conformant = di->conformant_run;
2626 guint32 saved_flags = di->call_data->flags;
2627 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse_, &size);
2628 di->call_data->flags &= ~DCERPC_IS_NDR64;
2629 subtvb = tvb_new_subset(tvb, offset, size, -1);
2630 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse__(subtvb, 0, pinfo, tree, drep, NtChallengeResponseLen);
2632 di->call_data->flags = saved_flags;
2639 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *NtChallengeResponseLen)
2641 offset = ntlmssp_dissect_NTLM_RESPONSE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse, *NtChallengeResponseLen);
2647 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2649 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameLen, 0);
2655 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2657 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameMaxLen, 0);
2663 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2665 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName_, , "Pointer to Domainname (string)",hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName);
2671 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2673 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2675 int conformant = di->conformant_run;
2679 guint32 saved_flags = di->call_data->flags;
2680 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName_, &size);
2681 di->call_data->flags &= ~DCERPC_IS_NDR64;
2682 subtvb = tvb_new_subset(tvb, offset, size, -1);
2683 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName__(subtvb, 0, pinfo, tree, drep);
2685 di->call_data->flags = saved_flags;
2692 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2699 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2701 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameLen, 0);
2707 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2709 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameMaxLen, 0);
2715 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2717 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName_, , "Pointer to Username (string)",hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName);
2723 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2725 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2727 int conformant = di->conformant_run;
2731 guint32 saved_flags = di->call_data->flags;
2732 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName_, &size);
2733 di->call_data->flags &= ~DCERPC_IS_NDR64;
2734 subtvb = tvb_new_subset(tvb, offset, size, -1);
2735 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName__(subtvb, 0, pinfo, tree, drep);
2737 di->call_data->flags = saved_flags;
2744 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2751 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2753 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationLen, 0);
2759 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2761 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationMaxLen, 0);
2767 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2769 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation_, , "Pointer to Workstation (string)",hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation);
2775 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2777 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2779 int conformant = di->conformant_run;
2783 guint32 saved_flags = di->call_data->flags;
2784 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation_, &size);
2785 di->call_data->flags &= ~DCERPC_IS_NDR64;
2786 subtvb = tvb_new_subset(tvb, offset, size, -1);
2787 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation__(subtvb, 0, pinfo, tree, drep);
2789 di->call_data->flags = saved_flags;
2796 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2803 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2805 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen, 0);
2811 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2813 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen, 0);
2819 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2821 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_, , "Pointer to Encryptedrandomsessionkey (DATA_BLOB)",hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey);
2827 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2829 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
2831 int conformant = di->conformant_run;
2835 guint32 saved_flags = di->call_data->flags;
2836 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_, &size);
2837 di->call_data->flags &= ~DCERPC_IS_NDR64;
2838 subtvb = tvb_new_subset(tvb, offset, size, -1);
2839 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey__(subtvb, 0, pinfo, tree, drep);
2841 di->call_data->flags = saved_flags;
2848 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2850 offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey, 0);
2856 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2858 offset = ntlmssp_dissect_bitmap_NEGOTIATE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NegotiateFlags, 0);
2864 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *)
2866 offset = ntlmssp_dissect_Version(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_Version, *);
2872 ntlmssp_dissect_struct_AUTHENTICATE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2874 guint16 LmChallengeResponseLen;
2875 guint16 NtChallengeResponseLen;
2876 proto_item *item = NULL;
2877 proto_tree *tree = NULL;
2878 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2883 old_offset = offset;
2886 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2887 tree = proto_item_add_subtree(item, ett_ntlmssp_AUTHENTICATE_MESSAGE);
2890 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvb, offset, pinfo, tree, drep);
2892 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_MessageType(tvb, offset, pinfo, tree, drep);
2894 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseLen(tvb, offset, pinfo, tree, drep, &LmChallengeResponseLen);
2896 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen(tvb, offset, pinfo, tree, drep);
2898 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse(tvb, offset, pinfo, tree, drep, &LmChallengeResponseLen);
2900 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseLen(tvb, offset, pinfo, tree, drep, &NtChallengeResponseLen);
2902 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen(tvb, offset, pinfo, tree, drep);
2904 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse(tvb, offset, pinfo, tree, drep, &NtChallengeResponseLen);
2906 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameLen(tvb, offset, pinfo, tree, drep);
2908 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameMaxLen(tvb, offset, pinfo, tree, drep);
2910 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName(tvb, offset, pinfo, tree, drep);
2912 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameLen(tvb, offset, pinfo, tree, drep);
2914 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameMaxLen(tvb, offset, pinfo, tree, drep);
2916 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName(tvb, offset, pinfo, tree, drep);
2918 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationLen(tvb, offset, pinfo, tree, drep);
2920 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationMaxLen(tvb, offset, pinfo, tree, drep);
2922 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation(tvb, offset, pinfo, tree, drep);
2924 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen(tvb, offset, pinfo, tree, drep);
2926 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen(tvb, offset, pinfo, tree, drep);
2928 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey(tvb, offset, pinfo, tree, drep);
2930 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NegotiateFlags(tvb, offset, pinfo, tree, drep);
2932 offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Version(tvb, offset, pinfo, tree, drep, &);
2935 proto_item_set_len(item, offset-old_offset);
2938 if (di->call_data->flags & DCERPC_IS_NDR64) {
2947 /* IDL: [value(NTLMSSP_SIGN_VERSION)] uint32 Version; */
2948 /* IDL: uint32 RandomPad; */
2949 /* IDL: uint32 Checksum; */
2950 /* IDL: uint32 SeqNum; */
2954 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2956 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Version, 0);
2962 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_RandomPad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2964 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_RandomPad, 0);
2970 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2972 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Checksum, 0);
2978 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2980 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_SeqNum, 0);
2986 ntlmssp_dissect_struct_NTLMSSP_MESSAGE_SIGNATURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2988 proto_item *item = NULL;
2989 proto_tree *tree = NULL;
2990 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2995 old_offset = offset;
2998 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2999 tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE);
3002 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Version(tvb, offset, pinfo, tree, drep);
3004 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_RandomPad(tvb, offset, pinfo, tree, drep);
3006 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Checksum(tvb, offset, pinfo, tree, drep);
3008 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_SeqNum(tvb, offset, pinfo, tree, drep);
3011 proto_item_set_len(item, offset-old_offset);
3014 if (di->call_data->flags & DCERPC_IS_NDR64) {
3023 /* IDL: [value(NTLMSSP_SIGN_VERSION)] uint32 Version; */
3024 /* IDL: uint8 Checksum[8]; */
3025 /* IDL: uint32 SeqNum; */
3029 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3031 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version, 0);
3037 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3039 dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
3040 int conformant = di->conformant_run;
3042 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvb, offset, 8, pinfo, tree, drep);
3049 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3051 proto_tree_add_bytes(tree, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
3057 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3059 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum, 0);
3065 ntlmssp_dissect_struct_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
3067 proto_item *item = NULL;
3068 proto_tree *tree = NULL;
3069 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
3074 old_offset = offset;
3077 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3078 tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2);
3081 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvb, offset, pinfo, tree, drep);
3083 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvb, offset, pinfo, tree, drep);
3085 offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum(tvb, offset, pinfo, tree, drep);
3088 proto_item_set_len(item, offset-old_offset);
3091 if (di->call_data->flags & DCERPC_IS_NDR64) {
3099 ntlmssp_dissect_element_decode_NEGOTIATE_MESSAGE_negotiate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3101 offset = ntlmssp_dissect_struct_NEGOTIATE_MESSAGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_NEGOTIATE_MESSAGE_negotiate,0);
3106 /* IDL: void decode_NEGOTIATE_MESSAGE( */
3107 /* IDL: [in] NEGOTIATE_MESSAGE negotiate */
3111 ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3113 pinfo->dcerpc_procedure_name="decode_NEGOTIATE_MESSAGE";
3118 ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3120 pinfo->dcerpc_procedure_name="decode_NEGOTIATE_MESSAGE";
3121 offset = ntlmssp_dissect_element_decode_NEGOTIATE_MESSAGE_negotiate(tvb, offset, pinfo, tree, drep);
3122 offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
3127 ntlmssp_dissect_element_decode_CHALLENGE_MESSAGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3129 offset = ntlmssp_dissect_struct_CHALLENGE_MESSAGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_CHALLENGE_MESSAGE_challenge,0);
3134 /* IDL: void decode_CHALLENGE_MESSAGE( */
3135 /* IDL: [in] CHALLENGE_MESSAGE challenge */
3139 ntlmssp_dissect_decode_CHALLENGE_MESSAGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3141 pinfo->dcerpc_procedure_name="decode_CHALLENGE_MESSAGE";
3146 ntlmssp_dissect_decode_CHALLENGE_MESSAGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3148 pinfo->dcerpc_procedure_name="decode_CHALLENGE_MESSAGE";
3149 offset = ntlmssp_dissect_element_decode_CHALLENGE_MESSAGE_challenge(tvb, offset, pinfo, tree, drep);
3150 offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
3155 ntlmssp_dissect_element_decode_AUTHENTICATE_MESSAGE_authenticate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3157 offset = ntlmssp_dissect_struct_AUTHENTICATE_MESSAGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_AUTHENTICATE_MESSAGE_authenticate,0);
3162 /* IDL: void decode_AUTHENTICATE_MESSAGE( */
3163 /* IDL: [in] AUTHENTICATE_MESSAGE authenticate */
3167 ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3169 pinfo->dcerpc_procedure_name="decode_AUTHENTICATE_MESSAGE";
3174 ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3176 pinfo->dcerpc_procedure_name="decode_AUTHENTICATE_MESSAGE";
3177 offset = ntlmssp_dissect_element_decode_AUTHENTICATE_MESSAGE_authenticate(tvb, offset, pinfo, tree, drep);
3178 offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
3183 ntlmssp_dissect_element_decode_NTLMv2_CLIENT_CHALLENGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3185 offset = ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_NTLMv2_CLIENT_CHALLENGE_challenge,0);
3190 /* IDL: void decode_NTLMv2_CLIENT_CHALLENGE( */
3191 /* IDL: [in] NTLMv2_CLIENT_CHALLENGE challenge */
3195 ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3197 pinfo->dcerpc_procedure_name="decode_NTLMv2_CLIENT_CHALLENGE";
3202 ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3204 pinfo->dcerpc_procedure_name="decode_NTLMv2_CLIENT_CHALLENGE";
3205 offset = ntlmssp_dissect_element_decode_NTLMv2_CLIENT_CHALLENGE_challenge(tvb, offset, pinfo, tree, drep);
3206 offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
3211 ntlmssp_dissect_element_decode_NTLMv2_RESPONSE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3213 offset = ntlmssp_dissect_struct_NTLMv2_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_NTLMv2_RESPONSE_response,0);
3218 /* IDL: void decode_NTLMv2_RESPONSE( */
3219 /* IDL: [in] NTLMv2_RESPONSE response */
3223 ntlmssp_dissect_decode_NTLMv2_RESPONSE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3225 pinfo->dcerpc_procedure_name="decode_NTLMv2_RESPONSE";
3230 ntlmssp_dissect_decode_NTLMv2_RESPONSE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
3232 pinfo->dcerpc_procedure_name="decode_NTLMv2_RESPONSE";
3233 offset = ntlmssp_dissect_element_decode_NTLMv2_RESPONSE_response(tvb, offset, pinfo, tree, drep);
3234 offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
3239 static dcerpc_sub_dissector ntlmssp_dissectors[] = {
3240 { 0, "decode_NEGOTIATE_MESSAGE",
3241 ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_request, ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_response},
3242 { 1, "decode_CHALLENGE_MESSAGE",
3243 ntlmssp_dissect_decode_CHALLENGE_MESSAGE_request, ntlmssp_dissect_decode_CHALLENGE_MESSAGE_response},
3244 { 2, "decode_AUTHENTICATE_MESSAGE",
3245 ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_request, ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_response},
3246 { 3, "decode_NTLMv2_CLIENT_CHALLENGE",
3247 ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_request, ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_response},
3248 { 4, "decode_NTLMv2_RESPONSE",
3249 ntlmssp_dissect_decode_NTLMv2_RESPONSE_request, ntlmssp_dissect_decode_NTLMv2_RESPONSE_response},
3250 { 0, NULL, NULL, NULL }
3253 void proto_register_dcerpc_ntlmssp(void)
3255 static hf_register_info hf[] = {
3256 { &hf_ntlmssp_decode_NTLMv2_RESPONSE_response,
3257 { "Response", "ntlmssp.decode_NTLMv2_RESPONSE.response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3258 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameInfoMaxLen,
3259 { "Targetnameinfomaxlen", "ntlmssp.CHALLENGE_MESSAGE.TargetNameInfoMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3260 { &hf_ntlmssp_ntlmssp_VERSION_Reserved,
3261 { "Reserved", "ntlmssp.ntlmssp_VERSION.Reserved", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3262 { &hf_ntlmssp_ntlmssp_AvValue_AvNbComputerName,
3263 { "Avnbcomputername", "ntlmssp.ntlmssp_AvValue.AvNbComputerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3264 { &hf_ntlmssp_CHALLENGE_MESSAGE_Reserved,
3265 { "Reserved", "ntlmssp.CHALLENGE_MESSAGE.Reserved", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3266 { &hf_ntlmssp_ntlmssp_AvValue_AvTimestamp,
3267 { "Avtimestamp", "ntlmssp.ntlmssp_AvValue.AvTimestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
3268 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM,
3269 { "Ntlmssp Negotiate Oem", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_OEM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_tfs), ( 0x00000002 ), NULL, HFILL }},
3270 { &hf_ntlmssp_Restriction_Encoding_MachineId,
3271 { "Machineid", "ntlmssp.Restriction_Encoding.MachineId", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3272 { &hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationLen,
3273 { "Workstationlen", "ntlmssp.NEGOTIATE_MESSAGE.WorkstationLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3274 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM,
3275 { "Ntlmssp Negotiate Ntlm", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NTLM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM_tfs), ( 0x00000200 ), NULL, HFILL }},
3276 { &hf_ntlmssp_ntlmssp_AvValue_ChannelBindings,
3277 { "Channelbindings", "ntlmssp.ntlmssp_AvValue.ChannelBindings", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3278 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature,
3279 { "Signature", "ntlmssp.AUTHENTICATE_MESSAGE.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3280 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL,
3281 { "Ntlmssp Negotiate Seal", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_SEAL", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL_tfs), ( 0x00000020 ), NULL, HFILL }},
3282 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH,
3283 { "Ntlmssp Negotiate Key Exch", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_KEY_EXCH", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH_tfs), ( 0x40000000 ), NULL, HFILL }},
3284 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved1,
3285 { "Reserved1", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.Reserved1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3286 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs,
3287 { "Avpairs", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.AvPairs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3288 { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName_,
3289 { "Subcontext length", "ntlmssp.NEGOTIATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3290 { &hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationMaxLen,
3291 { "Workstationmaxlen", "ntlmssp.NEGOTIATE_MESSAGE.WorkstationMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3292 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY,
3293 { "Ntlmssp Negotiate Identify", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_IDENTIFY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY_tfs), ( 0x00100000 ), NULL, HFILL }},
3294 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfoLen,
3295 { "Targetinfolen", "ntlmssp.CHALLENGE_MESSAGE.TargetInfoLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3296 { &hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient,
3297 { "Challengefromclient", "ntlmssp.LMv2_RESPONSE.ChallengeFromClient", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3298 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse_,
3299 { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3300 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse,
3301 { "Lmchallengeresponse", "ntlmssp.AUTHENTICATE_MESSAGE.LmChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3302 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED,
3303 { "Ntlmssp Negotiate Oem Workstation Supplied", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED_tfs), ( 0x00002000 ), NULL, HFILL }},
3304 { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Checksum,
3305 { "Checksum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.Checksum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3306 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Version,
3307 { "Version", "ntlmssp.AUTHENTICATE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3308 { &hf_ntlmssp_LM_RESPONSE_Response,
3309 { "Response", "ntlmssp.LM_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3310 { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameLen,
3311 { "Domainnamelen", "ntlmssp.NEGOTIATE_MESSAGE.DomainNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3312 { &hf_ntlmssp_NTLMv2_RESPONSE_Response,
3313 { "Response", "ntlmssp.NTLMv2_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3314 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE,
3315 { "Ntlmssp Negotiate Netware", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NETWARE", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE_tfs), ( 0x00000100 ), NULL, HFILL }},
3316 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_RespType,
3317 { "Resptype", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.RespType", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3318 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameMaxLen,
3319 { "Usernamemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.UserNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3320 { &hf_ntlmssp_ntlmssp_Version_version,
3321 { "Version", "ntlmssp.ntlmssp_Version.version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3322 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameLen,
3323 { "Targetnamelen", "ntlmssp.CHALLENGE_MESSAGE.TargetNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3324 { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameMaxLen,
3325 { "Domainnamemaxlen", "ntlmssp.NEGOTIATE_MESSAGE.DomainNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3326 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_56,
3327 { "Ntlmssp Negotiate 56", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_56", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_56_tfs), ( 0x80000000 ), NULL, HFILL }},
3328 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen,
3329 { "Encryptedrandomsessionkeymaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.EncryptedRandomSessionKeyMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3330 { &hf_ntlmssp_NEGOTIATE_MESSAGE_MessageType,
3331 { "Messagetype", "ntlmssp.NEGOTIATE_MESSAGE.MessageType", FT_UINT32, BASE_DEC, VALS(ntlmssp_ntlmssp_MessageType_vals), 0, NULL, HFILL }},
3332 { &hf_ntlmssp_ntlmssp_AvValue_AvNbDomainName,
3333 { "Avnbdomainname", "ntlmssp.ntlmssp_AvValue.AvNbDomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3334 { &hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE,
3335 { "Ntlmssp Avflag Mic In Authenticate Message", "ntlmssp.ntlmssp_AvFlags.NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE", FT_BOOLEAN, 32, TFS(&ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE_tfs), ( 0x00000002 ), NULL, HFILL }},
3336 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION,
3337 { "Ntlmssp Negotiate Version", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_VERSION", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION_tfs), ( 0x02000000 ), NULL, HFILL }},
3338 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetName_,
3339 { "Subcontext length", "ntlmssp.CHALLENGE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3340 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_TARGET,
3341 { "Ntlmssp Request Target", "ntlmssp.NEGOTIATE.NTLMSSP_REQUEST_TARGET", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_REQUEST_TARGET_tfs), ( 0x00000004 ), NULL, HFILL }},
3342 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation_,
3343 { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3344 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameMaxLen,
3345 { "Domainnamemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.DomainNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3346 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN,
3347 { "Ntlmssp Target Type Domain", "ntlmssp.NEGOTIATE.NTLMSSP_TARGET_TYPE_DOMAIN", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN_tfs), ( 0x00010000 ), NULL, HFILL }},
3348 { &hf_ntlmssp_decode_CHALLENGE_MESSAGE_challenge,
3349 { "Challenge", "ntlmssp.decode_CHALLENGE_MESSAGE.challenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3350 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName_,
3351 { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3352 { &hf_ntlmssp_ntlmssp_LM_RESPONSE_v1,
3353 { "V1", "ntlmssp.ntlmssp_LM_RESPONSE.v1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3354 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetName,
3355 { "Targetname", "ntlmssp.CHALLENGE_MESSAGE.TargetName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3356 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved2,
3357 { "Reserved2", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.Reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3358 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL,
3359 { "Ntlmssp Negotiate This Is Local Call", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL_tfs), ( 0x00004000 ), NULL, HFILL }},
3360 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_MessageType,
3361 { "Messagetype", "ntlmssp.AUTHENTICATE_MESSAGE.MessageType", FT_UINT32, BASE_DEC, VALS(ntlmssp_ntlmssp_MessageType_vals), 0, NULL, HFILL }},
3362 { &hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v2,
3363 { "V2", "ntlmssp.ntlmssp_NTLM_RESPONSE.v2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3364 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationLen,
3365 { "Workstationlen", "ntlmssp.AUTHENTICATE_MESSAGE.WorkstationLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3366 { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Version,
3367 { "Version", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3368 { &hf_ntlmssp_AV_PAIR_AvLen,
3369 { "Avlen", "ntlmssp.AV_PAIR.AvLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3370 { &hf_ntlmssp_decode_NTLMv2_CLIENT_CHALLENGE_challenge,
3371 { "Challenge", "ntlmssp.decode_NTLMv2_CLIENT_CHALLENGE.challenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3372 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName_,
3373 { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3374 { &hf_ntlmssp_LMv2_RESPONSE_Response,
3375 { "Response", "ntlmssp.LMv2_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3376 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationMaxLen,
3377 { "Workstationmaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.WorkstationMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3378 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen,
3379 { "Lmchallengeresponsemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.LmChallengeResponseMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3380 { &hf_ntlmssp_AV_PAIR_AvId,
3381 { "Avid", "ntlmssp.AV_PAIR.AvId", FT_UINT1632, BASE_DEC, VALS(ntlmssp_ntlmssp_AvId_vals), 0, NULL, HFILL }},
3382 { &hf_ntlmssp_ntlmssp_AvValue_blob,
3383 { "Blob", "ntlmssp.ntlmssp_AvValue.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3384 { &hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge,
3385 { "Serverchallenge", "ntlmssp.CHALLENGE_MESSAGE.ServerChallenge", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3386 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY,
3387 { "Ntlmssp Negotiate Nt Only", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NT_ONLY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY_tfs), ( 0x00000400 ), NULL, HFILL }},
3388 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN,
3389 { "Ntlmssp Negotiate Sign", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_SIGN", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN_tfs), ( 0x00000010 ), NULL, HFILL }},
3390 { &hf_ntlmssp_AV_PAIR_LIST_pair,
3391 { "Pair", "ntlmssp.AV_PAIR_LIST.pair", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3392 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseLen,
3393 { "Lmchallengeresponselen", "ntlmssp.AUTHENTICATE_MESSAGE.LmChallengeResponseLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3394 { &hf_ntlmssp_NTLM_RESPONSE_Response,
3395 { "Response", "ntlmssp.NTLM_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3396 { &hf_ntlmssp_AV_PAIR_LIST_count,
3397 { "Count", "ntlmssp.AV_PAIR_LIST.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3398 { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum,
3399 { "Checksum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.Checksum", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3400 { &hf_ntlmssp_CHALLENGE_MESSAGE_Version,
3401 { "Version", "ntlmssp.CHALLENGE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3402 { &hf_ntlmssp_Restriction_Encoding_SubjectIntegrityLevel,
3403 { "Subjectintegritylevel", "ntlmssp.Restriction_Encoding.SubjectIntegrityLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3404 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse,
3405 { "Ntchallengeresponse", "ntlmssp.AUTHENTICATE_MESSAGE.NtChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3406 { &hf_ntlmssp_decode_NEGOTIATE_MESSAGE_negotiate,
3407 { "Negotiate", "ntlmssp.decode_NEGOTIATE_MESSAGE.negotiate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3408 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName,
3409 { "Username", "ntlmssp.AUTHENTICATE_MESSAGE.UserName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3410 { &hf_ntlmssp_ntlmssp_AvValue_AvFlags,
3411 { "Avflags", "ntlmssp.ntlmssp_AvValue.AvFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3412 { &hf_ntlmssp_CHALLENGE_MESSAGE_Signature,
3413 { "Signature", "ntlmssp.CHALLENGE_MESSAGE.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3414 { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version,
3415 { "Version", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3416 { &hf_ntlmssp_Restriction_Encoding_Z4,
3417 { "Z4", "ntlmssp.Restriction_Encoding.Z4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3418 { &hf_ntlmssp_ntlmssp_AvValue_AvDnsTreeName,
3419 { "Avdnstreename", "ntlmssp.ntlmssp_AvValue.AvDnsTreeName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3420 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey,
3421 { "Encryptedrandomsessionkey", "ntlmssp.AUTHENTICATE_MESSAGE.EncryptedRandomSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3422 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseLen,
3423 { "Ntchallengeresponselen", "ntlmssp.AUTHENTICATE_MESSAGE.NtChallengeResponseLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3424 { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_SeqNum,
3425 { "Seqnum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.SeqNum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3426 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY,
3427 { "Ntlmssp Request Non Nt Session Key", "ntlmssp.NEGOTIATE.NTLMSSP_REQUEST_NON_NT_SESSION_KEY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY_tfs), ( 0x00400000 ), NULL, HFILL }},
3428 { &hf_ntlmssp_ntlmssp_VERSION_NTLMRevisionCurrent,
3429 { "Ntlmrevisioncurrent", "ntlmssp.ntlmssp_VERSION.NTLMRevisionCurrent", FT_UINT8, BASE_DEC, VALS(ntlmssp_ntlmssp_NTLMRevisionCurrent_vals), 0, NULL, HFILL }},
3430 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO,
3431 { "Ntlmssp Negotiate Target Info", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_TARGET_INFO", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO_tfs), ( 0x00800000 ), NULL, HFILL }},
3432 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen,
3433 { "Ntchallengeresponsemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.NtChallengeResponseMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3434 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameLen,
3435 { "Domainnamelen", "ntlmssp.AUTHENTICATE_MESSAGE.DomainNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3436 { &hf_ntlmssp_NEGOTIATE_MESSAGE_Signature,
3437 { "Signature", "ntlmssp.NEGOTIATE_MESSAGE.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3438 { &hf_ntlmssp_ntlmssp_AvValue_AvRestrictions,
3439 { "Avrestrictions", "ntlmssp.ntlmssp_AvValue.AvRestrictions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3440 { &hf_ntlmssp_MIC_MIC,
3441 { "Mic", "ntlmssp.MIC.MIC", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3442 { &hf_ntlmssp_AV_PAIR_Value_,
3443 { "Subcontext length", "ntlmssp.AV_PAIR.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3444 { &hf_ntlmssp_Restriction_Encoding_Size,
3445 { "Size", "ntlmssp.Restriction_Encoding.Size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3446 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs_,
3447 { "Subcontext length", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3448 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_HiRespType,
3449 { "Hiresptype", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.HiRespType", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3450 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient,
3451 { "Challengefromclient", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.ChallengeFromClient", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
3452 { &hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT,
3453 { "Ntlmssp Avflag Constrainted Account", "ntlmssp.ntlmssp_AvFlags.NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT", FT_BOOLEAN, 32, TFS(&ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT_tfs), ( 0x00000001 ), NULL, HFILL }},
3454 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_ANONYMOUS,
3455 { "Ntlmssp Anonymous", "ntlmssp.NEGOTIATE.NTLMSSP_ANONYMOUS", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_ANONYMOUS_tfs), ( 0x00000800 ), NULL, HFILL }},
3456 { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_RandomPad,
3457 { "Randompad", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.RandomPad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3458 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NegotiateFlags,
3459 { "Negotiateflags", "ntlmssp.AUTHENTICATE_MESSAGE.NegotiateFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3460 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE,
3461 { "Ntlmssp Target Type Share", "ntlmssp.NEGOTIATE.NTLMSSP_TARGET_TYPE_SHARE", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE_tfs), ( 0x00040000 ), NULL, HFILL }},
3462 { &hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation_,
3463 { "Subcontext length", "ntlmssp.NEGOTIATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3464 { &hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v1,
3465 { "V1", "ntlmssp.ntlmssp_NTLM_RESPONSE.v1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3466 { &hf_ntlmssp_NEGOTIATE_MESSAGE_Version,
3467 { "Version", "ntlmssp.NEGOTIATE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3468 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY,
3469 { "Ntlmssp Negotiate Lm Key", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_LM_KEY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY_tfs), ( 0x00000080 ), NULL, HFILL }},
3470 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE,
3471 { "Ntlmssp Negotiate Unicode", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_UNICODE", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE_tfs), ( 0x00000001 ), NULL, HFILL }},
3472 { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum,
3473 { "Seqnum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.SeqNum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3474 { &hf_ntlmssp_decode_AUTHENTICATE_MESSAGE_authenticate,
3475 { "Authenticate", "ntlmssp.decode_AUTHENTICATE_MESSAGE.authenticate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3476 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo,
3477 { "Targetinfo", "ntlmssp.CHALLENGE_MESSAGE.TargetInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3478 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo_,
3479 { "Subcontext length", "ntlmssp.CHALLENGE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3480 { &hf_ntlmssp_opnum,
3481 { "Operation", "ntlmssp.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3482 { &hf_ntlmssp_ntlmssp_VERSION_ProductBuild,
3483 { "Productbuild", "ntlmssp.ntlmssp_VERSION.ProductBuild", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3484 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM,
3485 { "Ntlmssp Negotiate Datagram", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_DATAGRAM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM_tfs), ( 0x00000040 ), NULL, HFILL }},
3486 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName,
3487 { "Domainname", "ntlmssp.AUTHENTICATE_MESSAGE.DomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3488 { &hf_ntlmssp_ntlmssp_AvValue_AvDnsComputerName,
3489 { "Avdnscomputername", "ntlmssp.ntlmssp_AvValue.AvDnsComputerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3490 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_128,
3491 { "Ntlmssp Negotiate 128", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_128", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_128_tfs), ( 0x20000000 ), NULL, HFILL }},
3492 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved3,
3493 { "Reserved3", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.Reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3494 { &hf_ntlmssp_NEGOTIATE_MESSAGE_NegotiateFlags,
3495 { "Negotiateflags", "ntlmssp.NEGOTIATE_MESSAGE.NegotiateFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3496 { &hf_ntlmssp_NTLMv2_RESPONSE_Challenge,
3497 { "Challenge", "ntlmssp.NTLMv2_RESPONSE.Challenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3498 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_,
3499 { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3500 { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameMaxLen,
3501 { "Targetnamemaxlen", "ntlmssp.CHALLENGE_MESSAGE.TargetNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3502 { &hf_ntlmssp_ntlmssp_VERSION_ProductMinorVersion,
3503 { "Productminorversion", "ntlmssp.ntlmssp_VERSION.ProductMinorVersion", FT_UINT8, BASE_DEC, VALS(ntlmssp_ntlmssp_WindowsMinorVersion_vals), 0, NULL, HFILL }},
3504 { &hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation,
3505 { "Workstation", "ntlmssp.NEGOTIATE_MESSAGE.Workstation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3506 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY,
3507 { "Ntlmssp Negotiate Extended Sessionsecurity", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY_tfs), ( 0x00080000 ), NULL, HFILL }},
3508 { &hf_ntlmssp_CHALLENGE_MESSAGE_NegotiateFlags,
3509 { "Negotiateflags", "ntlmssp.CHALLENGE_MESSAGE.NegotiateFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3510 { &hf_ntlmssp_ntlmssp_AvValue_AvTargetName,
3511 { "Avtargetname", "ntlmssp.ntlmssp_AvValue.AvTargetName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3512 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER,
3513 { "Ntlmssp Target Type Server", "ntlmssp.NEGOTIATE.NTLMSSP_TARGET_TYPE_SERVER", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER_tfs), ( 0x00020000 ), NULL, HFILL }},
3514 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED,
3515 { "Ntlmssp Negotiate Oem Domain Supplied", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED_tfs), ( 0x00001000 ), NULL, HFILL }},
3516 { &hf_ntlmssp_CHALLENGE_MESSAGE_MessageType,
3517 { "Messagetype", "ntlmssp.CHALLENGE_MESSAGE.MessageType", FT_UINT32, BASE_DEC, VALS(ntlmssp_ntlmssp_MessageType_vals), 0, NULL, HFILL }},
3518 { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN,
3519 { "Ntlmssp Negotiate Always Sign", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_ALWAYS_SIGN", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN_tfs), ( 0x00008000 ), NULL, HFILL }},
3520 { &hf_ntlmssp_AV_PAIR_Value,
3521 { "Value", "ntlmssp.AV_PAIR.Value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3522 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameLen,
3523 { "Usernamelen", "ntlmssp.AUTHENTICATE_MESSAGE.UserNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3524 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse_,
3525 { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
3526 { &hf_ntlmssp_Restriction_Encoding_IntegrityLevel,
3527 { "Integritylevel", "ntlmssp.Restriction_Encoding.IntegrityLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3528 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen,
3529 { "Encryptedrandomsessionkeylen", "ntlmssp.AUTHENTICATE_MESSAGE.EncryptedRandomSessionKeyLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3530 { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName,
3531 { "Domainname", "ntlmssp.NEGOTIATE_MESSAGE.DomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3532 { &hf_ntlmssp_ntlmssp_VERSION_ProductMajorVersion,
3533 { "Productmajorversion", "ntlmssp.ntlmssp_VERSION.ProductMajorVersion", FT_UINT8, BASE_DEC, VALS(ntlmssp_ntlmssp_WindowsMajorVersion_vals), 0, NULL, HFILL }},
3534 { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation,
3535 { "Workstation", "ntlmssp.AUTHENTICATE_MESSAGE.Workstation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3536 { &hf_ntlmssp_ntlmssp_AvValue_AvDnsDomainName,
3537 { "Avdnsdomainname", "ntlmssp.ntlmssp_AvValue.AvDnsDomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3538 { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_TimeStamp,
3539 { "Timestamp", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.TimeStamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
3543 static gint *ett[] = {
3544 &ett_dcerpc_ntlmssp,
3545 &ett_ntlmssp_NEGOTIATE,
3546 &ett_ntlmssp_ntlmssp_VERSION,
3547 &ett_ntlmssp_ntlmssp_Version,
3548 &ett_ntlmssp_NEGOTIATE_MESSAGE,
3549 &ett_ntlmssp_Restriction_Encoding,
3550 &ett_ntlmssp_ntlmssp_AvFlags,
3551 &ett_ntlmssp_ntlmssp_AvValue,
3552 &ett_ntlmssp_AV_PAIR,
3553 &ett_ntlmssp_AV_PAIR_LIST,
3554 &ett_ntlmssp_CHALLENGE_MESSAGE,
3555 &ett_ntlmssp_LM_RESPONSE,
3556 &ett_ntlmssp_LMv2_RESPONSE,
3557 &ett_ntlmssp_ntlmssp_LM_RESPONSE,
3558 &ett_ntlmssp_NTLM_RESPONSE,
3559 &ett_ntlmssp_NTLMv2_CLIENT_CHALLENGE,
3560 &ett_ntlmssp_NTLMv2_RESPONSE,
3561 &ett_ntlmssp_ntlmssp_NTLM_RESPONSE,
3563 &ett_ntlmssp_AUTHENTICATE_MESSAGE,
3564 &ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE,
3565 &ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2,
3568 proto_dcerpc_ntlmssp = proto_register_protocol("NTLM messages", "NTLMSSP", "ntlmssp");
3569 proto_register_field_array(proto_dcerpc_ntlmssp, hf, array_length (hf));
3570 proto_register_subtree_array(ett, array_length(ett));
3573 void proto_reg_handoff_dcerpc_ntlmssp(void)
3575 dcerpc_init_uuid(proto_dcerpc_ntlmssp, ett_dcerpc_ntlmssp,
3576 &uuid_dcerpc_ntlmssp, ver_dcerpc_ntlmssp,
3577 ntlmssp_dissectors, hf_ntlmssp_opnum);