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