• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/librpc/gen_ndr/
1/* parser auto-generated by pidl */
2
3#include "includes.h"
4#include "../librpc/gen_ndr/ndr_krb5pac.h"
5
6#include "librpc/gen_ndr/ndr_security.h"
7#include "librpc/gen_ndr/ndr_netlogon.h"
8#include "librpc/gen_ndr/ndr_samr.h"
9static enum ndr_err_code ndr_push_PAC_LOGON_NAME(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_NAME *r)
10{
11	if (ndr_flags & NDR_SCALARS) {
12		NDR_CHECK(ndr_push_align(ndr, 4));
13		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->logon_time));
14		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->account_name)));
15		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, 2 * strlen_m(r->account_name), sizeof(uint8_t), CH_UTF16));
16		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17	}
18	if (ndr_flags & NDR_BUFFERS) {
19	}
20	return NDR_ERR_SUCCESS;
21}
22
23static enum ndr_err_code ndr_pull_PAC_LOGON_NAME(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_NAME *r)
24{
25	if (ndr_flags & NDR_SCALARS) {
26		NDR_CHECK(ndr_pull_align(ndr, 4));
27		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->logon_time));
28		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
29		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, r->size, sizeof(uint8_t), CH_UTF16));
30		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
31	}
32	if (ndr_flags & NDR_BUFFERS) {
33	}
34	return NDR_ERR_SUCCESS;
35}
36
37_PUBLIC_ void ndr_print_PAC_LOGON_NAME(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_NAME *r)
38{
39	ndr_print_struct(ndr, name, "PAC_LOGON_NAME");
40	ndr->depth++;
41	ndr_print_NTTIME(ndr, "logon_time", r->logon_time);
42	ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->account_name):r->size);
43	ndr_print_string(ndr, "account_name", r->account_name);
44	ndr->depth--;
45}
46
47_PUBLIC_ enum ndr_err_code ndr_push_PAC_SIGNATURE_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_SIGNATURE_DATA *r)
48{
49	{
50		uint32_t _flags_save_STRUCT = ndr->flags;
51		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
52		if (ndr_flags & NDR_SCALARS) {
53			NDR_CHECK(ndr_push_align(ndr, 4));
54			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
55			{
56				uint32_t _flags_save_DATA_BLOB = ndr->flags;
57				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
58				NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->signature));
59				ndr->flags = _flags_save_DATA_BLOB;
60			}
61			NDR_CHECK(ndr_push_trailer_align(ndr, 4));
62		}
63		if (ndr_flags & NDR_BUFFERS) {
64		}
65		ndr->flags = _flags_save_STRUCT;
66	}
67	return NDR_ERR_SUCCESS;
68}
69
70_PUBLIC_ enum ndr_err_code ndr_pull_PAC_SIGNATURE_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_SIGNATURE_DATA *r)
71{
72	{
73		uint32_t _flags_save_STRUCT = ndr->flags;
74		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
75		if (ndr_flags & NDR_SCALARS) {
76			NDR_CHECK(ndr_pull_align(ndr, 4));
77			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
78			{
79				uint32_t _flags_save_DATA_BLOB = ndr->flags;
80				ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
81				NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->signature));
82				ndr->flags = _flags_save_DATA_BLOB;
83			}
84			NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
85		}
86		if (ndr_flags & NDR_BUFFERS) {
87		}
88		ndr->flags = _flags_save_STRUCT;
89	}
90	return NDR_ERR_SUCCESS;
91}
92
93_PUBLIC_ void ndr_print_PAC_SIGNATURE_DATA(struct ndr_print *ndr, const char *name, const struct PAC_SIGNATURE_DATA *r)
94{
95	ndr_print_struct(ndr, name, "PAC_SIGNATURE_DATA");
96	{
97		uint32_t _flags_save_STRUCT = ndr->flags;
98		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
99		ndr->depth++;
100		ndr_print_uint32(ndr, "type", r->type);
101		ndr_print_DATA_BLOB(ndr, "signature", r->signature);
102		ndr->depth--;
103		ndr->flags = _flags_save_STRUCT;
104	}
105}
106
107static enum ndr_err_code ndr_push_PAC_LOGON_INFO(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_INFO *r)
108{
109	if (ndr_flags & NDR_SCALARS) {
110		NDR_CHECK(ndr_push_align(ndr, 5));
111		NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
112		NDR_CHECK(ndr_push_unique_ptr(ndr, r->res_group_dom_sid));
113		NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->res_groups));
114		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
115	}
116	if (ndr_flags & NDR_BUFFERS) {
117		NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
118		if (r->res_group_dom_sid) {
119			NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->res_group_dom_sid));
120		}
121		NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->res_groups));
122	}
123	return NDR_ERR_SUCCESS;
124}
125
126static enum ndr_err_code ndr_pull_PAC_LOGON_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO *r)
127{
128	uint32_t _ptr_res_group_dom_sid;
129	TALLOC_CTX *_mem_save_res_group_dom_sid_0;
130	if (ndr_flags & NDR_SCALARS) {
131		NDR_CHECK(ndr_pull_align(ndr, 5));
132		NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
133		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_res_group_dom_sid));
134		if (_ptr_res_group_dom_sid) {
135			NDR_PULL_ALLOC(ndr, r->res_group_dom_sid);
136		} else {
137			r->res_group_dom_sid = NULL;
138		}
139		NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->res_groups));
140		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
141	}
142	if (ndr_flags & NDR_BUFFERS) {
143		NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
144		if (r->res_group_dom_sid) {
145			_mem_save_res_group_dom_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
146			NDR_PULL_SET_MEM_CTX(ndr, r->res_group_dom_sid, 0);
147			NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->res_group_dom_sid));
148			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_group_dom_sid_0, 0);
149		}
150		NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->res_groups));
151	}
152	return NDR_ERR_SUCCESS;
153}
154
155_PUBLIC_ void ndr_print_PAC_LOGON_INFO(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO *r)
156{
157	ndr_print_struct(ndr, name, "PAC_LOGON_INFO");
158	ndr->depth++;
159	ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
160	ndr_print_ptr(ndr, "res_group_dom_sid", r->res_group_dom_sid);
161	ndr->depth++;
162	if (r->res_group_dom_sid) {
163		ndr_print_dom_sid2(ndr, "res_group_dom_sid", r->res_group_dom_sid);
164	}
165	ndr->depth--;
166	ndr_print_samr_RidWithAttributeArray(ndr, "res_groups", &r->res_groups);
167	ndr->depth--;
168}
169
170_PUBLIC_ enum ndr_err_code ndr_push_PAC_LOGON_INFO_CTR(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_INFO_CTR *r)
171{
172	if (ndr_flags & NDR_SCALARS) {
173		NDR_CHECK(ndr_push_align(ndr, 5));
174		NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
175		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
176	}
177	if (ndr_flags & NDR_BUFFERS) {
178		if (r->info) {
179			NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
180		}
181	}
182	return NDR_ERR_SUCCESS;
183}
184
185_PUBLIC_ enum ndr_err_code ndr_pull_PAC_LOGON_INFO_CTR(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO_CTR *r)
186{
187	uint32_t _ptr_info;
188	TALLOC_CTX *_mem_save_info_0;
189	if (ndr_flags & NDR_SCALARS) {
190		NDR_CHECK(ndr_pull_align(ndr, 5));
191		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
192		if (_ptr_info) {
193			NDR_PULL_ALLOC(ndr, r->info);
194		} else {
195			r->info = NULL;
196		}
197		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
198	}
199	if (ndr_flags & NDR_BUFFERS) {
200		if (r->info) {
201			_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
202			NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
203			NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
204			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
205		}
206	}
207	return NDR_ERR_SUCCESS;
208}
209
210_PUBLIC_ void ndr_print_PAC_LOGON_INFO_CTR(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO_CTR *r)
211{
212	ndr_print_struct(ndr, name, "PAC_LOGON_INFO_CTR");
213	ndr->depth++;
214	ndr_print_ptr(ndr, "info", r->info);
215	ndr->depth++;
216	if (r->info) {
217		ndr_print_PAC_LOGON_INFO(ndr, "info", r->info);
218	}
219	ndr->depth--;
220	ndr->depth--;
221}
222
223_PUBLIC_ enum ndr_err_code ndr_push_PAC_TYPE(struct ndr_push *ndr, int ndr_flags, enum PAC_TYPE r)
224{
225	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
226	return NDR_ERR_SUCCESS;
227}
228
229_PUBLIC_ enum ndr_err_code ndr_pull_PAC_TYPE(struct ndr_pull *ndr, int ndr_flags, enum PAC_TYPE *r)
230{
231	uint32_t v;
232	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
233	*r = v;
234	return NDR_ERR_SUCCESS;
235}
236
237_PUBLIC_ void ndr_print_PAC_TYPE(struct ndr_print *ndr, const char *name, enum PAC_TYPE r)
238{
239	const char *val = NULL;
240
241	switch (r) {
242		case PAC_TYPE_LOGON_INFO: val = "PAC_TYPE_LOGON_INFO"; break;
243		case PAC_TYPE_SRV_CHECKSUM: val = "PAC_TYPE_SRV_CHECKSUM"; break;
244		case PAC_TYPE_KDC_CHECKSUM: val = "PAC_TYPE_KDC_CHECKSUM"; break;
245		case PAC_TYPE_LOGON_NAME: val = "PAC_TYPE_LOGON_NAME"; break;
246		case PAC_TYPE_CONSTRAINED_DELEGATION: val = "PAC_TYPE_CONSTRAINED_DELEGATION"; break;
247		case PAC_TYPE_UNKNOWN_12: val = "PAC_TYPE_UNKNOWN_12"; break;
248	}
249	ndr_print_enum(ndr, name, "ENUM", val, r);
250}
251
252static enum ndr_err_code ndr_push_DATA_BLOB_REM(struct ndr_push *ndr, int ndr_flags, const struct DATA_BLOB_REM *r)
253{
254	if (ndr_flags & NDR_SCALARS) {
255		NDR_CHECK(ndr_push_align(ndr, 4));
256		{
257			uint32_t _flags_save_DATA_BLOB = ndr->flags;
258			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
259			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
260			ndr->flags = _flags_save_DATA_BLOB;
261		}
262		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
263	}
264	if (ndr_flags & NDR_BUFFERS) {
265	}
266	return NDR_ERR_SUCCESS;
267}
268
269static enum ndr_err_code ndr_pull_DATA_BLOB_REM(struct ndr_pull *ndr, int ndr_flags, struct DATA_BLOB_REM *r)
270{
271	if (ndr_flags & NDR_SCALARS) {
272		NDR_CHECK(ndr_pull_align(ndr, 4));
273		{
274			uint32_t _flags_save_DATA_BLOB = ndr->flags;
275			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
276			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
277			ndr->flags = _flags_save_DATA_BLOB;
278		}
279		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
280	}
281	if (ndr_flags & NDR_BUFFERS) {
282	}
283	return NDR_ERR_SUCCESS;
284}
285
286_PUBLIC_ void ndr_print_DATA_BLOB_REM(struct ndr_print *ndr, const char *name, const struct DATA_BLOB_REM *r)
287{
288	ndr_print_struct(ndr, name, "DATA_BLOB_REM");
289	ndr->depth++;
290	ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
291	ndr->depth--;
292}
293
294_PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct ndr_push *ndr, int ndr_flags, const union PAC_INFO *r)
295{
296	if (ndr_flags & NDR_SCALARS) {
297		int level = ndr_push_get_switch_value(ndr, r);
298		NDR_CHECK(ndr_push_union_align(ndr, 4));
299		switch (level) {
300			case PAC_TYPE_LOGON_INFO: {
301				{
302					struct ndr_push *_ndr_logon_info;
303					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
304					NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
305					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
306				}
307			break; }
308
309			case PAC_TYPE_SRV_CHECKSUM: {
310				NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
311			break; }
312
313			case PAC_TYPE_KDC_CHECKSUM: {
314				NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
315			break; }
316
317			case PAC_TYPE_LOGON_NAME: {
318				NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
319			break; }
320
321			default: {
322				{
323					struct ndr_push *_ndr_unknown;
324					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_unknown, 0, -1));
325					NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
326					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_unknown, 0, -1));
327				}
328			break; }
329
330		}
331	}
332	if (ndr_flags & NDR_BUFFERS) {
333		int level = ndr_push_get_switch_value(ndr, r);
334		switch (level) {
335			case PAC_TYPE_LOGON_INFO:
336			break;
337
338			case PAC_TYPE_SRV_CHECKSUM:
339			break;
340
341			case PAC_TYPE_KDC_CHECKSUM:
342			break;
343
344			case PAC_TYPE_LOGON_NAME:
345			break;
346
347			default:
348			break;
349
350		}
351	}
352	return NDR_ERR_SUCCESS;
353}
354
355_PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct ndr_pull *ndr, int ndr_flags, union PAC_INFO *r)
356{
357	int level;
358	level = ndr_pull_get_switch_value(ndr, r);
359	if (ndr_flags & NDR_SCALARS) {
360		NDR_CHECK(ndr_pull_union_align(ndr, 4));
361		switch (level) {
362			case PAC_TYPE_LOGON_INFO: {
363				{
364					struct ndr_pull *_ndr_logon_info;
365					NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
366					NDR_CHECK(ndr_pull_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
367					NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
368				}
369			break; }
370
371			case PAC_TYPE_SRV_CHECKSUM: {
372				NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
373			break; }
374
375			case PAC_TYPE_KDC_CHECKSUM: {
376				NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
377			break; }
378
379			case PAC_TYPE_LOGON_NAME: {
380				NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
381			break; }
382
383			default: {
384				{
385					struct ndr_pull *_ndr_unknown;
386					NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_unknown, 0, -1));
387					NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
388					NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_unknown, 0, -1));
389				}
390			break; }
391
392		}
393	}
394	if (ndr_flags & NDR_BUFFERS) {
395		switch (level) {
396			case PAC_TYPE_LOGON_INFO:
397			break;
398
399			case PAC_TYPE_SRV_CHECKSUM:
400			break;
401
402			case PAC_TYPE_KDC_CHECKSUM:
403			break;
404
405			case PAC_TYPE_LOGON_NAME:
406			break;
407
408			default:
409			break;
410
411		}
412	}
413	return NDR_ERR_SUCCESS;
414}
415
416_PUBLIC_ void ndr_print_PAC_INFO(struct ndr_print *ndr, const char *name, const union PAC_INFO *r)
417{
418	int level;
419	level = ndr_print_get_switch_value(ndr, r);
420	ndr_print_union(ndr, name, level, "PAC_INFO");
421	switch (level) {
422		case PAC_TYPE_LOGON_INFO:
423			ndr_print_PAC_LOGON_INFO_CTR(ndr, "logon_info", &r->logon_info);
424		break;
425
426		case PAC_TYPE_SRV_CHECKSUM:
427			ndr_print_PAC_SIGNATURE_DATA(ndr, "srv_cksum", &r->srv_cksum);
428		break;
429
430		case PAC_TYPE_KDC_CHECKSUM:
431			ndr_print_PAC_SIGNATURE_DATA(ndr, "kdc_cksum", &r->kdc_cksum);
432		break;
433
434		case PAC_TYPE_LOGON_NAME:
435			ndr_print_PAC_LOGON_NAME(ndr, "logon_name", &r->logon_name);
436		break;
437
438		default:
439			ndr_print_DATA_BLOB_REM(ndr, "unknown", &r->unknown);
440		break;
441
442	}
443}
444
445_PUBLIC_ size_t ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
446{
447	return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_PAC_INFO, ic);
448}
449
450_PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA *r)
451{
452	uint32_t cntr_buffers_0;
453	if (ndr_flags & NDR_SCALARS) {
454		NDR_CHECK(ndr_push_align(ndr, 5));
455		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
456		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
457		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
458			NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
459		}
460		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
461	}
462	if (ndr_flags & NDR_BUFFERS) {
463		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
464			NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
465		}
466	}
467	return NDR_ERR_SUCCESS;
468}
469
470_PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA *r)
471{
472	uint32_t cntr_buffers_0;
473	TALLOC_CTX *_mem_save_buffers_0;
474	if (ndr_flags & NDR_SCALARS) {
475		NDR_CHECK(ndr_pull_align(ndr, 5));
476		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
477		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
478		NDR_PULL_ALLOC_N(ndr, r->buffers, r->num_buffers);
479		_mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
480		NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
481		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
482			NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
483		}
484		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
485		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
486	}
487	if (ndr_flags & NDR_BUFFERS) {
488		_mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
489		NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
490		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
491			NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
492		}
493		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
494	}
495	return NDR_ERR_SUCCESS;
496}
497
498_PUBLIC_ void ndr_print_PAC_DATA(struct ndr_print *ndr, const char *name, const struct PAC_DATA *r)
499{
500	uint32_t cntr_buffers_0;
501	ndr_print_struct(ndr, name, "PAC_DATA");
502	ndr->depth++;
503	ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
504	ndr_print_uint32(ndr, "version", r->version);
505	ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers);
506	ndr->depth++;
507	for (cntr_buffers_0=0;cntr_buffers_0<r->num_buffers;cntr_buffers_0++) {
508		char *idx_0=NULL;
509		if (asprintf(&idx_0, "[%d]", cntr_buffers_0) != -1) {
510			ndr_print_PAC_BUFFER(ndr, "buffers", &r->buffers[cntr_buffers_0]);
511			free(idx_0);
512		}
513	}
514	ndr->depth--;
515	ndr->depth--;
516}
517
518_PUBLIC_ enum ndr_err_code ndr_push_PAC_BUFFER_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_BUFFER_RAW *r)
519{
520	if (ndr_flags & NDR_SCALARS) {
521		NDR_CHECK(ndr_push_align(ndr, 5));
522		NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type));
523		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ndr_size));
524		{
525			uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
526			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
527			NDR_CHECK(ndr_push_relative_ptr1(ndr, r->info));
528			ndr->flags = _flags_save_DATA_BLOB_REM;
529		}
530		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
531		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
532	}
533	if (ndr_flags & NDR_BUFFERS) {
534		{
535			uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
536			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
537			if (r->info) {
538				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info));
539				{
540					struct ndr_push *_ndr_info;
541					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
542					NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
543					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
544				}
545				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info));
546			}
547			ndr->flags = _flags_save_DATA_BLOB_REM;
548		}
549	}
550	return NDR_ERR_SUCCESS;
551}
552
553_PUBLIC_ enum ndr_err_code ndr_pull_PAC_BUFFER_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_BUFFER_RAW *r)
554{
555	uint32_t _ptr_info;
556	TALLOC_CTX *_mem_save_info_0;
557	if (ndr_flags & NDR_SCALARS) {
558		NDR_CHECK(ndr_pull_align(ndr, 5));
559		NDR_CHECK(ndr_pull_PAC_TYPE(ndr, NDR_SCALARS, &r->type));
560		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ndr_size));
561		{
562			uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
563			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
564			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
565			if (_ptr_info) {
566				NDR_PULL_ALLOC(ndr, r->info);
567				NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->info, _ptr_info));
568			} else {
569				r->info = NULL;
570			}
571			ndr->flags = _flags_save_DATA_BLOB_REM;
572		}
573		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
574		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
575	}
576	if (ndr_flags & NDR_BUFFERS) {
577		{
578			uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
579			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
580			if (r->info) {
581				uint32_t _relative_save_offset;
582				_relative_save_offset = ndr->offset;
583				NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->info));
584				_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
585				NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
586				{
587					struct ndr_pull *_ndr_info;
588					NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
589					NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
590					NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
591				}
592				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
593				ndr->offset = _relative_save_offset;
594			}
595			ndr->flags = _flags_save_DATA_BLOB_REM;
596		}
597	}
598	return NDR_ERR_SUCCESS;
599}
600
601_PUBLIC_ void ndr_print_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER_RAW *r)
602{
603	ndr_print_struct(ndr, name, "PAC_BUFFER_RAW");
604	ndr->depth++;
605	ndr_print_PAC_TYPE(ndr, "type", r->type);
606	ndr_print_uint32(ndr, "ndr_size", r->ndr_size);
607	ndr_print_ptr(ndr, "info", r->info);
608	ndr->depth++;
609	if (r->info) {
610		ndr_print_DATA_BLOB_REM(ndr, "info", r->info);
611	}
612	ndr->depth--;
613	ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad);
614	ndr->depth--;
615}
616
617_PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA_RAW *r)
618{
619	uint32_t cntr_buffers_0;
620	if (ndr_flags & NDR_SCALARS) {
621		NDR_CHECK(ndr_push_align(ndr, 5));
622		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
623		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
624		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
625			NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
626		}
627		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
628	}
629	if (ndr_flags & NDR_BUFFERS) {
630		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
631			NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
632		}
633	}
634	return NDR_ERR_SUCCESS;
635}
636
637_PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA_RAW *r)
638{
639	uint32_t cntr_buffers_0;
640	TALLOC_CTX *_mem_save_buffers_0;
641	if (ndr_flags & NDR_SCALARS) {
642		NDR_CHECK(ndr_pull_align(ndr, 5));
643		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
644		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
645		NDR_PULL_ALLOC_N(ndr, r->buffers, r->num_buffers);
646		_mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
647		NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
648		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
649			NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
650		}
651		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
652		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
653	}
654	if (ndr_flags & NDR_BUFFERS) {
655		_mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
656		NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
657		for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) {
658			NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
659		}
660		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
661	}
662	return NDR_ERR_SUCCESS;
663}
664
665_PUBLIC_ void ndr_print_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, const struct PAC_DATA_RAW *r)
666{
667	uint32_t cntr_buffers_0;
668	ndr_print_struct(ndr, name, "PAC_DATA_RAW");
669	ndr->depth++;
670	ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
671	ndr_print_uint32(ndr, "version", r->version);
672	ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers);
673	ndr->depth++;
674	for (cntr_buffers_0=0;cntr_buffers_0<r->num_buffers;cntr_buffers_0++) {
675		char *idx_0=NULL;
676		if (asprintf(&idx_0, "[%d]", cntr_buffers_0) != -1) {
677			ndr_print_PAC_BUFFER_RAW(ndr, "buffers", &r->buffers[cntr_buffers_0]);
678			free(idx_0);
679		}
680	}
681	ndr->depth--;
682	ndr->depth--;
683}
684
685_PUBLIC_ enum ndr_err_code ndr_push_PAC_Validate(struct ndr_push *ndr, int ndr_flags, const struct PAC_Validate *r)
686{
687	if (ndr_flags & NDR_SCALARS) {
688		NDR_CHECK(ndr_push_align(ndr, 4));
689		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NETLOGON_GENERIC_KRB5_PAC_VALIDATE));
690		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ChecksumLength));
691		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->SignatureType));
692		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SignatureLength));
693		{
694			uint32_t _flags_save_DATA_BLOB = ndr->flags;
695			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
696			NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->ChecksumAndSignature));
697			ndr->flags = _flags_save_DATA_BLOB;
698		}
699		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
700	}
701	if (ndr_flags & NDR_BUFFERS) {
702	}
703	return NDR_ERR_SUCCESS;
704}
705
706_PUBLIC_ enum ndr_err_code ndr_pull_PAC_Validate(struct ndr_pull *ndr, int ndr_flags, struct PAC_Validate *r)
707{
708	if (ndr_flags & NDR_SCALARS) {
709		NDR_CHECK(ndr_pull_align(ndr, 4));
710		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MessageType));
711		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ChecksumLength));
712		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->SignatureType));
713		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SignatureLength));
714		{
715			uint32_t _flags_save_DATA_BLOB = ndr->flags;
716			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
717			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->ChecksumAndSignature));
718			ndr->flags = _flags_save_DATA_BLOB;
719		}
720		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
721	}
722	if (ndr_flags & NDR_BUFFERS) {
723	}
724	return NDR_ERR_SUCCESS;
725}
726
727_PUBLIC_ void ndr_print_PAC_Validate(struct ndr_print *ndr, const char *name, const struct PAC_Validate *r)
728{
729	ndr_print_struct(ndr, name, "PAC_Validate");
730	ndr->depth++;
731	ndr_print_uint32(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NETLOGON_GENERIC_KRB5_PAC_VALIDATE:r->MessageType);
732	ndr_print_uint32(ndr, "ChecksumLength", r->ChecksumLength);
733	ndr_print_int32(ndr, "SignatureType", r->SignatureType);
734	ndr_print_uint32(ndr, "SignatureLength", r->SignatureLength);
735	ndr_print_DATA_BLOB(ndr, "ChecksumAndSignature", r->ChecksumAndSignature);
736	ndr->depth--;
737}
738
739_PUBLIC_ enum ndr_err_code ndr_push_netsamlogoncache_entry(struct ndr_push *ndr, int ndr_flags, const struct netsamlogoncache_entry *r)
740{
741	if (ndr_flags & NDR_SCALARS) {
742		NDR_CHECK(ndr_push_align(ndr, 5));
743		NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
744		NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
745		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
746	}
747	if (ndr_flags & NDR_BUFFERS) {
748		NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
749	}
750	return NDR_ERR_SUCCESS;
751}
752
753_PUBLIC_ enum ndr_err_code ndr_pull_netsamlogoncache_entry(struct ndr_pull *ndr, int ndr_flags, struct netsamlogoncache_entry *r)
754{
755	if (ndr_flags & NDR_SCALARS) {
756		NDR_CHECK(ndr_pull_align(ndr, 5));
757		NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
758		NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
759		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
760	}
761	if (ndr_flags & NDR_BUFFERS) {
762		NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
763	}
764	return NDR_ERR_SUCCESS;
765}
766
767_PUBLIC_ void ndr_print_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, const struct netsamlogoncache_entry *r)
768{
769	ndr_print_struct(ndr, name, "netsamlogoncache_entry");
770	ndr->depth++;
771	ndr_print_time_t(ndr, "timestamp", r->timestamp);
772	ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
773	ndr->depth--;
774}
775
776static enum ndr_err_code ndr_push_decode_pac(struct ndr_push *ndr, int flags, const struct decode_pac *r)
777{
778	if (flags & NDR_IN) {
779		NDR_CHECK(ndr_push_PAC_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac));
780	}
781	if (flags & NDR_OUT) {
782	}
783	return NDR_ERR_SUCCESS;
784}
785
786static enum ndr_err_code ndr_pull_decode_pac(struct ndr_pull *ndr, int flags, struct decode_pac *r)
787{
788	if (flags & NDR_IN) {
789		NDR_CHECK(ndr_pull_PAC_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac));
790	}
791	if (flags & NDR_OUT) {
792	}
793	return NDR_ERR_SUCCESS;
794}
795
796_PUBLIC_ void ndr_print_decode_pac(struct ndr_print *ndr, const char *name, int flags, const struct decode_pac *r)
797{
798	ndr_print_struct(ndr, name, "decode_pac");
799	ndr->depth++;
800	if (flags & NDR_SET_VALUES) {
801		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
802	}
803	if (flags & NDR_IN) {
804		ndr_print_struct(ndr, "in", "decode_pac");
805		ndr->depth++;
806		ndr_print_PAC_DATA(ndr, "pac", &r->in.pac);
807		ndr->depth--;
808	}
809	if (flags & NDR_OUT) {
810		ndr_print_struct(ndr, "out", "decode_pac");
811		ndr->depth++;
812		ndr->depth--;
813	}
814	ndr->depth--;
815}
816
817static enum ndr_err_code ndr_push_decode_pac_raw(struct ndr_push *ndr, int flags, const struct decode_pac_raw *r)
818{
819	if (flags & NDR_IN) {
820		NDR_CHECK(ndr_push_PAC_DATA_RAW(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac));
821	}
822	if (flags & NDR_OUT) {
823	}
824	return NDR_ERR_SUCCESS;
825}
826
827static enum ndr_err_code ndr_pull_decode_pac_raw(struct ndr_pull *ndr, int flags, struct decode_pac_raw *r)
828{
829	if (flags & NDR_IN) {
830		NDR_CHECK(ndr_pull_PAC_DATA_RAW(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac));
831	}
832	if (flags & NDR_OUT) {
833	}
834	return NDR_ERR_SUCCESS;
835}
836
837_PUBLIC_ void ndr_print_decode_pac_raw(struct ndr_print *ndr, const char *name, int flags, const struct decode_pac_raw *r)
838{
839	ndr_print_struct(ndr, name, "decode_pac_raw");
840	ndr->depth++;
841	if (flags & NDR_SET_VALUES) {
842		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
843	}
844	if (flags & NDR_IN) {
845		ndr_print_struct(ndr, "in", "decode_pac_raw");
846		ndr->depth++;
847		ndr_print_PAC_DATA_RAW(ndr, "pac", &r->in.pac);
848		ndr->depth--;
849	}
850	if (flags & NDR_OUT) {
851		ndr_print_struct(ndr, "out", "decode_pac_raw");
852		ndr->depth++;
853		ndr->depth--;
854	}
855	ndr->depth--;
856}
857
858static enum ndr_err_code ndr_push_decode_login_info(struct ndr_push *ndr, int flags, const struct decode_login_info *r)
859{
860	if (flags & NDR_IN) {
861		NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon_info));
862	}
863	if (flags & NDR_OUT) {
864	}
865	return NDR_ERR_SUCCESS;
866}
867
868static enum ndr_err_code ndr_pull_decode_login_info(struct ndr_pull *ndr, int flags, struct decode_login_info *r)
869{
870	if (flags & NDR_IN) {
871		NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon_info));
872	}
873	if (flags & NDR_OUT) {
874	}
875	return NDR_ERR_SUCCESS;
876}
877
878_PUBLIC_ void ndr_print_decode_login_info(struct ndr_print *ndr, const char *name, int flags, const struct decode_login_info *r)
879{
880	ndr_print_struct(ndr, name, "decode_login_info");
881	ndr->depth++;
882	if (flags & NDR_SET_VALUES) {
883		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
884	}
885	if (flags & NDR_IN) {
886		ndr_print_struct(ndr, "in", "decode_login_info");
887		ndr->depth++;
888		ndr_print_PAC_LOGON_INFO(ndr, "logon_info", &r->in.logon_info);
889		ndr->depth--;
890	}
891	if (flags & NDR_OUT) {
892		ndr_print_struct(ndr, "out", "decode_login_info");
893		ndr->depth++;
894		ndr->depth--;
895	}
896	ndr->depth--;
897}
898
899static enum ndr_err_code ndr_push_decode_pac_validate(struct ndr_push *ndr, int flags, const struct decode_pac_validate *r)
900{
901	if (flags & NDR_IN) {
902		NDR_CHECK(ndr_push_PAC_Validate(ndr, NDR_SCALARS, &r->in.pac_validate));
903	}
904	if (flags & NDR_OUT) {
905	}
906	return NDR_ERR_SUCCESS;
907}
908
909static enum ndr_err_code ndr_pull_decode_pac_validate(struct ndr_pull *ndr, int flags, struct decode_pac_validate *r)
910{
911	if (flags & NDR_IN) {
912		NDR_CHECK(ndr_pull_PAC_Validate(ndr, NDR_SCALARS, &r->in.pac_validate));
913	}
914	if (flags & NDR_OUT) {
915	}
916	return NDR_ERR_SUCCESS;
917}
918
919_PUBLIC_ void ndr_print_decode_pac_validate(struct ndr_print *ndr, const char *name, int flags, const struct decode_pac_validate *r)
920{
921	ndr_print_struct(ndr, name, "decode_pac_validate");
922	ndr->depth++;
923	if (flags & NDR_SET_VALUES) {
924		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
925	}
926	if (flags & NDR_IN) {
927		ndr_print_struct(ndr, "in", "decode_pac_validate");
928		ndr->depth++;
929		ndr_print_PAC_Validate(ndr, "pac_validate", &r->in.pac_validate);
930		ndr->depth--;
931	}
932	if (flags & NDR_OUT) {
933		ndr_print_struct(ndr, "out", "decode_pac_validate");
934		ndr->depth++;
935		ndr->depth--;
936	}
937	ndr->depth--;
938}
939
940static const struct ndr_interface_call krb5pac_calls[] = {
941	{
942		"decode_pac",
943		sizeof(struct decode_pac),
944		(ndr_push_flags_fn_t) ndr_push_decode_pac,
945		(ndr_pull_flags_fn_t) ndr_pull_decode_pac,
946		(ndr_print_function_t) ndr_print_decode_pac,
947		false,
948	},
949	{
950		"decode_pac_raw",
951		sizeof(struct decode_pac_raw),
952		(ndr_push_flags_fn_t) ndr_push_decode_pac_raw,
953		(ndr_pull_flags_fn_t) ndr_pull_decode_pac_raw,
954		(ndr_print_function_t) ndr_print_decode_pac_raw,
955		false,
956	},
957	{
958		"decode_login_info",
959		sizeof(struct decode_login_info),
960		(ndr_push_flags_fn_t) ndr_push_decode_login_info,
961		(ndr_pull_flags_fn_t) ndr_pull_decode_login_info,
962		(ndr_print_function_t) ndr_print_decode_login_info,
963		false,
964	},
965	{
966		"decode_pac_validate",
967		sizeof(struct decode_pac_validate),
968		(ndr_push_flags_fn_t) ndr_push_decode_pac_validate,
969		(ndr_pull_flags_fn_t) ndr_pull_decode_pac_validate,
970		(ndr_print_function_t) ndr_print_decode_pac_validate,
971		false,
972	},
973	{ NULL, 0, NULL, NULL, NULL, false }
974};
975
976static const char * const krb5pac_endpoint_strings[] = {
977	"ncacn_np:[\\pipe\\krb5pac]",
978};
979
980static const struct ndr_interface_string_array krb5pac_endpoints = {
981	.count	= 1,
982	.names	= krb5pac_endpoint_strings
983};
984
985static const char * const krb5pac_authservice_strings[] = {
986	"host",
987};
988
989static const struct ndr_interface_string_array krb5pac_authservices = {
990	.count	= 1,
991	.names	= krb5pac_authservice_strings
992};
993
994
995const struct ndr_interface_table ndr_table_krb5pac = {
996	.name		= "krb5pac",
997	.syntax_id	= {
998		{0x12345778,0x1234,0xabcd,{0x00,0x00},{0x00,0x00,0x00,0x00}},
999		NDR_KRB5PAC_VERSION
1000	},
1001	.helpstring	= NDR_KRB5PAC_HELPSTRING,
1002	.num_calls	= 4,
1003	.calls		= krb5pac_calls,
1004	.endpoints	= &krb5pac_endpoints,
1005	.authservices	= &krb5pac_authservices
1006};
1007
1008