s3: re-run make idl_full.
[Samba/kamenim.git] / librpc / gen_ndr / ndr_ntlmssp.c
blob35908e97cdb3582c0a48c1e710e9b9d4b059dd74
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_ntlmssp.h"
6 static enum ndr_err_code ndr_push_ntlmssp_MessageType(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_MessageType r)
8 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
9 return NDR_ERR_SUCCESS;
12 static enum ndr_err_code ndr_pull_ntlmssp_MessageType(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_MessageType *r)
14 uint32_t v;
15 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16 *r = v;
17 return NDR_ERR_SUCCESS;
20 _PUBLIC_ void ndr_print_ntlmssp_MessageType(struct ndr_print *ndr, const char *name, enum ntlmssp_MessageType r)
22 const char *val = NULL;
24 switch (r) {
25 case NtLmNegotiate: val = "NtLmNegotiate"; break;
26 case NtLmChallenge: val = "NtLmChallenge"; break;
27 case NtLmAuthenticate: val = "NtLmAuthenticate"; break;
29 ndr_print_enum(ndr, name, "ENUM", val, r);
32 static enum ndr_err_code ndr_push_NEGOTIATE(struct ndr_push *ndr, int ndr_flags, uint32_t r)
34 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
35 return NDR_ERR_SUCCESS;
38 static enum ndr_err_code ndr_pull_NEGOTIATE(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
40 uint32_t v;
41 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
42 *r = v;
43 return NDR_ERR_SUCCESS;
46 _PUBLIC_ void ndr_print_NEGOTIATE(struct ndr_print *ndr, const char *name, uint32_t r)
48 ndr_print_uint32(ndr, name, r);
49 ndr->depth++;
50 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_UNICODE", NTLMSSP_NEGOTIATE_UNICODE, r);
51 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_OEM", NTLMSSP_NEGOTIATE_OEM, r);
52 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_REQUEST_TARGET", NTLMSSP_REQUEST_TARGET, r);
53 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_SIGN", NTLMSSP_NEGOTIATE_SIGN, r);
54 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_SEAL", NTLMSSP_NEGOTIATE_SEAL, r);
55 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_DATAGRAM", NTLMSSP_NEGOTIATE_DATAGRAM, r);
56 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_LM_KEY", NTLMSSP_NEGOTIATE_LM_KEY, r);
57 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_NETWARE", NTLMSSP_NEGOTIATE_NETWARE, r);
58 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_NTLM", NTLMSSP_NEGOTIATE_NTLM, r);
59 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_NT_ONLY", NTLMSSP_NEGOTIATE_NT_ONLY, r);
60 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_ANONYMOUS", NTLMSSP_ANONYMOUS, r);
61 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED", NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED, r);
62 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED", NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED, r);
63 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL", NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL, r);
64 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_ALWAYS_SIGN", NTLMSSP_NEGOTIATE_ALWAYS_SIGN, r);
65 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_TARGET_TYPE_DOMAIN", NTLMSSP_TARGET_TYPE_DOMAIN, r);
66 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_TARGET_TYPE_SERVER", NTLMSSP_TARGET_TYPE_SERVER, r);
67 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_TARGET_TYPE_SHARE", NTLMSSP_TARGET_TYPE_SHARE, r);
68 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY", NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY, r);
69 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_IDENTIFY", NTLMSSP_NEGOTIATE_IDENTIFY, r);
70 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_REQUEST_NON_NT_SESSION_KEY", NTLMSSP_REQUEST_NON_NT_SESSION_KEY, r);
71 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_TARGET_INFO", NTLMSSP_NEGOTIATE_TARGET_INFO, r);
72 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_VERSION", NTLMSSP_NEGOTIATE_VERSION, r);
73 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_128", NTLMSSP_NEGOTIATE_128, r);
74 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_KEY_EXCH", NTLMSSP_NEGOTIATE_KEY_EXCH, r);
75 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_56", NTLMSSP_NEGOTIATE_56, r);
76 ndr->depth--;
79 static enum ndr_err_code ndr_push_ntlmssp_WindowsMajorVersion(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_WindowsMajorVersion r)
81 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
82 return NDR_ERR_SUCCESS;
85 static enum ndr_err_code ndr_pull_ntlmssp_WindowsMajorVersion(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_WindowsMajorVersion *r)
87 uint8_t v;
88 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
89 *r = v;
90 return NDR_ERR_SUCCESS;
93 _PUBLIC_ void ndr_print_ntlmssp_WindowsMajorVersion(struct ndr_print *ndr, const char *name, enum ntlmssp_WindowsMajorVersion r)
95 const char *val = NULL;
97 switch (r) {
98 case NTLMSSP_WINDOWS_MAJOR_VERSION_5: val = "NTLMSSP_WINDOWS_MAJOR_VERSION_5"; break;
99 case NTLMSSP_WINDOWS_MAJOR_VERSION_6: val = "NTLMSSP_WINDOWS_MAJOR_VERSION_6"; break;
101 ndr_print_enum(ndr, name, "ENUM", val, r);
104 static enum ndr_err_code ndr_push_ntlmssp_WindowsMinorVersion(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_WindowsMinorVersion r)
106 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
107 return NDR_ERR_SUCCESS;
110 static enum ndr_err_code ndr_pull_ntlmssp_WindowsMinorVersion(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_WindowsMinorVersion *r)
112 uint8_t v;
113 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
114 *r = v;
115 return NDR_ERR_SUCCESS;
118 _PUBLIC_ void ndr_print_ntlmssp_WindowsMinorVersion(struct ndr_print *ndr, const char *name, enum ntlmssp_WindowsMinorVersion r)
120 const char *val = NULL;
122 switch (r) {
123 case NTLMSSP_WINDOWS_MINOR_VERSION_0: val = "NTLMSSP_WINDOWS_MINOR_VERSION_0"; break;
124 case NTLMSSP_WINDOWS_MINOR_VERSION_1: val = "NTLMSSP_WINDOWS_MINOR_VERSION_1"; break;
125 case NTLMSSP_WINDOWS_MINOR_VERSION_2: val = "NTLMSSP_WINDOWS_MINOR_VERSION_2"; break;
127 ndr_print_enum(ndr, name, "ENUM", val, r);
130 static enum ndr_err_code ndr_push_ntlmssp_NTLMRevisionCurrent(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_NTLMRevisionCurrent r)
132 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
133 return NDR_ERR_SUCCESS;
136 static enum ndr_err_code ndr_pull_ntlmssp_NTLMRevisionCurrent(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_NTLMRevisionCurrent *r)
138 uint8_t v;
139 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
140 *r = v;
141 return NDR_ERR_SUCCESS;
144 _PUBLIC_ void ndr_print_ntlmssp_NTLMRevisionCurrent(struct ndr_print *ndr, const char *name, enum ntlmssp_NTLMRevisionCurrent r)
146 const char *val = NULL;
148 switch (r) {
149 case NTLMSSP_REVISION_W2K3_RC1: val = "NTLMSSP_REVISION_W2K3_RC1"; break;
150 case NTLMSSP_REVISION_W2K3: val = "NTLMSSP_REVISION_W2K3"; break;
152 ndr_print_enum(ndr, name, "ENUM", val, r);
155 static enum ndr_err_code ndr_push_VERSION(struct ndr_push *ndr, int ndr_flags, const struct VERSION *r)
157 if (ndr_flags & NDR_SCALARS) {
158 NDR_CHECK(ndr_push_align(ndr, 2));
159 NDR_CHECK(ndr_push_ntlmssp_WindowsMajorVersion(ndr, NDR_SCALARS, r->ProductMajorVersion));
160 NDR_CHECK(ndr_push_ntlmssp_WindowsMinorVersion(ndr, NDR_SCALARS, r->ProductMinorVersion));
161 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ProductBuild));
162 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Reserved, 3));
163 NDR_CHECK(ndr_push_ntlmssp_NTLMRevisionCurrent(ndr, NDR_SCALARS, r->NTLMRevisionCurrent));
165 if (ndr_flags & NDR_BUFFERS) {
167 return NDR_ERR_SUCCESS;
170 static enum ndr_err_code ndr_pull_VERSION(struct ndr_pull *ndr, int ndr_flags, struct VERSION *r)
172 if (ndr_flags & NDR_SCALARS) {
173 NDR_CHECK(ndr_pull_align(ndr, 2));
174 NDR_CHECK(ndr_pull_ntlmssp_WindowsMajorVersion(ndr, NDR_SCALARS, &r->ProductMajorVersion));
175 NDR_CHECK(ndr_pull_ntlmssp_WindowsMinorVersion(ndr, NDR_SCALARS, &r->ProductMinorVersion));
176 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ProductBuild));
177 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Reserved, 3));
178 NDR_CHECK(ndr_pull_ntlmssp_NTLMRevisionCurrent(ndr, NDR_SCALARS, &r->NTLMRevisionCurrent));
180 if (ndr_flags & NDR_BUFFERS) {
182 return NDR_ERR_SUCCESS;
185 _PUBLIC_ void ndr_print_VERSION(struct ndr_print *ndr, const char *name, const struct VERSION *r)
187 ndr_print_struct(ndr, name, "VERSION");
188 ndr->depth++;
189 ndr_print_ntlmssp_WindowsMajorVersion(ndr, "ProductMajorVersion", r->ProductMajorVersion);
190 ndr_print_ntlmssp_WindowsMinorVersion(ndr, "ProductMinorVersion", r->ProductMinorVersion);
191 ndr_print_uint16(ndr, "ProductBuild", r->ProductBuild);
192 ndr_print_array_uint8(ndr, "Reserved", r->Reserved, 3);
193 ndr_print_ntlmssp_NTLMRevisionCurrent(ndr, "NTLMRevisionCurrent", r->NTLMRevisionCurrent);
194 ndr->depth--;
197 static enum ndr_err_code ndr_push_ntlmssp_Version(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_Version *r)
199 if (ndr_flags & NDR_SCALARS) {
200 int level = ndr_push_get_switch_value(ndr, r);
201 NDR_CHECK(ndr_push_union_align(ndr, 2));
202 switch (level) {
203 case NTLMSSP_NEGOTIATE_VERSION: {
204 NDR_CHECK(ndr_push_VERSION(ndr, NDR_SCALARS, &r->version));
205 break; }
207 default: {
208 break; }
212 if (ndr_flags & NDR_BUFFERS) {
213 int level = ndr_push_get_switch_value(ndr, r);
214 switch (level) {
215 case NTLMSSP_NEGOTIATE_VERSION:
216 break;
218 default:
219 break;
223 return NDR_ERR_SUCCESS;
226 static enum ndr_err_code ndr_pull_ntlmssp_Version(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_Version *r)
228 int level;
229 level = ndr_pull_get_switch_value(ndr, r);
230 if (ndr_flags & NDR_SCALARS) {
231 NDR_CHECK(ndr_pull_union_align(ndr, 2));
232 switch (level) {
233 case NTLMSSP_NEGOTIATE_VERSION: {
234 NDR_CHECK(ndr_pull_VERSION(ndr, NDR_SCALARS, &r->version));
235 break; }
237 default: {
238 break; }
242 if (ndr_flags & NDR_BUFFERS) {
243 switch (level) {
244 case NTLMSSP_NEGOTIATE_VERSION:
245 break;
247 default:
248 break;
252 return NDR_ERR_SUCCESS;
255 _PUBLIC_ enum ndr_err_code ndr_push_NEGOTIATE_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct NEGOTIATE_MESSAGE *r)
257 if (ndr_flags & NDR_SCALARS) {
258 NDR_CHECK(ndr_push_align(ndr, 5));
259 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "NTLMSSP", 8, sizeof(uint8_t), CH_DOS));
260 NDR_CHECK(ndr_push_ntlmssp_MessageType(ndr, NDR_SCALARS, NtLmNegotiate));
261 NDR_CHECK(ndr_push_NEGOTIATE(ndr, NDR_SCALARS, r->NegotiateFlags));
262 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->DomainName)));
263 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->DomainName)));
265 uint32_t _flags_save_string = ndr->flags;
266 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
267 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->DomainName));
268 ndr->flags = _flags_save_string;
270 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->Workstation)));
271 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->Workstation)));
273 uint32_t _flags_save_string = ndr->flags;
274 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
275 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->Workstation));
276 ndr->flags = _flags_save_string;
278 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
279 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
281 if (ndr_flags & NDR_BUFFERS) {
283 uint32_t _flags_save_string = ndr->flags;
284 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
285 if (r->DomainName) {
286 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->DomainName));
288 struct ndr_push *_ndr_DomainName;
289 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_DomainName, 0, strlen(r->DomainName)));
290 NDR_CHECK(ndr_push_string(_ndr_DomainName, NDR_SCALARS, r->DomainName));
291 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_DomainName, 0, strlen(r->DomainName)));
294 ndr->flags = _flags_save_string;
297 uint32_t _flags_save_string = ndr->flags;
298 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
299 if (r->Workstation) {
300 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->Workstation));
302 struct ndr_push *_ndr_Workstation;
303 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Workstation, 0, strlen(r->Workstation)));
304 NDR_CHECK(ndr_push_string(_ndr_Workstation, NDR_SCALARS, r->Workstation));
305 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Workstation, 0, strlen(r->Workstation)));
308 ndr->flags = _flags_save_string;
310 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
312 return NDR_ERR_SUCCESS;
315 _PUBLIC_ enum ndr_err_code ndr_pull_NEGOTIATE_MESSAGE(struct ndr_pull *ndr, int ndr_flags, struct NEGOTIATE_MESSAGE *r)
317 uint32_t _ptr_DomainName;
318 TALLOC_CTX *_mem_save_DomainName_0;
319 uint32_t _ptr_Workstation;
320 TALLOC_CTX *_mem_save_Workstation_0;
321 if (ndr_flags & NDR_SCALARS) {
322 NDR_CHECK(ndr_pull_align(ndr, 5));
323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Signature, 8, sizeof(uint8_t), CH_DOS));
324 NDR_CHECK(ndr_pull_ntlmssp_MessageType(ndr, NDR_SCALARS, &r->MessageType));
325 NDR_CHECK(ndr_pull_NEGOTIATE(ndr, NDR_SCALARS, &r->NegotiateFlags));
326 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameLen));
327 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameMaxLen));
329 uint32_t _flags_save_string = ndr->flags;
330 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
331 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DomainName));
332 if (_ptr_DomainName) {
333 NDR_PULL_ALLOC(ndr, r->DomainName);
334 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DomainName, _ptr_DomainName));
335 } else {
336 r->DomainName = NULL;
338 ndr->flags = _flags_save_string;
340 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationLen));
341 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationMaxLen));
343 uint32_t _flags_save_string = ndr->flags;
344 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Workstation));
346 if (_ptr_Workstation) {
347 NDR_PULL_ALLOC(ndr, r->Workstation);
348 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Workstation, _ptr_Workstation));
349 } else {
350 r->Workstation = NULL;
352 ndr->flags = _flags_save_string;
354 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
355 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
357 if (ndr_flags & NDR_BUFFERS) {
359 uint32_t _flags_save_string = ndr->flags;
360 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
361 if (r->DomainName) {
362 uint32_t _relative_save_offset;
363 _relative_save_offset = ndr->offset;
364 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DomainName));
365 _mem_save_DomainName_0 = NDR_PULL_GET_MEM_CTX(ndr);
366 NDR_PULL_SET_MEM_CTX(ndr, r->DomainName, 0);
368 struct ndr_pull *_ndr_DomainName;
369 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_DomainName, 0, r->DomainNameLen));
370 NDR_CHECK(ndr_pull_string(_ndr_DomainName, NDR_SCALARS, &r->DomainName));
371 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_DomainName, 0, r->DomainNameLen));
373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DomainName_0, 0);
374 ndr->offset = _relative_save_offset;
376 ndr->flags = _flags_save_string;
379 uint32_t _flags_save_string = ndr->flags;
380 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
381 if (r->Workstation) {
382 uint32_t _relative_save_offset;
383 _relative_save_offset = ndr->offset;
384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Workstation));
385 _mem_save_Workstation_0 = NDR_PULL_GET_MEM_CTX(ndr);
386 NDR_PULL_SET_MEM_CTX(ndr, r->Workstation, 0);
388 struct ndr_pull *_ndr_Workstation;
389 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_Workstation, 0, r->WorkstationLen));
390 NDR_CHECK(ndr_pull_string(_ndr_Workstation, NDR_SCALARS, &r->Workstation));
391 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_Workstation, 0, r->WorkstationLen));
393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Workstation_0, 0);
394 ndr->offset = _relative_save_offset;
396 ndr->flags = _flags_save_string;
398 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
400 return NDR_ERR_SUCCESS;
403 _PUBLIC_ void ndr_print_NEGOTIATE_MESSAGE(struct ndr_print *ndr, const char *name, const struct NEGOTIATE_MESSAGE *r)
405 ndr_print_struct(ndr, name, "NEGOTIATE_MESSAGE");
406 ndr->depth++;
407 ndr_print_string(ndr, "Signature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?"NTLMSSP":r->Signature);
408 ndr_print_ntlmssp_MessageType(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NtLmNegotiate:r->MessageType);
409 ndr_print_NEGOTIATE(ndr, "NegotiateFlags", r->NegotiateFlags);
410 ndr_print_uint16(ndr, "DomainNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->DomainName):r->DomainNameLen);
411 ndr_print_uint16(ndr, "DomainNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->DomainNameLen:r->DomainNameMaxLen);
412 ndr_print_ptr(ndr, "DomainName", r->DomainName);
413 ndr->depth++;
414 if (r->DomainName) {
415 ndr_print_string(ndr, "DomainName", r->DomainName);
417 ndr->depth--;
418 ndr_print_uint16(ndr, "WorkstationLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->Workstation):r->WorkstationLen);
419 ndr_print_uint16(ndr, "WorkstationMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->WorkstationLen:r->WorkstationMaxLen);
420 ndr_print_ptr(ndr, "Workstation", r->Workstation);
421 ndr->depth++;
422 if (r->Workstation) {
423 ndr_print_string(ndr, "Workstation", r->Workstation);
425 ndr->depth--;
426 ndr_print_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION);
427 ndr_print_ntlmssp_Version(ndr, "Version", &r->Version);
428 ndr->depth--;
431 static enum ndr_err_code ndr_push_ntlmssp_AvId(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_AvId r)
433 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
434 return NDR_ERR_SUCCESS;
437 static enum ndr_err_code ndr_pull_ntlmssp_AvId(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_AvId *r)
439 uint16_t v;
440 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
441 *r = v;
442 return NDR_ERR_SUCCESS;
445 _PUBLIC_ void ndr_print_ntlmssp_AvId(struct ndr_print *ndr, const char *name, enum ntlmssp_AvId r)
447 const char *val = NULL;
449 switch (r) {
450 case MsvAvEOL: val = "MsvAvEOL"; break;
451 case MsvAvNbComputerName: val = "MsvAvNbComputerName"; break;
452 case MsvAvNbDomainName: val = "MsvAvNbDomainName"; break;
453 case MsvAvDnsComputerName: val = "MsvAvDnsComputerName"; break;
454 case MsvAvDnsDomainName: val = "MsvAvDnsDomainName"; break;
455 case MsvAvDnsTreeName: val = "MsvAvDnsTreeName"; break;
456 case MsvAvFlags: val = "MsvAvFlags"; break;
457 case MsvAvTimestamp: val = "MsvAvTimestamp"; break;
458 case MsAvRestrictions: val = "MsAvRestrictions"; break;
459 case MsvAvTargetName: val = "MsvAvTargetName"; break;
460 case MsvChannelBindings: val = "MsvChannelBindings"; break;
462 ndr_print_enum(ndr, name, "ENUM", val, r);
465 static enum ndr_err_code ndr_push_Restriction_Encoding(struct ndr_push *ndr, int ndr_flags, const struct Restriction_Encoding *r)
467 if (ndr_flags & NDR_SCALARS) {
468 NDR_CHECK(ndr_push_align(ndr, 4));
469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Size));
470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->IntegrityLevel));
472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SubjectIntegrityLevel));
473 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->MachineId, 32));
475 if (ndr_flags & NDR_BUFFERS) {
477 return NDR_ERR_SUCCESS;
480 static enum ndr_err_code ndr_pull_Restriction_Encoding(struct ndr_pull *ndr, int ndr_flags, struct Restriction_Encoding *r)
482 if (ndr_flags & NDR_SCALARS) {
483 NDR_CHECK(ndr_pull_align(ndr, 4));
484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Size));
485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Z4));
486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->IntegrityLevel));
487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SubjectIntegrityLevel));
488 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->MachineId, 32));
490 if (ndr_flags & NDR_BUFFERS) {
492 return NDR_ERR_SUCCESS;
495 _PUBLIC_ void ndr_print_Restriction_Encoding(struct ndr_print *ndr, const char *name, const struct Restriction_Encoding *r)
497 ndr_print_struct(ndr, name, "Restriction_Encoding");
498 ndr->depth++;
499 ndr_print_uint32(ndr, "Size", r->Size);
500 ndr_print_uint32(ndr, "Z4", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->Z4);
501 ndr_print_uint32(ndr, "IntegrityLevel", r->IntegrityLevel);
502 ndr_print_uint32(ndr, "SubjectIntegrityLevel", r->SubjectIntegrityLevel);
503 ndr_print_array_uint8(ndr, "MachineId", r->MachineId, 32);
504 ndr->depth--;
507 static enum ndr_err_code ndr_push_ntlmssp_AvFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
510 return NDR_ERR_SUCCESS;
513 static enum ndr_err_code ndr_pull_ntlmssp_AvFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
515 uint32_t v;
516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
517 *r = v;
518 return NDR_ERR_SUCCESS;
521 _PUBLIC_ void ndr_print_ntlmssp_AvFlags(struct ndr_print *ndr, const char *name, uint32_t r)
523 ndr_print_uint32(ndr, name, r);
524 ndr->depth++;
525 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT", NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT, r);
526 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE", NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE, r);
527 ndr->depth--;
530 static enum ndr_err_code ndr_push_ntlmssp_AvValue(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_AvValue *r)
533 uint32_t _flags_save_UNION = ndr->flags;
534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
535 if (ndr_flags & NDR_SCALARS) {
536 int level = ndr_push_get_switch_value(ndr, r);
537 NDR_CHECK(ndr_push_union_align(ndr, 4));
538 switch (level) {
539 case MsvAvEOL: {
540 break; }
542 case MsvAvNbComputerName: {
544 uint32_t _flags_save_string = ndr->flags;
545 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
546 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvNbComputerName));
547 ndr->flags = _flags_save_string;
549 break; }
551 case MsvAvNbDomainName: {
553 uint32_t _flags_save_string = ndr->flags;
554 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
555 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvNbDomainName));
556 ndr->flags = _flags_save_string;
558 break; }
560 case MsvAvDnsComputerName: {
562 uint32_t _flags_save_string = ndr->flags;
563 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
564 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvDnsComputerName));
565 ndr->flags = _flags_save_string;
567 break; }
569 case MsvAvDnsDomainName: {
571 uint32_t _flags_save_string = ndr->flags;
572 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
573 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvDnsDomainName));
574 ndr->flags = _flags_save_string;
576 break; }
578 case MsvAvDnsTreeName: {
580 uint32_t _flags_save_string = ndr->flags;
581 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
582 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvDnsTreeName));
583 ndr->flags = _flags_save_string;
585 break; }
587 case MsvAvFlags: {
588 NDR_CHECK(ndr_push_ntlmssp_AvFlags(ndr, NDR_SCALARS, r->AvFlags));
589 break; }
591 case MsvAvTimestamp: {
592 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->AvTimestamp));
593 break; }
595 case MsAvRestrictions: {
596 NDR_CHECK(ndr_push_Restriction_Encoding(ndr, NDR_SCALARS, &r->AvRestrictions));
597 break; }
599 case MsvAvTargetName: {
601 uint32_t _flags_save_string = ndr->flags;
602 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
603 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvTargetName));
604 ndr->flags = _flags_save_string;
606 break; }
608 case MsvChannelBindings: {
609 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ChannelBindings, 16));
610 break; }
612 default: {
614 uint32_t _flags_save_DATA_BLOB = ndr->flags;
615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
616 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
617 ndr->flags = _flags_save_DATA_BLOB;
619 break; }
623 if (ndr_flags & NDR_BUFFERS) {
624 int level = ndr_push_get_switch_value(ndr, r);
625 switch (level) {
626 case MsvAvEOL:
627 break;
629 case MsvAvNbComputerName:
630 break;
632 case MsvAvNbDomainName:
633 break;
635 case MsvAvDnsComputerName:
636 break;
638 case MsvAvDnsDomainName:
639 break;
641 case MsvAvDnsTreeName:
642 break;
644 case MsvAvFlags:
645 break;
647 case MsvAvTimestamp:
648 break;
650 case MsAvRestrictions:
651 break;
653 case MsvAvTargetName:
654 break;
656 case MsvChannelBindings:
657 break;
659 default:
660 break;
664 ndr->flags = _flags_save_UNION;
666 return NDR_ERR_SUCCESS;
669 static enum ndr_err_code ndr_pull_ntlmssp_AvValue(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_AvValue *r)
671 int level;
673 uint32_t _flags_save_UNION = ndr->flags;
674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
675 level = ndr_pull_get_switch_value(ndr, r);
676 if (ndr_flags & NDR_SCALARS) {
677 NDR_CHECK(ndr_pull_union_align(ndr, 4));
678 switch (level) {
679 case MsvAvEOL: {
680 break; }
682 case MsvAvNbComputerName: {
684 uint32_t _flags_save_string = ndr->flags;
685 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
686 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvNbComputerName));
687 ndr->flags = _flags_save_string;
689 break; }
691 case MsvAvNbDomainName: {
693 uint32_t _flags_save_string = ndr->flags;
694 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
695 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvNbDomainName));
696 ndr->flags = _flags_save_string;
698 break; }
700 case MsvAvDnsComputerName: {
702 uint32_t _flags_save_string = ndr->flags;
703 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
704 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvDnsComputerName));
705 ndr->flags = _flags_save_string;
707 break; }
709 case MsvAvDnsDomainName: {
711 uint32_t _flags_save_string = ndr->flags;
712 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
713 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvDnsDomainName));
714 ndr->flags = _flags_save_string;
716 break; }
718 case MsvAvDnsTreeName: {
720 uint32_t _flags_save_string = ndr->flags;
721 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
722 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvDnsTreeName));
723 ndr->flags = _flags_save_string;
725 break; }
727 case MsvAvFlags: {
728 NDR_CHECK(ndr_pull_ntlmssp_AvFlags(ndr, NDR_SCALARS, &r->AvFlags));
729 break; }
731 case MsvAvTimestamp: {
732 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->AvTimestamp));
733 break; }
735 case MsAvRestrictions: {
736 NDR_CHECK(ndr_pull_Restriction_Encoding(ndr, NDR_SCALARS, &r->AvRestrictions));
737 break; }
739 case MsvAvTargetName: {
741 uint32_t _flags_save_string = ndr->flags;
742 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
743 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvTargetName));
744 ndr->flags = _flags_save_string;
746 break; }
748 case MsvChannelBindings: {
749 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ChannelBindings, 16));
750 break; }
752 default: {
754 uint32_t _flags_save_DATA_BLOB = ndr->flags;
755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
756 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
757 ndr->flags = _flags_save_DATA_BLOB;
759 break; }
763 if (ndr_flags & NDR_BUFFERS) {
764 switch (level) {
765 case MsvAvEOL:
766 break;
768 case MsvAvNbComputerName:
769 break;
771 case MsvAvNbDomainName:
772 break;
774 case MsvAvDnsComputerName:
775 break;
777 case MsvAvDnsDomainName:
778 break;
780 case MsvAvDnsTreeName:
781 break;
783 case MsvAvFlags:
784 break;
786 case MsvAvTimestamp:
787 break;
789 case MsAvRestrictions:
790 break;
792 case MsvAvTargetName:
793 break;
795 case MsvChannelBindings:
796 break;
798 default:
799 break;
803 ndr->flags = _flags_save_UNION;
805 return NDR_ERR_SUCCESS;
808 _PUBLIC_ void ndr_print_ntlmssp_AvValue(struct ndr_print *ndr, const char *name, const union ntlmssp_AvValue *r)
810 int level;
812 uint32_t _flags_save_UNION = ndr->flags;
813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
814 level = ndr_print_get_switch_value(ndr, r);
815 ndr_print_union(ndr, name, level, "ntlmssp_AvValue");
816 switch (level) {
817 case MsvAvEOL:
818 break;
820 case MsvAvNbComputerName:
821 ndr_print_string(ndr, "AvNbComputerName", r->AvNbComputerName);
822 break;
824 case MsvAvNbDomainName:
825 ndr_print_string(ndr, "AvNbDomainName", r->AvNbDomainName);
826 break;
828 case MsvAvDnsComputerName:
829 ndr_print_string(ndr, "AvDnsComputerName", r->AvDnsComputerName);
830 break;
832 case MsvAvDnsDomainName:
833 ndr_print_string(ndr, "AvDnsDomainName", r->AvDnsDomainName);
834 break;
836 case MsvAvDnsTreeName:
837 ndr_print_string(ndr, "AvDnsTreeName", r->AvDnsTreeName);
838 break;
840 case MsvAvFlags:
841 ndr_print_ntlmssp_AvFlags(ndr, "AvFlags", r->AvFlags);
842 break;
844 case MsvAvTimestamp:
845 ndr_print_NTTIME(ndr, "AvTimestamp", r->AvTimestamp);
846 break;
848 case MsAvRestrictions:
849 ndr_print_Restriction_Encoding(ndr, "AvRestrictions", &r->AvRestrictions);
850 break;
852 case MsvAvTargetName:
853 ndr_print_string(ndr, "AvTargetName", r->AvTargetName);
854 break;
856 case MsvChannelBindings:
857 ndr_print_array_uint8(ndr, "ChannelBindings", r->ChannelBindings, 16);
858 break;
860 default:
861 ndr_print_DATA_BLOB(ndr, "blob", r->blob);
862 break;
865 ndr->flags = _flags_save_UNION;
869 static size_t ndr_size_ntlmssp_AvValue(const union ntlmssp_AvValue *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
871 flags |= LIBNDR_FLAG_NOALIGN;
872 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_ntlmssp_AvValue, ic);
875 _PUBLIC_ enum ndr_err_code ndr_push_AV_PAIR(struct ndr_push *ndr, int ndr_flags, const struct AV_PAIR *r)
878 uint32_t _flags_save_STRUCT = ndr->flags;
879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
880 if (ndr_flags & NDR_SCALARS) {
881 NDR_CHECK(ndr_push_align(ndr, 4));
882 NDR_CHECK(ndr_push_ntlmssp_AvId(ndr, NDR_SCALARS, r->AvId));
883 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, ndr->iconv_convenience, 0)));
885 struct ndr_push *_ndr_Value;
886 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Value, 0, ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, ndr->iconv_convenience, 0)));
887 NDR_CHECK(ndr_push_set_switch_value(_ndr_Value, &r->Value, r->AvId));
888 NDR_CHECK(ndr_push_ntlmssp_AvValue(_ndr_Value, NDR_SCALARS|NDR_BUFFERS, &r->Value));
889 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Value, 0, ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, ndr->iconv_convenience, 0)));
892 if (ndr_flags & NDR_BUFFERS) {
894 ndr->flags = _flags_save_STRUCT;
896 return NDR_ERR_SUCCESS;
899 _PUBLIC_ enum ndr_err_code ndr_pull_AV_PAIR(struct ndr_pull *ndr, int ndr_flags, struct AV_PAIR *r)
902 uint32_t _flags_save_STRUCT = ndr->flags;
903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
904 if (ndr_flags & NDR_SCALARS) {
905 NDR_CHECK(ndr_pull_align(ndr, 4));
906 NDR_CHECK(ndr_pull_ntlmssp_AvId(ndr, NDR_SCALARS, &r->AvId));
907 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->AvLen));
909 struct ndr_pull *_ndr_Value;
910 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_Value, 0, r->AvLen));
911 NDR_CHECK(ndr_pull_set_switch_value(_ndr_Value, &r->Value, r->AvId));
912 NDR_CHECK(ndr_pull_ntlmssp_AvValue(_ndr_Value, NDR_SCALARS|NDR_BUFFERS, &r->Value));
913 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_Value, 0, r->AvLen));
916 if (ndr_flags & NDR_BUFFERS) {
918 ndr->flags = _flags_save_STRUCT;
920 return NDR_ERR_SUCCESS;
923 _PUBLIC_ void ndr_print_AV_PAIR(struct ndr_print *ndr, const char *name, const struct AV_PAIR *r)
925 ndr_print_struct(ndr, name, "AV_PAIR");
927 uint32_t _flags_save_STRUCT = ndr->flags;
928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
929 ndr->depth++;
930 ndr_print_ntlmssp_AvId(ndr, "AvId", r->AvId);
931 ndr_print_uint16(ndr, "AvLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, ndr->iconv_convenience, 0):r->AvLen);
932 ndr_print_set_switch_value(ndr, &r->Value, r->AvId);
933 ndr_print_ntlmssp_AvValue(ndr, "Value", &r->Value);
934 ndr->depth--;
935 ndr->flags = _flags_save_STRUCT;
939 _PUBLIC_ void ndr_print_AV_PAIR_LIST(struct ndr_print *ndr, const char *name, const struct AV_PAIR_LIST *r)
941 uint32_t cntr_pair_0;
942 ndr_print_struct(ndr, name, "AV_PAIR_LIST");
944 uint32_t _flags_save_STRUCT = ndr->flags;
945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
946 ndr->depth++;
947 ndr_print_uint32(ndr, "count", r->count);
948 ndr->print(ndr, "%s: ARRAY(%d)", "pair", (int)r->count);
949 ndr->depth++;
950 for (cntr_pair_0=0;cntr_pair_0<r->count;cntr_pair_0++) {
951 char *idx_0=NULL;
952 if (asprintf(&idx_0, "[%d]", cntr_pair_0) != -1) {
953 ndr_print_AV_PAIR(ndr, "pair", &r->pair[cntr_pair_0]);
954 free(idx_0);
957 ndr->depth--;
958 ndr->depth--;
959 ndr->flags = _flags_save_STRUCT;
963 static size_t ndr_size_AV_PAIR_LIST(const struct AV_PAIR_LIST *r, struct smb_iconv_convenience *ic, int flags)
965 flags |= LIBNDR_FLAG_NOALIGN;
966 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_AV_PAIR_LIST, ic);
969 _PUBLIC_ enum ndr_err_code ndr_push_CHALLENGE_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct CHALLENGE_MESSAGE *r)
972 uint32_t _flags_save_STRUCT = ndr->flags;
973 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
974 if (ndr_flags & NDR_SCALARS) {
975 NDR_CHECK(ndr_push_align(ndr, 5));
976 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "NTLMSSP", 8, sizeof(uint8_t), CH_DOS));
977 NDR_CHECK(ndr_push_ntlmssp_MessageType(ndr, NDR_SCALARS, NtLmChallenge));
978 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
979 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
981 uint32_t _flags_save_string = ndr->flags;
982 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
983 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->TargetName));
984 ndr->flags = _flags_save_string;
986 NDR_CHECK(ndr_push_NEGOTIATE(ndr, NDR_SCALARS, r->NegotiateFlags));
987 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ServerChallenge, 8));
988 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Reserved, 8));
989 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->iconv_convenience, ndr->flags)));
990 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->iconv_convenience, ndr->flags)));
991 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->TargetInfo));
992 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
993 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
995 if (ndr_flags & NDR_BUFFERS) {
997 uint32_t _flags_save_string = ndr->flags;
998 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
999 if (r->TargetName) {
1000 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->TargetName));
1002 struct ndr_push *_ndr_TargetName;
1003 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_TargetName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
1004 NDR_CHECK(ndr_push_string(_ndr_TargetName, NDR_SCALARS, r->TargetName));
1005 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_TargetName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
1008 ndr->flags = _flags_save_string;
1010 if (r->TargetInfo) {
1011 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->TargetInfo));
1013 struct ndr_push *_ndr_TargetInfo;
1014 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_TargetInfo, 0, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->iconv_convenience, ndr->flags)));
1015 NDR_CHECK(ndr_push_AV_PAIR_LIST(_ndr_TargetInfo, NDR_SCALARS|NDR_BUFFERS, r->TargetInfo));
1016 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_TargetInfo, 0, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->iconv_convenience, ndr->flags)));
1019 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
1021 ndr->flags = _flags_save_STRUCT;
1023 return NDR_ERR_SUCCESS;
1026 _PUBLIC_ enum ndr_err_code ndr_pull_CHALLENGE_MESSAGE(struct ndr_pull *ndr, int ndr_flags, struct CHALLENGE_MESSAGE *r)
1028 uint32_t _ptr_TargetName;
1029 TALLOC_CTX *_mem_save_TargetName_0;
1030 uint32_t _ptr_TargetInfo;
1031 TALLOC_CTX *_mem_save_TargetInfo_0;
1033 uint32_t _flags_save_STRUCT = ndr->flags;
1034 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1035 if (ndr_flags & NDR_SCALARS) {
1036 NDR_CHECK(ndr_pull_align(ndr, 5));
1037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Signature, 8, sizeof(uint8_t), CH_DOS));
1038 NDR_CHECK(ndr_pull_ntlmssp_MessageType(ndr, NDR_SCALARS, &r->MessageType));
1039 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetNameLen));
1040 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetNameMaxLen));
1042 uint32_t _flags_save_string = ndr->flags;
1043 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_TargetName));
1045 if (_ptr_TargetName) {
1046 NDR_PULL_ALLOC(ndr, r->TargetName);
1047 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->TargetName, _ptr_TargetName));
1048 } else {
1049 r->TargetName = NULL;
1051 ndr->flags = _flags_save_string;
1053 NDR_CHECK(ndr_pull_NEGOTIATE(ndr, NDR_SCALARS, &r->NegotiateFlags));
1054 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ServerChallenge, 8));
1055 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Reserved, 8));
1056 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetInfoLen));
1057 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetNameInfoMaxLen));
1058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_TargetInfo));
1059 if (_ptr_TargetInfo) {
1060 NDR_PULL_ALLOC(ndr, r->TargetInfo);
1061 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->TargetInfo, _ptr_TargetInfo));
1062 } else {
1063 r->TargetInfo = NULL;
1065 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
1066 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
1068 if (ndr_flags & NDR_BUFFERS) {
1070 uint32_t _flags_save_string = ndr->flags;
1071 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1072 if (r->TargetName) {
1073 uint32_t _relative_save_offset;
1074 _relative_save_offset = ndr->offset;
1075 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->TargetName));
1076 _mem_save_TargetName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1077 NDR_PULL_SET_MEM_CTX(ndr, r->TargetName, 0);
1079 struct ndr_pull *_ndr_TargetName;
1080 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_TargetName, 0, r->TargetNameLen));
1081 NDR_CHECK(ndr_pull_string(_ndr_TargetName, NDR_SCALARS, &r->TargetName));
1082 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_TargetName, 0, r->TargetNameLen));
1084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_TargetName_0, 0);
1085 ndr->offset = _relative_save_offset;
1087 ndr->flags = _flags_save_string;
1089 if (r->TargetInfo) {
1090 uint32_t _relative_save_offset;
1091 _relative_save_offset = ndr->offset;
1092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->TargetInfo));
1093 _mem_save_TargetInfo_0 = NDR_PULL_GET_MEM_CTX(ndr);
1094 NDR_PULL_SET_MEM_CTX(ndr, r->TargetInfo, 0);
1096 struct ndr_pull *_ndr_TargetInfo;
1097 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_TargetInfo, 0, r->TargetInfoLen));
1098 NDR_CHECK(ndr_pull_AV_PAIR_LIST(_ndr_TargetInfo, NDR_SCALARS|NDR_BUFFERS, r->TargetInfo));
1099 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_TargetInfo, 0, r->TargetInfoLen));
1101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_TargetInfo_0, 0);
1102 ndr->offset = _relative_save_offset;
1104 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
1106 ndr->flags = _flags_save_STRUCT;
1108 return NDR_ERR_SUCCESS;
1111 _PUBLIC_ void ndr_print_CHALLENGE_MESSAGE(struct ndr_print *ndr, const char *name, const struct CHALLENGE_MESSAGE *r)
1113 ndr_print_struct(ndr, name, "CHALLENGE_MESSAGE");
1115 uint32_t _flags_save_STRUCT = ndr->flags;
1116 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1117 ndr->depth++;
1118 ndr_print_string(ndr, "Signature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?"NTLMSSP":r->Signature);
1119 ndr_print_ntlmssp_MessageType(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NtLmChallenge:r->MessageType);
1120 ndr_print_uint16(ndr, "TargetNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName):r->TargetNameLen);
1121 ndr_print_uint16(ndr, "TargetNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->TargetNameLen:r->TargetNameMaxLen);
1122 ndr_print_ptr(ndr, "TargetName", r->TargetName);
1123 ndr->depth++;
1124 if (r->TargetName) {
1125 ndr_print_string(ndr, "TargetName", r->TargetName);
1127 ndr->depth--;
1128 ndr_print_NEGOTIATE(ndr, "NegotiateFlags", r->NegotiateFlags);
1129 ndr_print_array_uint8(ndr, "ServerChallenge", r->ServerChallenge, 8);
1130 ndr_print_array_uint8(ndr, "Reserved", r->Reserved, 8);
1131 ndr_print_uint16(ndr, "TargetInfoLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->iconv_convenience, ndr->flags):r->TargetInfoLen);
1132 ndr_print_uint16(ndr, "TargetNameInfoMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->TargetInfoLen:r->TargetNameInfoMaxLen);
1133 ndr_print_ptr(ndr, "TargetInfo", r->TargetInfo);
1134 ndr->depth++;
1135 if (r->TargetInfo) {
1136 ndr_print_AV_PAIR_LIST(ndr, "TargetInfo", r->TargetInfo);
1138 ndr->depth--;
1139 ndr_print_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION);
1140 ndr_print_ntlmssp_Version(ndr, "Version", &r->Version);
1141 ndr->depth--;
1142 ndr->flags = _flags_save_STRUCT;
1146 _PUBLIC_ enum ndr_err_code ndr_push_LM_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct LM_RESPONSE *r)
1149 uint32_t _flags_save_STRUCT = ndr->flags;
1150 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1151 if (ndr_flags & NDR_SCALARS) {
1152 NDR_CHECK(ndr_push_align(ndr, 1));
1153 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 24));
1155 if (ndr_flags & NDR_BUFFERS) {
1157 ndr->flags = _flags_save_STRUCT;
1159 return NDR_ERR_SUCCESS;
1162 _PUBLIC_ enum ndr_err_code ndr_pull_LM_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct LM_RESPONSE *r)
1165 uint32_t _flags_save_STRUCT = ndr->flags;
1166 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1167 if (ndr_flags & NDR_SCALARS) {
1168 NDR_CHECK(ndr_pull_align(ndr, 1));
1169 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, 24));
1171 if (ndr_flags & NDR_BUFFERS) {
1173 ndr->flags = _flags_save_STRUCT;
1175 return NDR_ERR_SUCCESS;
1178 _PUBLIC_ void ndr_print_LM_RESPONSE(struct ndr_print *ndr, const char *name, const struct LM_RESPONSE *r)
1180 ndr_print_struct(ndr, name, "LM_RESPONSE");
1182 uint32_t _flags_save_STRUCT = ndr->flags;
1183 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1184 ndr->depth++;
1185 ndr_print_array_uint8(ndr, "Response", r->Response, 24);
1186 ndr->depth--;
1187 ndr->flags = _flags_save_STRUCT;
1191 _PUBLIC_ enum ndr_err_code ndr_push_LMv2_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct LMv2_RESPONSE *r)
1194 uint32_t _flags_save_STRUCT = ndr->flags;
1195 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1196 if (ndr_flags & NDR_SCALARS) {
1197 NDR_CHECK(ndr_push_align(ndr, 1));
1198 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 16));
1199 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, 8));
1201 if (ndr_flags & NDR_BUFFERS) {
1203 ndr->flags = _flags_save_STRUCT;
1205 return NDR_ERR_SUCCESS;
1208 _PUBLIC_ enum ndr_err_code ndr_pull_LMv2_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct LMv2_RESPONSE *r)
1211 uint32_t _flags_save_STRUCT = ndr->flags;
1212 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1213 if (ndr_flags & NDR_SCALARS) {
1214 NDR_CHECK(ndr_pull_align(ndr, 1));
1215 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, 16));
1216 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, 8));
1218 if (ndr_flags & NDR_BUFFERS) {
1220 ndr->flags = _flags_save_STRUCT;
1222 return NDR_ERR_SUCCESS;
1225 _PUBLIC_ void ndr_print_LMv2_RESPONSE(struct ndr_print *ndr, const char *name, const struct LMv2_RESPONSE *r)
1227 ndr_print_struct(ndr, name, "LMv2_RESPONSE");
1229 uint32_t _flags_save_STRUCT = ndr->flags;
1230 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1231 ndr->depth++;
1232 ndr_print_array_uint8(ndr, "Response", r->Response, 16);
1233 ndr_print_array_uint8(ndr, "ChallengeFromClient", r->ChallengeFromClient, 8);
1234 ndr->depth--;
1235 ndr->flags = _flags_save_STRUCT;
1239 static enum ndr_err_code ndr_push_ntlmssp_LM_RESPONSE(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_LM_RESPONSE *r)
1241 if (ndr_flags & NDR_SCALARS) {
1242 int level = ndr_push_get_switch_value(ndr, r);
1243 NDR_CHECK(ndr_push_union_align(ndr, 1));
1244 switch (level) {
1245 case 24: {
1246 NDR_CHECK(ndr_push_LM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
1247 break; }
1249 default: {
1250 break; }
1254 if (ndr_flags & NDR_BUFFERS) {
1255 int level = ndr_push_get_switch_value(ndr, r);
1256 switch (level) {
1257 case 24:
1258 break;
1260 default:
1261 break;
1265 return NDR_ERR_SUCCESS;
1268 static enum ndr_err_code ndr_pull_ntlmssp_LM_RESPONSE(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_LM_RESPONSE *r)
1270 int level;
1271 level = ndr_pull_get_switch_value(ndr, r);
1272 if (ndr_flags & NDR_SCALARS) {
1273 NDR_CHECK(ndr_pull_union_align(ndr, 1));
1274 switch (level) {
1275 case 24: {
1276 NDR_CHECK(ndr_pull_LM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
1277 break; }
1279 default: {
1280 break; }
1284 if (ndr_flags & NDR_BUFFERS) {
1285 switch (level) {
1286 case 24:
1287 break;
1289 default:
1290 break;
1294 return NDR_ERR_SUCCESS;
1297 _PUBLIC_ void ndr_print_ntlmssp_LM_RESPONSE(struct ndr_print *ndr, const char *name, const union ntlmssp_LM_RESPONSE *r)
1299 int level;
1300 level = ndr_print_get_switch_value(ndr, r);
1301 ndr_print_union(ndr, name, level, "ntlmssp_LM_RESPONSE");
1302 switch (level) {
1303 case 24:
1304 ndr_print_LM_RESPONSE(ndr, "v1", &r->v1);
1305 break;
1307 default:
1308 break;
1313 _PUBLIC_ enum ndr_err_code ndr_push_NTLM_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NTLM_RESPONSE *r)
1316 uint32_t _flags_save_STRUCT = ndr->flags;
1317 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1318 if (ndr_flags & NDR_SCALARS) {
1319 NDR_CHECK(ndr_push_align(ndr, 1));
1320 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 24));
1322 if (ndr_flags & NDR_BUFFERS) {
1324 ndr->flags = _flags_save_STRUCT;
1326 return NDR_ERR_SUCCESS;
1329 _PUBLIC_ enum ndr_err_code ndr_pull_NTLM_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NTLM_RESPONSE *r)
1332 uint32_t _flags_save_STRUCT = ndr->flags;
1333 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1334 if (ndr_flags & NDR_SCALARS) {
1335 NDR_CHECK(ndr_pull_align(ndr, 1));
1336 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, 24));
1338 if (ndr_flags & NDR_BUFFERS) {
1340 ndr->flags = _flags_save_STRUCT;
1342 return NDR_ERR_SUCCESS;
1345 _PUBLIC_ void ndr_print_NTLM_RESPONSE(struct ndr_print *ndr, const char *name, const struct NTLM_RESPONSE *r)
1347 ndr_print_struct(ndr, name, "NTLM_RESPONSE");
1349 uint32_t _flags_save_STRUCT = ndr->flags;
1350 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1351 ndr->depth++;
1352 ndr_print_array_uint8(ndr, "Response", r->Response, 24);
1353 ndr->depth--;
1354 ndr->flags = _flags_save_STRUCT;
1358 static enum ndr_err_code ndr_push_NTLMv2_CLIENT_CHALLENGE(struct ndr_push *ndr, int ndr_flags, const struct NTLMv2_CLIENT_CHALLENGE *r)
1361 uint32_t _flags_save_STRUCT = ndr->flags;
1362 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1363 if (ndr_flags & NDR_SCALARS) {
1364 NDR_CHECK(ndr_push_align(ndr, 4));
1365 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 1));
1366 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 1));
1367 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Reserved1));
1368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved2));
1369 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->TimeStamp));
1370 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, 8));
1371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved3));
1373 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
1374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1376 struct ndr_push *_ndr_AvPairs;
1377 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_AvPairs, 0, -1));
1378 NDR_CHECK(ndr_push_AV_PAIR_LIST(_ndr_AvPairs, NDR_SCALARS|NDR_BUFFERS, &r->AvPairs));
1379 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_AvPairs, 0, -1));
1381 ndr->flags = _flags_save_AV_PAIR_LIST;
1384 if (ndr_flags & NDR_BUFFERS) {
1386 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
1387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1388 ndr->flags = _flags_save_AV_PAIR_LIST;
1391 ndr->flags = _flags_save_STRUCT;
1393 return NDR_ERR_SUCCESS;
1396 static enum ndr_err_code ndr_pull_NTLMv2_CLIENT_CHALLENGE(struct ndr_pull *ndr, int ndr_flags, struct NTLMv2_CLIENT_CHALLENGE *r)
1399 uint32_t _flags_save_STRUCT = ndr->flags;
1400 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1401 if (ndr_flags & NDR_SCALARS) {
1402 NDR_CHECK(ndr_pull_align(ndr, 4));
1403 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->RespType));
1404 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->HiRespType));
1405 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Reserved1));
1406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved2));
1407 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->TimeStamp));
1408 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, 8));
1409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved3));
1411 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
1412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1414 struct ndr_pull *_ndr_AvPairs;
1415 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_AvPairs, 0, -1));
1416 NDR_CHECK(ndr_pull_AV_PAIR_LIST(_ndr_AvPairs, NDR_SCALARS|NDR_BUFFERS, &r->AvPairs));
1417 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_AvPairs, 0, -1));
1419 ndr->flags = _flags_save_AV_PAIR_LIST;
1422 if (ndr_flags & NDR_BUFFERS) {
1424 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
1425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1426 ndr->flags = _flags_save_AV_PAIR_LIST;
1429 ndr->flags = _flags_save_STRUCT;
1431 return NDR_ERR_SUCCESS;
1434 _PUBLIC_ void ndr_print_NTLMv2_CLIENT_CHALLENGE(struct ndr_print *ndr, const char *name, const struct NTLMv2_CLIENT_CHALLENGE *r)
1436 ndr_print_struct(ndr, name, "NTLMv2_CLIENT_CHALLENGE");
1438 uint32_t _flags_save_STRUCT = ndr->flags;
1439 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1440 ndr->depth++;
1441 ndr_print_uint8(ndr, "RespType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->RespType);
1442 ndr_print_uint8(ndr, "HiRespType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->HiRespType);
1443 ndr_print_uint16(ndr, "Reserved1", r->Reserved1);
1444 ndr_print_uint32(ndr, "Reserved2", r->Reserved2);
1445 ndr_print_NTTIME(ndr, "TimeStamp", r->TimeStamp);
1446 ndr_print_array_uint8(ndr, "ChallengeFromClient", r->ChallengeFromClient, 8);
1447 ndr_print_uint32(ndr, "Reserved3", r->Reserved3);
1448 ndr_print_AV_PAIR_LIST(ndr, "AvPairs", &r->AvPairs);
1449 ndr->depth--;
1450 ndr->flags = _flags_save_STRUCT;
1454 _PUBLIC_ enum ndr_err_code ndr_push_NTLMv2_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NTLMv2_RESPONSE *r)
1457 uint32_t _flags_save_STRUCT = ndr->flags;
1458 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1459 if (ndr_flags & NDR_SCALARS) {
1460 NDR_CHECK(ndr_push_align(ndr, 4));
1461 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 16));
1462 NDR_CHECK(ndr_push_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_SCALARS, &r->Challenge));
1464 if (ndr_flags & NDR_BUFFERS) {
1465 NDR_CHECK(ndr_push_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_BUFFERS, &r->Challenge));
1467 ndr->flags = _flags_save_STRUCT;
1469 return NDR_ERR_SUCCESS;
1472 _PUBLIC_ enum ndr_err_code ndr_pull_NTLMv2_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NTLMv2_RESPONSE *r)
1475 uint32_t _flags_save_STRUCT = ndr->flags;
1476 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1477 if (ndr_flags & NDR_SCALARS) {
1478 NDR_CHECK(ndr_pull_align(ndr, 4));
1479 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, 16));
1480 NDR_CHECK(ndr_pull_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_SCALARS, &r->Challenge));
1482 if (ndr_flags & NDR_BUFFERS) {
1483 NDR_CHECK(ndr_pull_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_BUFFERS, &r->Challenge));
1485 ndr->flags = _flags_save_STRUCT;
1487 return NDR_ERR_SUCCESS;
1490 _PUBLIC_ void ndr_print_NTLMv2_RESPONSE(struct ndr_print *ndr, const char *name, const struct NTLMv2_RESPONSE *r)
1492 ndr_print_struct(ndr, name, "NTLMv2_RESPONSE");
1494 uint32_t _flags_save_STRUCT = ndr->flags;
1495 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1496 ndr->depth++;
1497 ndr_print_array_uint8(ndr, "Response", r->Response, 16);
1498 ndr_print_NTLMv2_CLIENT_CHALLENGE(ndr, "Challenge", &r->Challenge);
1499 ndr->depth--;
1500 ndr->flags = _flags_save_STRUCT;
1504 _PUBLIC_ enum ndr_err_code ndr_push_ntlmssp_NTLM_RESPONSE(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_NTLM_RESPONSE *r)
1506 if (ndr_flags & NDR_SCALARS) {
1507 int level = ndr_push_get_switch_value(ndr, r);
1508 NDR_CHECK(ndr_push_union_align(ndr, 4));
1509 switch (level) {
1510 case 0: {
1511 break; }
1513 case 0x18: {
1514 NDR_CHECK(ndr_push_NTLM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
1515 break; }
1517 default: {
1518 NDR_CHECK(ndr_push_NTLMv2_RESPONSE(ndr, NDR_SCALARS, &r->v2));
1519 break; }
1523 if (ndr_flags & NDR_BUFFERS) {
1524 int level = ndr_push_get_switch_value(ndr, r);
1525 switch (level) {
1526 case 0:
1527 break;
1529 case 0x18:
1530 break;
1532 default:
1533 NDR_CHECK(ndr_push_NTLMv2_RESPONSE(ndr, NDR_BUFFERS, &r->v2));
1534 break;
1538 return NDR_ERR_SUCCESS;
1541 _PUBLIC_ enum ndr_err_code ndr_pull_ntlmssp_NTLM_RESPONSE(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_NTLM_RESPONSE *r)
1543 int level;
1544 level = ndr_pull_get_switch_value(ndr, r);
1545 if (ndr_flags & NDR_SCALARS) {
1546 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1547 switch (level) {
1548 case 0: {
1549 break; }
1551 case 0x18: {
1552 NDR_CHECK(ndr_pull_NTLM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
1553 break; }
1555 default: {
1556 NDR_CHECK(ndr_pull_NTLMv2_RESPONSE(ndr, NDR_SCALARS, &r->v2));
1557 break; }
1561 if (ndr_flags & NDR_BUFFERS) {
1562 switch (level) {
1563 case 0:
1564 break;
1566 case 0x18:
1567 break;
1569 default:
1570 NDR_CHECK(ndr_pull_NTLMv2_RESPONSE(ndr, NDR_BUFFERS, &r->v2));
1571 break;
1575 return NDR_ERR_SUCCESS;
1578 _PUBLIC_ void ndr_print_ntlmssp_NTLM_RESPONSE(struct ndr_print *ndr, const char *name, const union ntlmssp_NTLM_RESPONSE *r)
1580 int level;
1581 level = ndr_print_get_switch_value(ndr, r);
1582 ndr_print_union(ndr, name, level, "ntlmssp_NTLM_RESPONSE");
1583 switch (level) {
1584 case 0:
1585 break;
1587 case 0x18:
1588 ndr_print_NTLM_RESPONSE(ndr, "v1", &r->v1);
1589 break;
1591 default:
1592 ndr_print_NTLMv2_RESPONSE(ndr, "v2", &r->v2);
1593 break;
1598 _PUBLIC_ enum ndr_err_code ndr_push_AUTHENTICATE_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct AUTHENTICATE_MESSAGE *r)
1601 uint32_t _flags_save_STRUCT = ndr->flags;
1602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1603 if (ndr_flags & NDR_SCALARS) {
1604 NDR_CHECK(ndr_push_align(ndr, 5));
1605 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "NTLMSSP", 8, sizeof(uint8_t), CH_DOS));
1606 NDR_CHECK(ndr_push_ntlmssp_MessageType(ndr, NDR_SCALARS, NtLmAuthenticate));
1607 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->LmChallengeResponseLen));
1608 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->LmChallengeResponseLen));
1609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->LmChallengeResponse));
1610 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->NtChallengeResponseLen));
1611 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->NtChallengeResponseLen));
1612 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->NtChallengeResponse));
1613 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
1614 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
1616 uint32_t _flags_save_string = ndr->flags;
1617 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1618 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->DomainName));
1619 ndr->flags = _flags_save_string;
1621 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
1622 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
1624 uint32_t _flags_save_string = ndr->flags;
1625 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1626 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->UserName));
1627 ndr->flags = _flags_save_string;
1629 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
1630 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
1632 uint32_t _flags_save_string = ndr->flags;
1633 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1634 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->Workstation));
1635 ndr->flags = _flags_save_string;
1637 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->EncryptedRandomSessionKey->length));
1638 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->EncryptedRandomSessionKey->length));
1639 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->EncryptedRandomSessionKey));
1640 NDR_CHECK(ndr_push_NEGOTIATE(ndr, NDR_SCALARS, r->NegotiateFlags));
1641 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
1642 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
1644 if (ndr_flags & NDR_BUFFERS) {
1645 if (r->LmChallengeResponse) {
1646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->LmChallengeResponse));
1648 struct ndr_push *_ndr_LmChallengeResponse;
1649 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
1650 NDR_CHECK(ndr_push_set_switch_value(_ndr_LmChallengeResponse, r->LmChallengeResponse, r->LmChallengeResponseLen));
1651 NDR_CHECK(ndr_push_ntlmssp_LM_RESPONSE(_ndr_LmChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->LmChallengeResponse));
1652 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
1655 if (r->NtChallengeResponse) {
1656 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->NtChallengeResponse));
1658 struct ndr_push *_ndr_NtChallengeResponse;
1659 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_NtChallengeResponse, 0, r->NtChallengeResponseLen));
1660 NDR_CHECK(ndr_push_set_switch_value(_ndr_NtChallengeResponse, r->NtChallengeResponse, r->NtChallengeResponseLen));
1661 NDR_CHECK(ndr_push_ntlmssp_NTLM_RESPONSE(_ndr_NtChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->NtChallengeResponse));
1662 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_NtChallengeResponse, 0, r->NtChallengeResponseLen));
1666 uint32_t _flags_save_string = ndr->flags;
1667 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1668 if (r->DomainName) {
1669 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->DomainName));
1671 struct ndr_push *_ndr_DomainName;
1672 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_DomainName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
1673 NDR_CHECK(ndr_push_string(_ndr_DomainName, NDR_SCALARS, r->DomainName));
1674 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_DomainName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
1677 ndr->flags = _flags_save_string;
1680 uint32_t _flags_save_string = ndr->flags;
1681 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1682 if (r->UserName) {
1683 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->UserName));
1685 struct ndr_push *_ndr_UserName;
1686 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_UserName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
1687 NDR_CHECK(ndr_push_string(_ndr_UserName, NDR_SCALARS, r->UserName));
1688 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_UserName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
1691 ndr->flags = _flags_save_string;
1694 uint32_t _flags_save_string = ndr->flags;
1695 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1696 if (r->Workstation) {
1697 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->Workstation));
1699 struct ndr_push *_ndr_Workstation;
1700 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Workstation, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
1701 NDR_CHECK(ndr_push_string(_ndr_Workstation, NDR_SCALARS, r->Workstation));
1702 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Workstation, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
1705 ndr->flags = _flags_save_string;
1707 if (r->EncryptedRandomSessionKey) {
1708 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->EncryptedRandomSessionKey));
1710 struct ndr_push *_ndr_EncryptedRandomSessionKey;
1711 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKey->length));
1712 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_EncryptedRandomSessionKey, NDR_SCALARS, *r->EncryptedRandomSessionKey));
1713 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKey->length));
1716 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
1718 ndr->flags = _flags_save_STRUCT;
1720 return NDR_ERR_SUCCESS;
1723 _PUBLIC_ enum ndr_err_code ndr_pull_AUTHENTICATE_MESSAGE(struct ndr_pull *ndr, int ndr_flags, struct AUTHENTICATE_MESSAGE *r)
1725 uint32_t _ptr_LmChallengeResponse;
1726 TALLOC_CTX *_mem_save_LmChallengeResponse_0;
1727 uint32_t _ptr_NtChallengeResponse;
1728 TALLOC_CTX *_mem_save_NtChallengeResponse_0;
1729 uint32_t _ptr_DomainName;
1730 TALLOC_CTX *_mem_save_DomainName_0;
1731 uint32_t _ptr_UserName;
1732 TALLOC_CTX *_mem_save_UserName_0;
1733 uint32_t _ptr_Workstation;
1734 TALLOC_CTX *_mem_save_Workstation_0;
1735 uint32_t _ptr_EncryptedRandomSessionKey;
1736 TALLOC_CTX *_mem_save_EncryptedRandomSessionKey_0;
1738 uint32_t _flags_save_STRUCT = ndr->flags;
1739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1740 if (ndr_flags & NDR_SCALARS) {
1741 NDR_CHECK(ndr_pull_align(ndr, 5));
1742 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Signature, 8, sizeof(uint8_t), CH_DOS));
1743 NDR_CHECK(ndr_pull_ntlmssp_MessageType(ndr, NDR_SCALARS, &r->MessageType));
1744 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->LmChallengeResponseLen));
1745 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->LmChallengeResponseMaxLen));
1746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_LmChallengeResponse));
1747 if (_ptr_LmChallengeResponse) {
1748 NDR_PULL_ALLOC(ndr, r->LmChallengeResponse);
1749 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->LmChallengeResponse, _ptr_LmChallengeResponse));
1750 } else {
1751 r->LmChallengeResponse = NULL;
1753 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->NtChallengeResponseLen));
1754 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->NtChallengeResponseMaxLen));
1755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NtChallengeResponse));
1756 if (_ptr_NtChallengeResponse) {
1757 NDR_PULL_ALLOC(ndr, r->NtChallengeResponse);
1758 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->NtChallengeResponse, _ptr_NtChallengeResponse));
1759 } else {
1760 r->NtChallengeResponse = NULL;
1762 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameLen));
1763 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameMaxLen));
1765 uint32_t _flags_save_string = ndr->flags;
1766 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DomainName));
1768 if (_ptr_DomainName) {
1769 NDR_PULL_ALLOC(ndr, r->DomainName);
1770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DomainName, _ptr_DomainName));
1771 } else {
1772 r->DomainName = NULL;
1774 ndr->flags = _flags_save_string;
1776 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UserNameLen));
1777 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UserNameMaxLen));
1779 uint32_t _flags_save_string = ndr->flags;
1780 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_UserName));
1782 if (_ptr_UserName) {
1783 NDR_PULL_ALLOC(ndr, r->UserName);
1784 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->UserName, _ptr_UserName));
1785 } else {
1786 r->UserName = NULL;
1788 ndr->flags = _flags_save_string;
1790 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationLen));
1791 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationMaxLen));
1793 uint32_t _flags_save_string = ndr->flags;
1794 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Workstation));
1796 if (_ptr_Workstation) {
1797 NDR_PULL_ALLOC(ndr, r->Workstation);
1798 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Workstation, _ptr_Workstation));
1799 } else {
1800 r->Workstation = NULL;
1802 ndr->flags = _flags_save_string;
1804 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->EncryptedRandomSessionKeyLen));
1805 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->EncryptedRandomSessionKeyMaxLen));
1806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedRandomSessionKey));
1807 if (_ptr_EncryptedRandomSessionKey) {
1808 NDR_PULL_ALLOC(ndr, r->EncryptedRandomSessionKey);
1809 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->EncryptedRandomSessionKey, _ptr_EncryptedRandomSessionKey));
1810 } else {
1811 r->EncryptedRandomSessionKey = NULL;
1813 NDR_CHECK(ndr_pull_NEGOTIATE(ndr, NDR_SCALARS, &r->NegotiateFlags));
1814 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
1815 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
1817 if (ndr_flags & NDR_BUFFERS) {
1818 if (r->LmChallengeResponse) {
1819 uint32_t _relative_save_offset;
1820 _relative_save_offset = ndr->offset;
1821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->LmChallengeResponse));
1822 _mem_save_LmChallengeResponse_0 = NDR_PULL_GET_MEM_CTX(ndr);
1823 NDR_PULL_SET_MEM_CTX(ndr, r->LmChallengeResponse, 0);
1825 struct ndr_pull *_ndr_LmChallengeResponse;
1826 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
1827 NDR_CHECK(ndr_pull_set_switch_value(_ndr_LmChallengeResponse, r->LmChallengeResponse, r->LmChallengeResponseLen));
1828 NDR_CHECK(ndr_pull_ntlmssp_LM_RESPONSE(_ndr_LmChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->LmChallengeResponse));
1829 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
1831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_LmChallengeResponse_0, 0);
1832 ndr->offset = _relative_save_offset;
1834 if (r->NtChallengeResponse) {
1835 uint32_t _relative_save_offset;
1836 _relative_save_offset = ndr->offset;
1837 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->NtChallengeResponse));
1838 _mem_save_NtChallengeResponse_0 = NDR_PULL_GET_MEM_CTX(ndr);
1839 NDR_PULL_SET_MEM_CTX(ndr, r->NtChallengeResponse, 0);
1841 struct ndr_pull *_ndr_NtChallengeResponse;
1842 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_NtChallengeResponse, 0, r->NtChallengeResponseMaxLen));
1843 NDR_CHECK(ndr_pull_set_switch_value(_ndr_NtChallengeResponse, r->NtChallengeResponse, r->NtChallengeResponseLen));
1844 NDR_CHECK(ndr_pull_ntlmssp_NTLM_RESPONSE(_ndr_NtChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->NtChallengeResponse));
1845 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_NtChallengeResponse, 0, r->NtChallengeResponseMaxLen));
1847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NtChallengeResponse_0, 0);
1848 ndr->offset = _relative_save_offset;
1851 uint32_t _flags_save_string = ndr->flags;
1852 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1853 if (r->DomainName) {
1854 uint32_t _relative_save_offset;
1855 _relative_save_offset = ndr->offset;
1856 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DomainName));
1857 _mem_save_DomainName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1858 NDR_PULL_SET_MEM_CTX(ndr, r->DomainName, 0);
1860 struct ndr_pull *_ndr_DomainName;
1861 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_DomainName, 0, r->DomainNameLen));
1862 NDR_CHECK(ndr_pull_string(_ndr_DomainName, NDR_SCALARS, &r->DomainName));
1863 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_DomainName, 0, r->DomainNameLen));
1865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DomainName_0, 0);
1866 ndr->offset = _relative_save_offset;
1868 ndr->flags = _flags_save_string;
1871 uint32_t _flags_save_string = ndr->flags;
1872 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1873 if (r->UserName) {
1874 uint32_t _relative_save_offset;
1875 _relative_save_offset = ndr->offset;
1876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->UserName));
1877 _mem_save_UserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1878 NDR_PULL_SET_MEM_CTX(ndr, r->UserName, 0);
1880 struct ndr_pull *_ndr_UserName;
1881 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_UserName, 0, r->UserNameLen));
1882 NDR_CHECK(ndr_pull_string(_ndr_UserName, NDR_SCALARS, &r->UserName));
1883 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_UserName, 0, r->UserNameLen));
1885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_UserName_0, 0);
1886 ndr->offset = _relative_save_offset;
1888 ndr->flags = _flags_save_string;
1891 uint32_t _flags_save_string = ndr->flags;
1892 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
1893 if (r->Workstation) {
1894 uint32_t _relative_save_offset;
1895 _relative_save_offset = ndr->offset;
1896 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Workstation));
1897 _mem_save_Workstation_0 = NDR_PULL_GET_MEM_CTX(ndr);
1898 NDR_PULL_SET_MEM_CTX(ndr, r->Workstation, 0);
1900 struct ndr_pull *_ndr_Workstation;
1901 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_Workstation, 0, r->WorkstationLen));
1902 NDR_CHECK(ndr_pull_string(_ndr_Workstation, NDR_SCALARS, &r->Workstation));
1903 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_Workstation, 0, r->WorkstationLen));
1905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Workstation_0, 0);
1906 ndr->offset = _relative_save_offset;
1908 ndr->flags = _flags_save_string;
1910 if (r->EncryptedRandomSessionKey) {
1911 uint32_t _relative_save_offset;
1912 _relative_save_offset = ndr->offset;
1913 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->EncryptedRandomSessionKey));
1914 _mem_save_EncryptedRandomSessionKey_0 = NDR_PULL_GET_MEM_CTX(ndr);
1915 NDR_PULL_SET_MEM_CTX(ndr, r->EncryptedRandomSessionKey, 0);
1917 struct ndr_pull *_ndr_EncryptedRandomSessionKey;
1918 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKeyLen));
1919 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_EncryptedRandomSessionKey, NDR_SCALARS, r->EncryptedRandomSessionKey));
1920 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKeyLen));
1922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_EncryptedRandomSessionKey_0, 0);
1923 ndr->offset = _relative_save_offset;
1925 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
1927 ndr->flags = _flags_save_STRUCT;
1929 return NDR_ERR_SUCCESS;
1932 _PUBLIC_ void ndr_print_AUTHENTICATE_MESSAGE(struct ndr_print *ndr, const char *name, const struct AUTHENTICATE_MESSAGE *r)
1934 ndr_print_struct(ndr, name, "AUTHENTICATE_MESSAGE");
1936 uint32_t _flags_save_STRUCT = ndr->flags;
1937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1938 ndr->depth++;
1939 ndr_print_string(ndr, "Signature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?"NTLMSSP":r->Signature);
1940 ndr_print_ntlmssp_MessageType(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NtLmAuthenticate:r->MessageType);
1941 ndr_print_uint16(ndr, "LmChallengeResponseLen", r->LmChallengeResponseLen);
1942 ndr_print_uint16(ndr, "LmChallengeResponseMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->LmChallengeResponseLen:r->LmChallengeResponseMaxLen);
1943 ndr_print_ptr(ndr, "LmChallengeResponse", r->LmChallengeResponse);
1944 ndr->depth++;
1945 if (r->LmChallengeResponse) {
1946 ndr_print_set_switch_value(ndr, r->LmChallengeResponse, r->LmChallengeResponseLen);
1947 ndr_print_ntlmssp_LM_RESPONSE(ndr, "LmChallengeResponse", r->LmChallengeResponse);
1949 ndr->depth--;
1950 ndr_print_uint16(ndr, "NtChallengeResponseLen", r->NtChallengeResponseLen);
1951 ndr_print_uint16(ndr, "NtChallengeResponseMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->NtChallengeResponseLen:r->NtChallengeResponseMaxLen);
1952 ndr_print_ptr(ndr, "NtChallengeResponse", r->NtChallengeResponse);
1953 ndr->depth++;
1954 if (r->NtChallengeResponse) {
1955 ndr_print_set_switch_value(ndr, r->NtChallengeResponse, r->NtChallengeResponseLen);
1956 ndr_print_ntlmssp_NTLM_RESPONSE(ndr, "NtChallengeResponse", r->NtChallengeResponse);
1958 ndr->depth--;
1959 ndr_print_uint16(ndr, "DomainNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName):r->DomainNameLen);
1960 ndr_print_uint16(ndr, "DomainNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->DomainNameLen:r->DomainNameMaxLen);
1961 ndr_print_ptr(ndr, "DomainName", r->DomainName);
1962 ndr->depth++;
1963 if (r->DomainName) {
1964 ndr_print_string(ndr, "DomainName", r->DomainName);
1966 ndr->depth--;
1967 ndr_print_uint16(ndr, "UserNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName):r->UserNameLen);
1968 ndr_print_uint16(ndr, "UserNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->UserNameLen:r->UserNameMaxLen);
1969 ndr_print_ptr(ndr, "UserName", r->UserName);
1970 ndr->depth++;
1971 if (r->UserName) {
1972 ndr_print_string(ndr, "UserName", r->UserName);
1974 ndr->depth--;
1975 ndr_print_uint16(ndr, "WorkstationLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation):r->WorkstationLen);
1976 ndr_print_uint16(ndr, "WorkstationMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->WorkstationLen:r->WorkstationMaxLen);
1977 ndr_print_ptr(ndr, "Workstation", r->Workstation);
1978 ndr->depth++;
1979 if (r->Workstation) {
1980 ndr_print_string(ndr, "Workstation", r->Workstation);
1982 ndr->depth--;
1983 ndr_print_uint16(ndr, "EncryptedRandomSessionKeyLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->EncryptedRandomSessionKey->length:r->EncryptedRandomSessionKeyLen);
1984 ndr_print_uint16(ndr, "EncryptedRandomSessionKeyMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->EncryptedRandomSessionKeyLen:r->EncryptedRandomSessionKeyMaxLen);
1985 ndr_print_ptr(ndr, "EncryptedRandomSessionKey", r->EncryptedRandomSessionKey);
1986 ndr->depth++;
1987 if (r->EncryptedRandomSessionKey) {
1988 ndr_print_DATA_BLOB(ndr, "EncryptedRandomSessionKey", *r->EncryptedRandomSessionKey);
1990 ndr->depth--;
1991 ndr_print_NEGOTIATE(ndr, "NegotiateFlags", r->NegotiateFlags);
1992 ndr_print_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION);
1993 ndr_print_ntlmssp_Version(ndr, "Version", &r->Version);
1994 ndr->depth--;
1995 ndr->flags = _flags_save_STRUCT;
1999 _PUBLIC_ enum ndr_err_code ndr_push_NTLMSSP_MESSAGE_SIGNATURE(struct ndr_push *ndr, int ndr_flags, const struct NTLMSSP_MESSAGE_SIGNATURE *r)
2001 if (ndr_flags & NDR_SCALARS) {
2002 NDR_CHECK(ndr_push_align(ndr, 4));
2003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NTLMSSP_SIGN_VERSION));
2004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->RandomPad));
2005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Checksum));
2006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SeqNum));
2008 if (ndr_flags & NDR_BUFFERS) {
2010 return NDR_ERR_SUCCESS;
2013 _PUBLIC_ enum ndr_err_code ndr_pull_NTLMSSP_MESSAGE_SIGNATURE(struct ndr_pull *ndr, int ndr_flags, struct NTLMSSP_MESSAGE_SIGNATURE *r)
2015 if (ndr_flags & NDR_SCALARS) {
2016 NDR_CHECK(ndr_pull_align(ndr, 4));
2017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
2018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->RandomPad));
2019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Checksum));
2020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SeqNum));
2022 if (ndr_flags & NDR_BUFFERS) {
2024 return NDR_ERR_SUCCESS;
2027 _PUBLIC_ void ndr_print_NTLMSSP_MESSAGE_SIGNATURE(struct ndr_print *ndr, const char *name, const struct NTLMSSP_MESSAGE_SIGNATURE *r)
2029 ndr_print_struct(ndr, name, "NTLMSSP_MESSAGE_SIGNATURE");
2030 ndr->depth++;
2031 ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NTLMSSP_SIGN_VERSION:r->Version);
2032 ndr_print_uint32(ndr, "RandomPad", r->RandomPad);
2033 ndr_print_uint32(ndr, "Checksum", r->Checksum);
2034 ndr_print_uint32(ndr, "SeqNum", r->SeqNum);
2035 ndr->depth--;
2038 _PUBLIC_ enum ndr_err_code ndr_push_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(struct ndr_push *ndr, int ndr_flags, const struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 *r)
2041 uint32_t _flags_save_STRUCT = ndr->flags;
2042 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2043 if (ndr_flags & NDR_SCALARS) {
2044 NDR_CHECK(ndr_push_align(ndr, 4));
2045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NTLMSSP_SIGN_VERSION));
2046 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Checksum, 8));
2047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SeqNum));
2049 if (ndr_flags & NDR_BUFFERS) {
2051 ndr->flags = _flags_save_STRUCT;
2053 return NDR_ERR_SUCCESS;
2056 _PUBLIC_ enum ndr_err_code ndr_pull_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(struct ndr_pull *ndr, int ndr_flags, struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 *r)
2059 uint32_t _flags_save_STRUCT = ndr->flags;
2060 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2061 if (ndr_flags & NDR_SCALARS) {
2062 NDR_CHECK(ndr_pull_align(ndr, 4));
2063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
2064 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Checksum, 8));
2065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SeqNum));
2067 if (ndr_flags & NDR_BUFFERS) {
2069 ndr->flags = _flags_save_STRUCT;
2071 return NDR_ERR_SUCCESS;
2074 _PUBLIC_ void ndr_print_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(struct ndr_print *ndr, const char *name, const struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 *r)
2076 ndr_print_struct(ndr, name, "NTLMSSP_MESSAGE_SIGNATURE_NTLMv2");
2078 uint32_t _flags_save_STRUCT = ndr->flags;
2079 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2080 ndr->depth++;
2081 ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NTLMSSP_SIGN_VERSION:r->Version);
2082 ndr_print_array_uint8(ndr, "Checksum", r->Checksum, 8);
2083 ndr_print_uint32(ndr, "SeqNum", r->SeqNum);
2084 ndr->depth--;
2085 ndr->flags = _flags_save_STRUCT;
2089 static enum ndr_err_code ndr_push_decode_NEGOTIATE_MESSAGE(struct ndr_push *ndr, int flags, const struct decode_NEGOTIATE_MESSAGE *r)
2091 if (flags & NDR_IN) {
2092 NDR_CHECK(ndr_push_NEGOTIATE_MESSAGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.negotiate));
2094 if (flags & NDR_OUT) {
2096 return NDR_ERR_SUCCESS;
2099 static enum ndr_err_code ndr_pull_decode_NEGOTIATE_MESSAGE(struct ndr_pull *ndr, int flags, struct decode_NEGOTIATE_MESSAGE *r)
2101 if (flags & NDR_IN) {
2102 NDR_CHECK(ndr_pull_NEGOTIATE_MESSAGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.negotiate));
2104 if (flags & NDR_OUT) {
2106 return NDR_ERR_SUCCESS;
2109 _PUBLIC_ void ndr_print_decode_NEGOTIATE_MESSAGE(struct ndr_print *ndr, const char *name, int flags, const struct decode_NEGOTIATE_MESSAGE *r)
2111 ndr_print_struct(ndr, name, "decode_NEGOTIATE_MESSAGE");
2112 ndr->depth++;
2113 if (flags & NDR_SET_VALUES) {
2114 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2116 if (flags & NDR_IN) {
2117 ndr_print_struct(ndr, "in", "decode_NEGOTIATE_MESSAGE");
2118 ndr->depth++;
2119 ndr_print_NEGOTIATE_MESSAGE(ndr, "negotiate", &r->in.negotiate);
2120 ndr->depth--;
2122 if (flags & NDR_OUT) {
2123 ndr_print_struct(ndr, "out", "decode_NEGOTIATE_MESSAGE");
2124 ndr->depth++;
2125 ndr->depth--;
2127 ndr->depth--;
2130 static enum ndr_err_code ndr_push_decode_CHALLENGE_MESSAGE(struct ndr_push *ndr, int flags, const struct decode_CHALLENGE_MESSAGE *r)
2132 if (flags & NDR_IN) {
2133 NDR_CHECK(ndr_push_CHALLENGE_MESSAGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.challenge));
2135 if (flags & NDR_OUT) {
2137 return NDR_ERR_SUCCESS;
2140 static enum ndr_err_code ndr_pull_decode_CHALLENGE_MESSAGE(struct ndr_pull *ndr, int flags, struct decode_CHALLENGE_MESSAGE *r)
2142 if (flags & NDR_IN) {
2143 NDR_CHECK(ndr_pull_CHALLENGE_MESSAGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.challenge));
2145 if (flags & NDR_OUT) {
2147 return NDR_ERR_SUCCESS;
2150 _PUBLIC_ void ndr_print_decode_CHALLENGE_MESSAGE(struct ndr_print *ndr, const char *name, int flags, const struct decode_CHALLENGE_MESSAGE *r)
2152 ndr_print_struct(ndr, name, "decode_CHALLENGE_MESSAGE");
2153 ndr->depth++;
2154 if (flags & NDR_SET_VALUES) {
2155 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2157 if (flags & NDR_IN) {
2158 ndr_print_struct(ndr, "in", "decode_CHALLENGE_MESSAGE");
2159 ndr->depth++;
2160 ndr_print_CHALLENGE_MESSAGE(ndr, "challenge", &r->in.challenge);
2161 ndr->depth--;
2163 if (flags & NDR_OUT) {
2164 ndr_print_struct(ndr, "out", "decode_CHALLENGE_MESSAGE");
2165 ndr->depth++;
2166 ndr->depth--;
2168 ndr->depth--;
2171 static enum ndr_err_code ndr_push_decode_AUTHENTICATE_MESSAGE(struct ndr_push *ndr, int flags, const struct decode_AUTHENTICATE_MESSAGE *r)
2173 if (flags & NDR_IN) {
2174 NDR_CHECK(ndr_push_AUTHENTICATE_MESSAGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.authenticate));
2176 if (flags & NDR_OUT) {
2178 return NDR_ERR_SUCCESS;
2181 static enum ndr_err_code ndr_pull_decode_AUTHENTICATE_MESSAGE(struct ndr_pull *ndr, int flags, struct decode_AUTHENTICATE_MESSAGE *r)
2183 if (flags & NDR_IN) {
2184 NDR_CHECK(ndr_pull_AUTHENTICATE_MESSAGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.authenticate));
2186 if (flags & NDR_OUT) {
2188 return NDR_ERR_SUCCESS;
2191 _PUBLIC_ void ndr_print_decode_AUTHENTICATE_MESSAGE(struct ndr_print *ndr, const char *name, int flags, const struct decode_AUTHENTICATE_MESSAGE *r)
2193 ndr_print_struct(ndr, name, "decode_AUTHENTICATE_MESSAGE");
2194 ndr->depth++;
2195 if (flags & NDR_SET_VALUES) {
2196 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2198 if (flags & NDR_IN) {
2199 ndr_print_struct(ndr, "in", "decode_AUTHENTICATE_MESSAGE");
2200 ndr->depth++;
2201 ndr_print_AUTHENTICATE_MESSAGE(ndr, "authenticate", &r->in.authenticate);
2202 ndr->depth--;
2204 if (flags & NDR_OUT) {
2205 ndr_print_struct(ndr, "out", "decode_AUTHENTICATE_MESSAGE");
2206 ndr->depth++;
2207 ndr->depth--;
2209 ndr->depth--;
2212 static enum ndr_err_code ndr_push_decode_NTLMv2_CLIENT_CHALLENGE(struct ndr_push *ndr, int flags, const struct decode_NTLMv2_CLIENT_CHALLENGE *r)
2214 if (flags & NDR_IN) {
2215 NDR_CHECK(ndr_push_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.challenge));
2217 if (flags & NDR_OUT) {
2219 return NDR_ERR_SUCCESS;
2222 static enum ndr_err_code ndr_pull_decode_NTLMv2_CLIENT_CHALLENGE(struct ndr_pull *ndr, int flags, struct decode_NTLMv2_CLIENT_CHALLENGE *r)
2224 if (flags & NDR_IN) {
2225 NDR_CHECK(ndr_pull_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.challenge));
2227 if (flags & NDR_OUT) {
2229 return NDR_ERR_SUCCESS;
2232 _PUBLIC_ void ndr_print_decode_NTLMv2_CLIENT_CHALLENGE(struct ndr_print *ndr, const char *name, int flags, const struct decode_NTLMv2_CLIENT_CHALLENGE *r)
2234 ndr_print_struct(ndr, name, "decode_NTLMv2_CLIENT_CHALLENGE");
2235 ndr->depth++;
2236 if (flags & NDR_SET_VALUES) {
2237 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
2239 if (flags & NDR_IN) {
2240 ndr_print_struct(ndr, "in", "decode_NTLMv2_CLIENT_CHALLENGE");
2241 ndr->depth++;
2242 ndr_print_NTLMv2_CLIENT_CHALLENGE(ndr, "challenge", &r->in.challenge);
2243 ndr->depth--;
2245 if (flags & NDR_OUT) {
2246 ndr_print_struct(ndr, "out", "decode_NTLMv2_CLIENT_CHALLENGE");
2247 ndr->depth++;
2248 ndr->depth--;
2250 ndr->depth--;
2253 static const struct ndr_interface_call ntlmssp_calls[] = {
2255 "decode_NEGOTIATE_MESSAGE",
2256 sizeof(struct decode_NEGOTIATE_MESSAGE),
2257 (ndr_push_flags_fn_t) ndr_push_decode_NEGOTIATE_MESSAGE,
2258 (ndr_pull_flags_fn_t) ndr_pull_decode_NEGOTIATE_MESSAGE,
2259 (ndr_print_function_t) ndr_print_decode_NEGOTIATE_MESSAGE,
2260 false,
2263 "decode_CHALLENGE_MESSAGE",
2264 sizeof(struct decode_CHALLENGE_MESSAGE),
2265 (ndr_push_flags_fn_t) ndr_push_decode_CHALLENGE_MESSAGE,
2266 (ndr_pull_flags_fn_t) ndr_pull_decode_CHALLENGE_MESSAGE,
2267 (ndr_print_function_t) ndr_print_decode_CHALLENGE_MESSAGE,
2268 false,
2271 "decode_AUTHENTICATE_MESSAGE",
2272 sizeof(struct decode_AUTHENTICATE_MESSAGE),
2273 (ndr_push_flags_fn_t) ndr_push_decode_AUTHENTICATE_MESSAGE,
2274 (ndr_pull_flags_fn_t) ndr_pull_decode_AUTHENTICATE_MESSAGE,
2275 (ndr_print_function_t) ndr_print_decode_AUTHENTICATE_MESSAGE,
2276 false,
2279 "decode_NTLMv2_CLIENT_CHALLENGE",
2280 sizeof(struct decode_NTLMv2_CLIENT_CHALLENGE),
2281 (ndr_push_flags_fn_t) ndr_push_decode_NTLMv2_CLIENT_CHALLENGE,
2282 (ndr_pull_flags_fn_t) ndr_pull_decode_NTLMv2_CLIENT_CHALLENGE,
2283 (ndr_print_function_t) ndr_print_decode_NTLMv2_CLIENT_CHALLENGE,
2284 false,
2286 { NULL, 0, NULL, NULL, NULL, false }
2289 static const char * const ntlmssp_endpoint_strings[] = {
2290 "ncacn_np:[\\pipe\\ntlmssp]",
2293 static const struct ndr_interface_string_array ntlmssp_endpoints = {
2294 .count = 1,
2295 .names = ntlmssp_endpoint_strings
2298 static const char * const ntlmssp_authservice_strings[] = {
2299 "host",
2302 static const struct ndr_interface_string_array ntlmssp_authservices = {
2303 .count = 1,
2304 .names = ntlmssp_authservice_strings
2308 const struct ndr_interface_table ndr_table_ntlmssp = {
2309 .name = "ntlmssp",
2310 .syntax_id = {
2311 {0x6e746c6d,0x7373,0x700a,{0x00,0x00},{0x00,0x00,0x00,0x00}},
2312 NDR_NTLMSSP_VERSION
2314 .helpstring = NDR_NTLMSSP_HELPSTRING,
2315 .num_calls = 4,
2316 .calls = ntlmssp_calls,
2317 .endpoints = &ntlmssp_endpoints,
2318 .authservices = &ntlmssp_authservices