Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/librpc/gen_ndr/ndr_krb5pac.h"
5 :
6 : #include "librpc/gen_ndr/ndr_security.h"
7 : #include "librpc/gen_ndr/ndr_lsa.h"
8 : #include "librpc/gen_ndr/ndr_netlogon.h"
9 : #include "librpc/gen_ndr/ndr_samr.h"
10 9846 : static enum ndr_err_code ndr_push_PAC_LOGON_NAME(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_LOGON_NAME *r)
11 : {
12 9846 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13 9846 : if (ndr_flags & NDR_SCALARS) {
14 9846 : NDR_CHECK(ndr_push_align(ndr, 4));
15 9846 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->logon_time));
16 9846 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->account_name)));
17 9846 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, 2 * strlen_m(r->account_name), sizeof(uint8_t), CH_UTF16));
18 9846 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19 : }
20 9846 : if (ndr_flags & NDR_BUFFERS) {
21 42 : }
22 9846 : return NDR_ERR_SUCCESS;
23 : }
24 :
25 22015 : static enum ndr_err_code ndr_pull_PAC_LOGON_NAME(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_LOGON_NAME *r)
26 : {
27 22015 : uint32_t size_account_name_0 = 0;
28 22015 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
29 22015 : if (ndr_flags & NDR_SCALARS) {
30 22015 : NDR_CHECK(ndr_pull_align(ndr, 4));
31 22015 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->logon_time));
32 22015 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
33 22015 : size_account_name_0 = r->size;
34 22015 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, size_account_name_0, sizeof(uint8_t), CH_UTF16));
35 22015 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
36 : }
37 22015 : if (ndr_flags & NDR_BUFFERS) {
38 31 : }
39 22015 : return NDR_ERR_SUCCESS;
40 : }
41 :
42 15 : _PUBLIC_ void ndr_print_PAC_LOGON_NAME(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_NAME *r)
43 : {
44 15 : ndr_print_struct(ndr, name, "PAC_LOGON_NAME");
45 15 : if (r == NULL) { ndr_print_null(ndr); return; }
46 15 : ndr->depth++;
47 15 : ndr_print_NTTIME(ndr, "logon_time", r->logon_time);
48 15 : ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->account_name):r->size);
49 15 : ndr_print_string(ndr, "account_name", r->account_name);
50 15 : ndr->depth--;
51 : }
52 :
53 50882 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_SIGNATURE_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_SIGNATURE_DATA *r)
54 : {
55 : {
56 50882 : libndr_flags _flags_save_STRUCT = ndr->flags;
57 50882 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
58 50882 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
59 50882 : if (ndr_flags & NDR_SCALARS) {
60 50882 : NDR_CHECK(ndr_push_align(ndr, 4));
61 50882 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
62 : {
63 50882 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
64 50882 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
65 50882 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->signature));
66 50882 : ndr->flags = _flags_save_DATA_BLOB;
67 : }
68 50882 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
69 : }
70 50882 : if (ndr_flags & NDR_BUFFERS) {
71 104 : }
72 50882 : ndr->flags = _flags_save_STRUCT;
73 : }
74 50882 : return NDR_ERR_SUCCESS;
75 : }
76 :
77 95239 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_SIGNATURE_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_SIGNATURE_DATA *r)
78 : {
79 : {
80 95239 : libndr_flags _flags_save_STRUCT = ndr->flags;
81 95239 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
82 95239 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
83 95239 : if (ndr_flags & NDR_SCALARS) {
84 95239 : NDR_CHECK(ndr_pull_align(ndr, 4));
85 95239 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
86 : {
87 95239 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
88 95239 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
89 95239 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->signature));
90 95239 : ndr->flags = _flags_save_DATA_BLOB;
91 : }
92 95239 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
93 : }
94 95239 : if (ndr_flags & NDR_BUFFERS) {
95 80 : }
96 95239 : ndr->flags = _flags_save_STRUCT;
97 : }
98 95239 : return NDR_ERR_SUCCESS;
99 : }
100 :
101 0 : static void ndr_print_flags_PAC_SIGNATURE_DATA(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_SIGNATURE_DATA *r)
102 : {
103 0 : ndr_print_PAC_SIGNATURE_DATA(ndr, name, r);
104 0 : }
105 :
106 34 : _PUBLIC_ void ndr_print_PAC_SIGNATURE_DATA(struct ndr_print *ndr, const char *name, const struct PAC_SIGNATURE_DATA *r)
107 : {
108 34 : ndr_print_struct(ndr, name, "PAC_SIGNATURE_DATA");
109 34 : if (r == NULL) { ndr_print_null(ndr); return; }
110 : {
111 34 : libndr_flags _flags_save_STRUCT = ndr->flags;
112 34 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
113 34 : ndr->depth++;
114 34 : ndr_print_uint32(ndr, "type", r->type);
115 : {
116 34 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
117 34 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
118 34 : ndr_print_DATA_BLOB(ndr, "signature", r->signature);
119 34 : ndr->flags = _flags_save_DATA_BLOB;
120 : }
121 34 : ndr->depth--;
122 34 : ndr->flags = _flags_save_STRUCT;
123 : }
124 : }
125 :
126 173438 : static enum ndr_err_code ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_DOMAIN_GROUP_MEMBERSHIP *r)
127 : {
128 173438 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
129 173438 : if (ndr_flags & NDR_SCALARS) {
130 86719 : NDR_CHECK(ndr_push_align(ndr, 5));
131 86719 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
132 86719 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
133 86719 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
134 : }
135 173438 : if (ndr_flags & NDR_BUFFERS) {
136 86719 : if (r->domain_sid) {
137 16587 : NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
138 : }
139 86719 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
140 : }
141 167698 : return NDR_ERR_SUCCESS;
142 : }
143 :
144 205226 : static enum ndr_err_code ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_DOMAIN_GROUP_MEMBERSHIP *r)
145 : {
146 5144 : uint32_t _ptr_domain_sid;
147 205226 : TALLOC_CTX *_mem_save_domain_sid_0 = NULL;
148 205226 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
149 205226 : if (ndr_flags & NDR_SCALARS) {
150 102613 : NDR_CHECK(ndr_pull_align(ndr, 5));
151 102613 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
152 102613 : if (_ptr_domain_sid) {
153 33361 : NDR_PULL_ALLOC(ndr, r->domain_sid);
154 : } else {
155 69252 : r->domain_sid = NULL;
156 : }
157 102613 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
158 102613 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
159 : }
160 205226 : if (ndr_flags & NDR_BUFFERS) {
161 102613 : if (r->domain_sid) {
162 33361 : _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
163 33361 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
164 33361 : NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
165 33361 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
166 : }
167 102613 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
168 : }
169 200082 : return NDR_ERR_SUCCESS;
170 : }
171 :
172 15 : _PUBLIC_ void ndr_print_PAC_DOMAIN_GROUP_MEMBERSHIP(struct ndr_print *ndr, const char *name, const struct PAC_DOMAIN_GROUP_MEMBERSHIP *r)
173 : {
174 15 : ndr_print_struct(ndr, name, "PAC_DOMAIN_GROUP_MEMBERSHIP");
175 15 : if (r == NULL) { ndr_print_null(ndr); return; }
176 15 : ndr->depth++;
177 15 : ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
178 15 : ndr->depth++;
179 15 : if (r->domain_sid) {
180 2 : ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
181 : }
182 15 : ndr->depth--;
183 15 : ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
184 15 : ndr->depth--;
185 : }
186 :
187 86640 : static enum ndr_err_code ndr_push_PAC_LOGON_INFO(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_LOGON_INFO *r)
188 : {
189 86640 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
190 86640 : if (ndr_flags & NDR_SCALARS) {
191 86640 : NDR_CHECK(ndr_push_align(ndr, 5));
192 86640 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
193 86640 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
194 86640 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
195 : }
196 86640 : if (ndr_flags & NDR_BUFFERS) {
197 86640 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
198 86640 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
199 : }
200 83770 : return NDR_ERR_SUCCESS;
201 : }
202 :
203 102473 : static enum ndr_err_code ndr_pull_PAC_LOGON_INFO(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_LOGON_INFO *r)
204 : {
205 102473 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
206 102473 : if (ndr_flags & NDR_SCALARS) {
207 102473 : NDR_CHECK(ndr_pull_align(ndr, 5));
208 102473 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
209 102473 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
210 102473 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
211 : }
212 102473 : if (ndr_flags & NDR_BUFFERS) {
213 102473 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
214 102473 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
215 : }
216 99901 : return NDR_ERR_SUCCESS;
217 : }
218 :
219 15 : _PUBLIC_ void ndr_print_PAC_LOGON_INFO(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO *r)
220 : {
221 15 : ndr_print_struct(ndr, name, "PAC_LOGON_INFO");
222 15 : if (r == NULL) { ndr_print_null(ndr); return; }
223 15 : ndr->depth++;
224 15 : ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
225 15 : ndr_print_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, "resource_groups", &r->resource_groups);
226 15 : ndr->depth--;
227 : }
228 :
229 46 : static enum ndr_err_code ndr_push_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
230 : {
231 46 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
232 44 : return NDR_ERR_SUCCESS;
233 : }
234 :
235 27 : static enum ndr_err_code ndr_pull_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
236 : {
237 2 : uint32_t v;
238 27 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
239 27 : *r = v;
240 27 : return NDR_ERR_SUCCESS;
241 : }
242 :
243 2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
244 : {
245 2 : ndr_print_uint32(ndr, name, r);
246 2 : ndr->depth++;
247 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_CREDENTIAL_NTLM_HAS_LM_HASH", PAC_CREDENTIAL_NTLM_HAS_LM_HASH, r);
248 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_CREDENTIAL_NTLM_HAS_NT_HASH", PAC_CREDENTIAL_NTLM_HAS_NT_HASH, r);
249 2 : ndr->depth--;
250 2 : }
251 :
252 46 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CREDENTIAL_NTLM_SECPKG *r)
253 : {
254 46 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
255 46 : if (ndr_flags & NDR_SCALARS) {
256 46 : NDR_CHECK(ndr_push_align(ndr, 4));
257 46 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
258 48 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, r->flags));
259 46 : NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
260 46 : NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
261 46 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
262 : }
263 46 : if (ndr_flags & NDR_BUFFERS) {
264 2 : }
265 46 : return NDR_ERR_SUCCESS;
266 : }
267 :
268 27 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CREDENTIAL_NTLM_SECPKG *r)
269 : {
270 27 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
271 27 : if (ndr_flags & NDR_SCALARS) {
272 27 : NDR_CHECK(ndr_pull_align(ndr, 4));
273 27 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
274 29 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, &r->flags));
275 27 : NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
276 27 : NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
277 27 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
278 : }
279 27 : if (ndr_flags & NDR_BUFFERS) {
280 2 : }
281 27 : return NDR_ERR_SUCCESS;
282 : }
283 :
284 0 : static void ndr_print_flags_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_CREDENTIAL_NTLM_SECPKG *r)
285 : {
286 0 : ndr_print_PAC_CREDENTIAL_NTLM_SECPKG(ndr, name, r);
287 0 : }
288 :
289 2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_NTLM_SECPKG *r)
290 : {
291 2 : ndr_print_struct(ndr, name, "PAC_CREDENTIAL_NTLM_SECPKG");
292 2 : if (r == NULL) { ndr_print_null(ndr); return; }
293 2 : ndr->depth++;
294 2 : ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
295 2 : ndr_print_PAC_CREDENTIAL_NTLM_FLAGS(ndr, "flags", r->flags);
296 2 : ndr->depth--;
297 : }
298 :
299 92 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
300 : {
301 92 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
302 92 : if (ndr_flags & NDR_SCALARS) {
303 46 : NDR_CHECK(ndr_push_align(ndr, 5));
304 46 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
305 46 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_size));
306 46 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->credential));
307 46 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
308 : }
309 92 : if (ndr_flags & NDR_BUFFERS) {
310 46 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
311 46 : if (r->credential) {
312 46 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_size));
313 46 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->credential, r->credential_size));
314 : }
315 : }
316 88 : return NDR_ERR_SUCCESS;
317 : }
318 :
319 54 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
320 : {
321 4 : uint32_t _ptr_credential;
322 54 : uint32_t size_credential_1 = 0;
323 54 : TALLOC_CTX *_mem_save_credential_0 = NULL;
324 54 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
325 54 : if (ndr_flags & NDR_SCALARS) {
326 27 : NDR_CHECK(ndr_pull_align(ndr, 5));
327 27 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
328 27 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_size));
329 27 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
330 27 : if (_ptr_credential) {
331 27 : NDR_PULL_ALLOC(ndr, r->credential);
332 : } else {
333 0 : r->credential = NULL;
334 : }
335 27 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
336 : }
337 54 : if (ndr_flags & NDR_BUFFERS) {
338 27 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
339 27 : if (r->credential) {
340 27 : _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
341 27 : NDR_PULL_SET_MEM_CTX(ndr, r->credential, 0);
342 27 : NDR_CHECK(ndr_pull_array_size(ndr, &r->credential));
343 27 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credential, &size_credential_1));
344 27 : NDR_PULL_ALLOC_N(ndr, r->credential, size_credential_1);
345 27 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->credential, size_credential_1));
346 27 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
347 : }
348 27 : if (r->credential) {
349 27 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->credential, r->credential_size));
350 : }
351 : }
352 50 : return NDR_ERR_SUCCESS;
353 : }
354 :
355 0 : static void ndr_print_flags_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
356 : {
357 0 : ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, name, r);
358 0 : }
359 :
360 2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
361 : {
362 2 : ndr_print_struct(ndr, name, "PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG");
363 2 : if (r == NULL) { ndr_print_null(ndr); return; }
364 2 : ndr->depth++;
365 2 : ndr_print_lsa_String(ndr, "package_name", &r->package_name);
366 2 : ndr_print_uint32(ndr, "credential_size", r->credential_size);
367 2 : ndr->depth--;
368 : }
369 :
370 46 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CREDENTIAL_DATA *r)
371 : {
372 2 : uint32_t cntr_credentials_0;
373 46 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
374 46 : if (ndr_flags & NDR_SCALARS) {
375 46 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_count));
376 46 : NDR_CHECK(ndr_push_align(ndr, 5));
377 46 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_count));
378 92 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
379 46 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
380 : }
381 46 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
382 : }
383 46 : if (ndr_flags & NDR_BUFFERS) {
384 92 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
385 46 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
386 : }
387 : }
388 44 : return NDR_ERR_SUCCESS;
389 : }
390 :
391 27 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CREDENTIAL_DATA *r)
392 : {
393 27 : uint32_t size_credentials_0 = 0;
394 2 : uint32_t cntr_credentials_0;
395 27 : TALLOC_CTX *_mem_save_credentials_0 = NULL;
396 27 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
397 27 : if (ndr_flags & NDR_SCALARS) {
398 27 : NDR_CHECK(ndr_pull_array_size(ndr, &r->credentials));
399 27 : NDR_CHECK(ndr_pull_align(ndr, 5));
400 27 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_count));
401 27 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
402 27 : NDR_PULL_ALLOC_N(ndr, r->credentials, size_credentials_0);
403 27 : _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
404 27 : NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
405 54 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
406 27 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
407 : }
408 27 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
409 27 : if (r->credentials) {
410 27 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->credentials, r->credential_count));
411 : }
412 27 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
413 : }
414 27 : if (ndr_flags & NDR_BUFFERS) {
415 27 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
416 27 : _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
417 27 : NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
418 54 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
419 27 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
420 : }
421 27 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
422 52 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
423 : }
424 : }
425 25 : return NDR_ERR_SUCCESS;
426 : }
427 :
428 0 : static void ndr_print_flags_PAC_CREDENTIAL_DATA(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_CREDENTIAL_DATA *r)
429 : {
430 0 : ndr_print_PAC_CREDENTIAL_DATA(ndr, name, r);
431 0 : }
432 :
433 2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA *r)
434 : {
435 2 : uint32_t cntr_credentials_0;
436 2 : ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA");
437 2 : if (r == NULL) { ndr_print_null(ndr); return; }
438 2 : ndr->depth++;
439 2 : ndr_print_uint32(ndr, "credential_count", r->credential_count);
440 2 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "credentials", (uint32_t)(r->credential_count));
441 2 : ndr->depth++;
442 4 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
443 2 : ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, "credentials", &r->credentials[cntr_credentials_0]);
444 : }
445 2 : ndr->depth--;
446 2 : ndr->depth--;
447 : }
448 :
449 46 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_DATA_CTR(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CREDENTIAL_DATA_CTR *r)
450 : {
451 46 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
452 46 : if (ndr_flags & NDR_SCALARS) {
453 46 : NDR_CHECK(ndr_push_align(ndr, 5));
454 46 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
455 46 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
456 : }
457 46 : if (ndr_flags & NDR_BUFFERS) {
458 46 : if (r->data) {
459 46 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
460 : }
461 : }
462 44 : return NDR_ERR_SUCCESS;
463 : }
464 :
465 27 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_DATA_CTR(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CREDENTIAL_DATA_CTR *r)
466 : {
467 2 : uint32_t _ptr_data;
468 27 : TALLOC_CTX *_mem_save_data_0 = NULL;
469 27 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
470 27 : if (ndr_flags & NDR_SCALARS) {
471 27 : NDR_CHECK(ndr_pull_align(ndr, 5));
472 27 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
473 27 : if (_ptr_data) {
474 27 : NDR_PULL_ALLOC(ndr, r->data);
475 : } else {
476 0 : r->data = NULL;
477 : }
478 27 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
479 : }
480 27 : if (ndr_flags & NDR_BUFFERS) {
481 27 : if (r->data) {
482 27 : _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
483 27 : NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
484 27 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
485 27 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
486 : }
487 : }
488 25 : return NDR_ERR_SUCCESS;
489 : }
490 :
491 0 : static void ndr_print_flags_PAC_CREDENTIAL_DATA_CTR(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_CREDENTIAL_DATA_CTR *r)
492 : {
493 0 : ndr_print_PAC_CREDENTIAL_DATA_CTR(ndr, name, r);
494 0 : }
495 :
496 2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA_CTR(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA_CTR *r)
497 : {
498 2 : ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA_CTR");
499 2 : if (r == NULL) { ndr_print_null(ndr); return; }
500 2 : ndr->depth++;
501 2 : ndr_print_ptr(ndr, "data", r->data);
502 2 : ndr->depth++;
503 2 : if (r->data) {
504 2 : ndr_print_PAC_CREDENTIAL_DATA(ndr, "data", r->data);
505 : }
506 2 : ndr->depth--;
507 2 : ndr->depth--;
508 : }
509 :
510 46 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_DATA_NDR(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CREDENTIAL_DATA_NDR *r)
511 : {
512 46 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
513 46 : if (ndr_flags & NDR_SCALARS) {
514 46 : NDR_CHECK(ndr_push_align(ndr, 1));
515 : {
516 2 : struct ndr_push *_ndr_ctr;
517 46 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
518 46 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
519 46 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
520 : }
521 46 : NDR_CHECK(ndr_push_trailer_align(ndr, 1));
522 : }
523 46 : if (ndr_flags & NDR_BUFFERS) {
524 2 : }
525 46 : return NDR_ERR_SUCCESS;
526 : }
527 :
528 27 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_DATA_NDR(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CREDENTIAL_DATA_NDR *r)
529 : {
530 27 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
531 27 : if (ndr_flags & NDR_SCALARS) {
532 27 : NDR_CHECK(ndr_pull_align(ndr, 1));
533 : {
534 2 : struct ndr_pull *_ndr_ctr;
535 27 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
536 27 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
537 27 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
538 : }
539 27 : NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
540 : }
541 27 : if (ndr_flags & NDR_BUFFERS) {
542 2 : }
543 27 : return NDR_ERR_SUCCESS;
544 : }
545 :
546 0 : static void ndr_print_flags_PAC_CREDENTIAL_DATA_NDR(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_CREDENTIAL_DATA_NDR *r)
547 : {
548 0 : ndr_print_PAC_CREDENTIAL_DATA_NDR(ndr, name, r);
549 0 : }
550 :
551 2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA_NDR(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA_NDR *r)
552 : {
553 2 : ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA_NDR");
554 2 : if (r == NULL) { ndr_print_null(ndr); return; }
555 2 : ndr->depth++;
556 2 : ndr_print_PAC_CREDENTIAL_DATA_CTR(ndr, "ctr", &r->ctr);
557 2 : ndr->depth--;
558 : }
559 :
560 56 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_INFO(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CREDENTIAL_INFO *r)
561 : {
562 56 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
563 56 : if (ndr_flags & NDR_SCALARS) {
564 56 : NDR_CHECK(ndr_push_align(ndr, 4));
565 56 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
566 56 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->encryption_type));
567 : {
568 56 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
569 56 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
570 56 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->encrypted_data));
571 56 : ndr->flags = _flags_save_DATA_BLOB;
572 : }
573 56 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
574 : }
575 56 : if (ndr_flags & NDR_BUFFERS) {
576 12 : }
577 56 : return NDR_ERR_SUCCESS;
578 : }
579 :
580 62 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_INFO(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CREDENTIAL_INFO *r)
581 : {
582 62 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
583 62 : if (ndr_flags & NDR_SCALARS) {
584 62 : NDR_CHECK(ndr_pull_align(ndr, 4));
585 62 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
586 62 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->encryption_type));
587 : {
588 62 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
589 62 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
590 62 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->encrypted_data));
591 62 : ndr->flags = _flags_save_DATA_BLOB;
592 : }
593 62 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
594 : }
595 62 : if (ndr_flags & NDR_BUFFERS) {
596 4 : }
597 62 : return NDR_ERR_SUCCESS;
598 : }
599 :
600 0 : static void ndr_print_flags_PAC_CREDENTIAL_INFO(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_CREDENTIAL_INFO *r)
601 : {
602 0 : ndr_print_PAC_CREDENTIAL_INFO(ndr, name, r);
603 0 : }
604 :
605 4 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_INFO(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_INFO *r)
606 : {
607 4 : ndr_print_struct(ndr, name, "PAC_CREDENTIAL_INFO");
608 4 : if (r == NULL) { ndr_print_null(ndr); return; }
609 4 : ndr->depth++;
610 4 : ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
611 4 : ndr_print_uint32(ndr, "encryption_type", r->encryption_type);
612 : {
613 4 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
614 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
615 4 : ndr_print_DATA_BLOB(ndr, "encrypted_data", r->encrypted_data);
616 4 : ndr->flags = _flags_save_DATA_BLOB;
617 : }
618 4 : ndr->depth--;
619 : }
620 :
621 188 : static enum ndr_err_code ndr_push_PAC_CONSTRAINED_DELEGATION(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CONSTRAINED_DELEGATION *r)
622 : {
623 0 : uint32_t cntr_transited_services_1;
624 188 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
625 188 : if (ndr_flags & NDR_SCALARS) {
626 188 : NDR_CHECK(ndr_push_align(ndr, 5));
627 188 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->proxy_target));
628 188 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_transited_services));
629 188 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->transited_services));
630 188 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
631 : }
632 188 : if (ndr_flags & NDR_BUFFERS) {
633 188 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->proxy_target));
634 188 : if (r->transited_services) {
635 188 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_transited_services));
636 457 : for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
637 269 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->transited_services[cntr_transited_services_1]));
638 : }
639 457 : for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
640 269 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->transited_services[cntr_transited_services_1]));
641 : }
642 : }
643 : }
644 188 : return NDR_ERR_SUCCESS;
645 : }
646 :
647 295 : static enum ndr_err_code ndr_pull_PAC_CONSTRAINED_DELEGATION(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CONSTRAINED_DELEGATION *r)
648 : {
649 0 : uint32_t _ptr_transited_services;
650 295 : uint32_t size_transited_services_1 = 0;
651 0 : uint32_t cntr_transited_services_1;
652 295 : TALLOC_CTX *_mem_save_transited_services_0 = NULL;
653 295 : TALLOC_CTX *_mem_save_transited_services_1 = NULL;
654 295 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
655 295 : if (ndr_flags & NDR_SCALARS) {
656 295 : NDR_CHECK(ndr_pull_align(ndr, 5));
657 295 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->proxy_target));
658 295 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_transited_services));
659 295 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transited_services));
660 295 : if (_ptr_transited_services) {
661 295 : NDR_PULL_ALLOC(ndr, r->transited_services);
662 : } else {
663 0 : r->transited_services = NULL;
664 : }
665 295 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
666 : }
667 295 : if (ndr_flags & NDR_BUFFERS) {
668 295 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->proxy_target));
669 295 : if (r->transited_services) {
670 295 : _mem_save_transited_services_0 = NDR_PULL_GET_MEM_CTX(ndr);
671 295 : NDR_PULL_SET_MEM_CTX(ndr, r->transited_services, 0);
672 295 : NDR_CHECK(ndr_pull_array_size(ndr, &r->transited_services));
673 295 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->transited_services, &size_transited_services_1));
674 295 : NDR_PULL_ALLOC_N(ndr, r->transited_services, size_transited_services_1);
675 295 : _mem_save_transited_services_1 = NDR_PULL_GET_MEM_CTX(ndr);
676 295 : NDR_PULL_SET_MEM_CTX(ndr, r->transited_services, 0);
677 614 : for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
678 319 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->transited_services[cntr_transited_services_1]));
679 : }
680 614 : for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
681 319 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->transited_services[cntr_transited_services_1]));
682 : }
683 295 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transited_services_1, 0);
684 295 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transited_services_0, 0);
685 : }
686 295 : if (r->transited_services) {
687 295 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->transited_services, r->num_transited_services));
688 : }
689 614 : for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
690 0 : }
691 : }
692 295 : return NDR_ERR_SUCCESS;
693 : }
694 :
695 0 : _PUBLIC_ void ndr_print_PAC_CONSTRAINED_DELEGATION(struct ndr_print *ndr, const char *name, const struct PAC_CONSTRAINED_DELEGATION *r)
696 : {
697 0 : uint32_t cntr_transited_services_1;
698 0 : ndr_print_struct(ndr, name, "PAC_CONSTRAINED_DELEGATION");
699 0 : if (r == NULL) { ndr_print_null(ndr); return; }
700 0 : ndr->depth++;
701 0 : ndr_print_lsa_String(ndr, "proxy_target", &r->proxy_target);
702 0 : ndr_print_uint32(ndr, "num_transited_services", r->num_transited_services);
703 0 : ndr_print_ptr(ndr, "transited_services", r->transited_services);
704 0 : ndr->depth++;
705 0 : if (r->transited_services) {
706 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "transited_services", (uint32_t)(r->num_transited_services));
707 0 : ndr->depth++;
708 0 : for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
709 0 : ndr_print_lsa_String(ndr, "transited_services", &r->transited_services[cntr_transited_services_1]);
710 : }
711 0 : ndr->depth--;
712 : }
713 0 : ndr->depth--;
714 0 : ndr->depth--;
715 : }
716 :
717 39707 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_FLAGS(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
718 : {
719 39707 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
720 38513 : return NDR_ERR_SUCCESS;
721 : }
722 :
723 101911 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_FLAGS(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
724 : {
725 2563 : uint32_t v;
726 101911 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
727 101911 : *r = v;
728 101911 : return NDR_ERR_SUCCESS;
729 : }
730 :
731 15 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
732 : {
733 15 : ndr_print_uint32(ndr, name, r);
734 15 : ndr->depth++;
735 15 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_UPN_DNS_FLAG_CONSTRUCTED", PAC_UPN_DNS_FLAG_CONSTRUCTED, r);
736 15 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID", PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID, r);
737 15 : ndr->depth--;
738 15 : }
739 :
740 79372 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_UPN_DNS_INFO_SAM_NAME_AND_SID *r)
741 : {
742 79372 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
743 79372 : if (ndr_flags & NDR_SCALARS) {
744 39686 : NDR_CHECK(ndr_push_align(ndr, 5));
745 39686 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->samaccountname)));
746 : {
747 39686 : libndr_flags _flags_save_string = ndr->flags;
748 39686 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
749 39686 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->samaccountname));
750 39686 : ndr->flags = _flags_save_string;
751 : }
752 39686 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_dom_sid(r->objectsid, ndr->flags)));
753 39686 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->objectsid));
754 39686 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
755 : }
756 79372 : if (ndr_flags & NDR_BUFFERS) {
757 : {
758 39686 : libndr_flags _flags_save_string = ndr->flags;
759 39686 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
760 39686 : if (r->samaccountname) {
761 39686 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->samaccountname));
762 : {
763 1173 : struct ndr_push *_ndr_samaccountname;
764 39686 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_samaccountname, 0, 2 * strlen_m(r->samaccountname)));
765 39686 : NDR_CHECK(ndr_push_string(_ndr_samaccountname, NDR_SCALARS, r->samaccountname));
766 39686 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_samaccountname, 0, 2 * strlen_m(r->samaccountname)));
767 : }
768 : }
769 39686 : ndr->flags = _flags_save_string;
770 : }
771 39686 : if (r->objectsid) {
772 39686 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->objectsid));
773 : {
774 1173 : struct ndr_push *_ndr_objectsid;
775 39686 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_objectsid, 0, ndr_size_dom_sid(r->objectsid, ndr->flags)));
776 39686 : NDR_CHECK(ndr_push_dom_sid(_ndr_objectsid, NDR_SCALARS, r->objectsid));
777 39686 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_objectsid, 0, ndr_size_dom_sid(r->objectsid, ndr->flags)));
778 : }
779 : }
780 : }
781 77026 : return NDR_ERR_SUCCESS;
782 : }
783 :
784 203796 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_UPN_DNS_INFO_SAM_NAME_AND_SID *r)
785 : {
786 5100 : uint16_t _ptr_samaccountname;
787 203796 : TALLOC_CTX *_mem_save_samaccountname_0 = NULL;
788 5100 : uint16_t _ptr_objectsid;
789 203796 : TALLOC_CTX *_mem_save_objectsid_0 = NULL;
790 203796 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
791 203796 : if (ndr_flags & NDR_SCALARS) {
792 101898 : NDR_CHECK(ndr_pull_align(ndr, 5));
793 101898 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->samaccountname_size));
794 : {
795 101898 : libndr_flags _flags_save_string = ndr->flags;
796 101898 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
797 101898 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_samaccountname));
798 101898 : if (_ptr_samaccountname) {
799 101898 : NDR_PULL_ALLOC(ndr, r->samaccountname);
800 101898 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->samaccountname, _ptr_samaccountname));
801 : } else {
802 0 : r->samaccountname = NULL;
803 : }
804 101898 : ndr->flags = _flags_save_string;
805 : }
806 101898 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->objectsid_size));
807 101898 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_objectsid));
808 101898 : if (_ptr_objectsid) {
809 101898 : NDR_PULL_ALLOC(ndr, r->objectsid);
810 101898 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->objectsid, _ptr_objectsid));
811 : } else {
812 0 : r->objectsid = NULL;
813 : }
814 101898 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
815 : }
816 203796 : if (ndr_flags & NDR_BUFFERS) {
817 : {
818 101898 : libndr_flags _flags_save_string = ndr->flags;
819 101898 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
820 101898 : if (r->samaccountname) {
821 2550 : uint32_t _relative_save_offset;
822 101898 : _relative_save_offset = ndr->offset;
823 101898 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->samaccountname));
824 101898 : _mem_save_samaccountname_0 = NDR_PULL_GET_MEM_CTX(ndr);
825 101898 : NDR_PULL_SET_MEM_CTX(ndr, r->samaccountname, 0);
826 : {
827 2550 : struct ndr_pull *_ndr_samaccountname;
828 101898 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_samaccountname, 0, r->samaccountname_size));
829 101898 : NDR_CHECK(ndr_pull_string(_ndr_samaccountname, NDR_SCALARS, &r->samaccountname));
830 101898 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_samaccountname, 0, r->samaccountname_size));
831 : }
832 101898 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_samaccountname_0, 0);
833 101898 : if (ndr->offset > ndr->relative_highest_offset) {
834 101898 : ndr->relative_highest_offset = ndr->offset;
835 : }
836 101898 : ndr->offset = _relative_save_offset;
837 : }
838 101898 : ndr->flags = _flags_save_string;
839 : }
840 101898 : if (r->objectsid) {
841 2550 : uint32_t _relative_save_offset;
842 101898 : _relative_save_offset = ndr->offset;
843 101898 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->objectsid));
844 101898 : _mem_save_objectsid_0 = NDR_PULL_GET_MEM_CTX(ndr);
845 101898 : NDR_PULL_SET_MEM_CTX(ndr, r->objectsid, 0);
846 : {
847 2550 : struct ndr_pull *_ndr_objectsid;
848 101898 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_objectsid, 0, r->objectsid_size));
849 101898 : NDR_CHECK(ndr_pull_dom_sid(_ndr_objectsid, NDR_SCALARS, r->objectsid));
850 101898 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_objectsid, 0, r->objectsid_size));
851 : }
852 101898 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objectsid_0, 0);
853 101898 : if (ndr->offset > ndr->relative_highest_offset) {
854 101898 : ndr->relative_highest_offset = ndr->offset;
855 : }
856 101898 : ndr->offset = _relative_save_offset;
857 : }
858 : }
859 198696 : return NDR_ERR_SUCCESS;
860 : }
861 :
862 2 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(struct ndr_print *ndr, const char *name, const struct PAC_UPN_DNS_INFO_SAM_NAME_AND_SID *r)
863 : {
864 2 : ndr_print_struct(ndr, name, "PAC_UPN_DNS_INFO_SAM_NAME_AND_SID");
865 2 : if (r == NULL) { ndr_print_null(ndr); return; }
866 2 : ndr->depth++;
867 2 : ndr_print_uint16(ndr, "samaccountname_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->samaccountname):r->samaccountname_size);
868 : {
869 2 : libndr_flags _flags_save_string = ndr->flags;
870 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
871 2 : ndr_print_ptr(ndr, "samaccountname", r->samaccountname);
872 2 : ndr->depth++;
873 2 : if (r->samaccountname) {
874 2 : ndr_print_string(ndr, "samaccountname", r->samaccountname);
875 : }
876 2 : ndr->depth--;
877 2 : ndr->flags = _flags_save_string;
878 : }
879 2 : ndr_print_uint16(ndr, "objectsid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid(r->objectsid, ndr->flags):r->objectsid_size);
880 2 : ndr_print_ptr(ndr, "objectsid", r->objectsid);
881 2 : ndr->depth++;
882 2 : if (r->objectsid) {
883 2 : ndr_print_dom_sid(ndr, "objectsid", r->objectsid);
884 : }
885 2 : ndr->depth--;
886 2 : ndr->depth--;
887 : }
888 :
889 79414 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_INFO_EX(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union PAC_UPN_DNS_INFO_EX *r)
890 : {
891 2388 : uint32_t level;
892 79414 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
893 79414 : if (ndr_flags & NDR_SCALARS) {
894 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
895 39707 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
896 39707 : NDR_CHECK(ndr_push_union_align(ndr, 5));
897 39707 : switch (level) {
898 39686 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID: {
899 39686 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_SCALARS, &r->sam_name_and_sid));
900 38513 : break; }
901 :
902 0 : default: {
903 0 : break; }
904 :
905 : }
906 : }
907 79414 : if (ndr_flags & NDR_BUFFERS) {
908 39707 : if (!(ndr_flags & NDR_SCALARS)) {
909 : /* We didn't get it above, and the token is not needed after this. */
910 39707 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
911 : }
912 39707 : switch (level) {
913 39686 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
914 39686 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_BUFFERS, &r->sam_name_and_sid));
915 38513 : break;
916 :
917 0 : default:
918 0 : break;
919 :
920 : }
921 : }
922 77026 : return NDR_ERR_SUCCESS;
923 : }
924 :
925 203822 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_INFO_EX(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union PAC_UPN_DNS_INFO_EX *r)
926 : {
927 5126 : uint32_t level;
928 203822 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
929 203822 : if (ndr_flags & NDR_SCALARS) {
930 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
931 101911 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
932 101911 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
933 101911 : switch (level) {
934 101898 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID: {
935 101898 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_SCALARS, &r->sam_name_and_sid));
936 99348 : break; }
937 :
938 0 : default: {
939 0 : break; }
940 :
941 : }
942 : }
943 203822 : if (ndr_flags & NDR_BUFFERS) {
944 101911 : if (!(ndr_flags & NDR_SCALARS)) {
945 : /* We didn't get it above, and the token is not needed after this. */
946 101911 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
947 : }
948 101911 : switch (level) {
949 101898 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
950 101898 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_BUFFERS, &r->sam_name_and_sid));
951 99348 : break;
952 :
953 0 : default:
954 0 : break;
955 :
956 : }
957 : }
958 198696 : return NDR_ERR_SUCCESS;
959 : }
960 :
961 15 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_INFO_EX(struct ndr_print *ndr, const char *name, const union PAC_UPN_DNS_INFO_EX *r)
962 : {
963 15 : uint32_t level;
964 15 : level = ndr_print_steal_switch_value(ndr, r);
965 15 : ndr_print_union(ndr, name, level, "PAC_UPN_DNS_INFO_EX");
966 15 : switch (level) {
967 2 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
968 2 : ndr_print_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, "sam_name_and_sid", &r->sam_name_and_sid);
969 2 : break;
970 :
971 0 : default:
972 0 : break;
973 :
974 : }
975 15 : }
976 :
977 79414 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_INFO(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_UPN_DNS_INFO *r)
978 : {
979 79414 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
980 79414 : if (ndr_flags & NDR_SCALARS) {
981 39707 : NDR_CHECK(ndr_push_align(ndr, 5));
982 39707 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->upn_name)));
983 : {
984 39707 : libndr_flags _flags_save_string = ndr->flags;
985 39707 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
986 39707 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->upn_name));
987 39707 : ndr->flags = _flags_save_string;
988 : }
989 39707 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->dns_domain_name)));
990 : {
991 39707 : libndr_flags _flags_save_string = ndr->flags;
992 39707 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
993 39707 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->dns_domain_name));
994 39707 : ndr->flags = _flags_save_string;
995 : }
996 40901 : NDR_CHECK(ndr_push_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, r->flags));
997 39707 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
998 39707 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_EX(ndr, NDR_SCALARS, &r->ex));
999 39707 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1000 : }
1001 79414 : if (ndr_flags & NDR_BUFFERS) {
1002 : {
1003 39707 : libndr_flags _flags_save_string = ndr->flags;
1004 39707 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1005 39707 : if (r->upn_name) {
1006 39707 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->upn_name));
1007 : {
1008 1194 : struct ndr_push *_ndr_upn_name;
1009 39707 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
1010 39707 : NDR_CHECK(ndr_push_string(_ndr_upn_name, NDR_SCALARS, r->upn_name));
1011 39707 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
1012 : }
1013 : }
1014 39707 : ndr->flags = _flags_save_string;
1015 : }
1016 : {
1017 39707 : libndr_flags _flags_save_string = ndr->flags;
1018 39707 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1019 39707 : if (r->dns_domain_name) {
1020 39707 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->dns_domain_name));
1021 : {
1022 1194 : struct ndr_push *_ndr_dns_domain_name;
1023 39707 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
1024 39707 : NDR_CHECK(ndr_push_string(_ndr_dns_domain_name, NDR_SCALARS, r->dns_domain_name));
1025 39707 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
1026 : }
1027 : }
1028 39707 : ndr->flags = _flags_save_string;
1029 : }
1030 39707 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
1031 39707 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_EX(ndr, NDR_BUFFERS, &r->ex));
1032 : }
1033 77026 : return NDR_ERR_SUCCESS;
1034 : }
1035 :
1036 203822 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_INFO(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_UPN_DNS_INFO *r)
1037 : {
1038 5126 : uint16_t _ptr_upn_name;
1039 203822 : TALLOC_CTX *_mem_save_upn_name_0 = NULL;
1040 5126 : uint16_t _ptr_dns_domain_name;
1041 203822 : TALLOC_CTX *_mem_save_dns_domain_name_0 = NULL;
1042 203822 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1043 203822 : if (ndr_flags & NDR_SCALARS) {
1044 101911 : NDR_CHECK(ndr_pull_align(ndr, 5));
1045 101911 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->upn_name_size));
1046 : {
1047 101911 : libndr_flags _flags_save_string = ndr->flags;
1048 101911 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1049 101911 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_upn_name));
1050 101911 : if (_ptr_upn_name) {
1051 101911 : NDR_PULL_ALLOC(ndr, r->upn_name);
1052 101911 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->upn_name, _ptr_upn_name));
1053 : } else {
1054 0 : r->upn_name = NULL;
1055 : }
1056 101911 : ndr->flags = _flags_save_string;
1057 : }
1058 101911 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dns_domain_name_size));
1059 : {
1060 101911 : libndr_flags _flags_save_string = ndr->flags;
1061 101911 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1062 101911 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_dns_domain_name));
1063 101911 : if (_ptr_dns_domain_name) {
1064 101911 : NDR_PULL_ALLOC(ndr, r->dns_domain_name);
1065 101911 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dns_domain_name, _ptr_dns_domain_name));
1066 : } else {
1067 0 : r->dns_domain_name = NULL;
1068 : }
1069 101911 : ndr->flags = _flags_save_string;
1070 : }
1071 104474 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, &r->flags));
1072 101911 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
1073 101911 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_EX(ndr, NDR_SCALARS, &r->ex));
1074 101911 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1075 : }
1076 203822 : if (ndr_flags & NDR_BUFFERS) {
1077 : {
1078 101911 : libndr_flags _flags_save_string = ndr->flags;
1079 101911 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1080 101911 : if (r->upn_name) {
1081 2563 : uint32_t _relative_save_offset;
1082 101911 : _relative_save_offset = ndr->offset;
1083 101911 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->upn_name));
1084 101911 : _mem_save_upn_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1085 101911 : NDR_PULL_SET_MEM_CTX(ndr, r->upn_name, 0);
1086 : {
1087 2563 : struct ndr_pull *_ndr_upn_name;
1088 101911 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_upn_name, 0, r->upn_name_size));
1089 101911 : NDR_CHECK(ndr_pull_string(_ndr_upn_name, NDR_SCALARS, &r->upn_name));
1090 101911 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_upn_name, 0, r->upn_name_size));
1091 : }
1092 101911 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_upn_name_0, 0);
1093 101911 : if (ndr->offset > ndr->relative_highest_offset) {
1094 101911 : ndr->relative_highest_offset = ndr->offset;
1095 : }
1096 101911 : ndr->offset = _relative_save_offset;
1097 : }
1098 101911 : ndr->flags = _flags_save_string;
1099 : }
1100 : {
1101 101911 : libndr_flags _flags_save_string = ndr->flags;
1102 101911 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1103 101911 : if (r->dns_domain_name) {
1104 2563 : uint32_t _relative_save_offset;
1105 101911 : _relative_save_offset = ndr->offset;
1106 101911 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dns_domain_name));
1107 101911 : _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1108 101911 : NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
1109 : {
1110 2563 : struct ndr_pull *_ndr_dns_domain_name;
1111 101911 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_dns_domain_name, 0, r->dns_domain_name_size));
1112 101911 : NDR_CHECK(ndr_pull_string(_ndr_dns_domain_name, NDR_SCALARS, &r->dns_domain_name));
1113 101911 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_dns_domain_name, 0, r->dns_domain_name_size));
1114 : }
1115 101911 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
1116 101911 : if (ndr->offset > ndr->relative_highest_offset) {
1117 101911 : ndr->relative_highest_offset = ndr->offset;
1118 : }
1119 101911 : ndr->offset = _relative_save_offset;
1120 : }
1121 101911 : ndr->flags = _flags_save_string;
1122 : }
1123 101911 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
1124 101911 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_EX(ndr, NDR_BUFFERS, &r->ex));
1125 : }
1126 198696 : return NDR_ERR_SUCCESS;
1127 : }
1128 :
1129 15 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_INFO(struct ndr_print *ndr, const char *name, const struct PAC_UPN_DNS_INFO *r)
1130 : {
1131 15 : ndr_print_struct(ndr, name, "PAC_UPN_DNS_INFO");
1132 15 : if (r == NULL) { ndr_print_null(ndr); return; }
1133 15 : ndr->depth++;
1134 15 : ndr_print_uint16(ndr, "upn_name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->upn_name):r->upn_name_size);
1135 : {
1136 15 : libndr_flags _flags_save_string = ndr->flags;
1137 15 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1138 15 : ndr_print_ptr(ndr, "upn_name", r->upn_name);
1139 15 : ndr->depth++;
1140 15 : if (r->upn_name) {
1141 15 : ndr_print_string(ndr, "upn_name", r->upn_name);
1142 : }
1143 15 : ndr->depth--;
1144 15 : ndr->flags = _flags_save_string;
1145 : }
1146 15 : ndr_print_uint16(ndr, "dns_domain_name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->dns_domain_name):r->dns_domain_name_size);
1147 : {
1148 15 : libndr_flags _flags_save_string = ndr->flags;
1149 15 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1150 15 : ndr_print_ptr(ndr, "dns_domain_name", r->dns_domain_name);
1151 15 : ndr->depth++;
1152 15 : if (r->dns_domain_name) {
1153 15 : ndr_print_string(ndr, "dns_domain_name", r->dns_domain_name);
1154 : }
1155 15 : ndr->depth--;
1156 15 : ndr->flags = _flags_save_string;
1157 : }
1158 15 : ndr_print_PAC_UPN_DNS_FLAGS(ndr, "flags", r->flags);
1159 15 : ndr_print_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID);
1160 15 : ndr_print_PAC_UPN_DNS_INFO_EX(ndr, "ex", &r->ex);
1161 15 : ndr->depth--;
1162 : }
1163 :
1164 34514 : static enum ndr_err_code ndr_push_PAC_ATTRIBUTE_INFO_FLAGS(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
1165 : {
1166 34514 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1167 33344 : return NDR_ERR_SUCCESS;
1168 : }
1169 :
1170 24701 : static enum ndr_err_code ndr_pull_PAC_ATTRIBUTE_INFO_FLAGS(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
1171 : {
1172 632 : uint32_t v;
1173 24701 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1174 24701 : *r = v;
1175 24701 : return NDR_ERR_SUCCESS;
1176 : }
1177 :
1178 0 : _PUBLIC_ void ndr_print_PAC_ATTRIBUTE_INFO_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
1179 : {
1180 0 : ndr_print_uint32(ndr, name, r);
1181 0 : ndr->depth++;
1182 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_ATTRIBUTE_FLAG_PAC_WAS_REQUESTED", PAC_ATTRIBUTE_FLAG_PAC_WAS_REQUESTED, r);
1183 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_ATTRIBUTE_FLAG_PAC_WAS_GIVEN_IMPLICITLY", PAC_ATTRIBUTE_FLAG_PAC_WAS_GIVEN_IMPLICITLY, r);
1184 0 : ndr->depth--;
1185 0 : }
1186 :
1187 34514 : static enum ndr_err_code ndr_push_PAC_ATTRIBUTES_INFO(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_ATTRIBUTES_INFO *r)
1188 : {
1189 34514 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1190 34514 : if (ndr_flags & NDR_SCALARS) {
1191 34514 : NDR_CHECK(ndr_push_align(ndr, 4));
1192 34514 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags_length));
1193 35684 : NDR_CHECK(ndr_push_PAC_ATTRIBUTE_INFO_FLAGS(ndr, NDR_SCALARS, r->flags));
1194 34514 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1195 : }
1196 34514 : if (ndr_flags & NDR_BUFFERS) {
1197 1170 : }
1198 34514 : return NDR_ERR_SUCCESS;
1199 : }
1200 :
1201 24701 : static enum ndr_err_code ndr_pull_PAC_ATTRIBUTES_INFO(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_ATTRIBUTES_INFO *r)
1202 : {
1203 24701 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1204 24701 : if (ndr_flags & NDR_SCALARS) {
1205 24701 : NDR_CHECK(ndr_pull_align(ndr, 4));
1206 24701 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags_length));
1207 25333 : NDR_CHECK(ndr_pull_PAC_ATTRIBUTE_INFO_FLAGS(ndr, NDR_SCALARS, &r->flags));
1208 24701 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1209 : }
1210 24701 : if (ndr_flags & NDR_BUFFERS) {
1211 632 : }
1212 24701 : return NDR_ERR_SUCCESS;
1213 : }
1214 :
1215 0 : _PUBLIC_ void ndr_print_PAC_ATTRIBUTES_INFO(struct ndr_print *ndr, const char *name, const struct PAC_ATTRIBUTES_INFO *r)
1216 : {
1217 0 : ndr_print_struct(ndr, name, "PAC_ATTRIBUTES_INFO");
1218 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1219 0 : ndr->depth++;
1220 0 : ndr_print_uint32(ndr, "flags_length", r->flags_length);
1221 0 : ndr_print_PAC_ATTRIBUTE_INFO_FLAGS(ndr, "flags", r->flags);
1222 0 : ndr->depth--;
1223 : }
1224 :
1225 34508 : static enum ndr_err_code ndr_push_PAC_REQUESTER_SID(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_REQUESTER_SID *r)
1226 : {
1227 34508 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1228 34508 : if (ndr_flags & NDR_SCALARS) {
1229 34508 : NDR_CHECK(ndr_push_align(ndr, 4));
1230 34508 : NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
1231 34508 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1232 : }
1233 34508 : if (ndr_flags & NDR_BUFFERS) {
1234 1170 : }
1235 34508 : return NDR_ERR_SUCCESS;
1236 : }
1237 :
1238 53438 : static enum ndr_err_code ndr_pull_PAC_REQUESTER_SID(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_REQUESTER_SID *r)
1239 : {
1240 53438 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1241 53438 : if (ndr_flags & NDR_SCALARS) {
1242 53438 : NDR_CHECK(ndr_pull_align(ndr, 4));
1243 53438 : NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
1244 53438 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1245 : }
1246 53438 : if (ndr_flags & NDR_BUFFERS) {
1247 1667 : }
1248 53438 : return NDR_ERR_SUCCESS;
1249 : }
1250 :
1251 0 : _PUBLIC_ void ndr_print_PAC_REQUESTER_SID(struct ndr_print *ndr, const char *name, const struct PAC_REQUESTER_SID *r)
1252 : {
1253 0 : ndr_print_struct(ndr, name, "PAC_REQUESTER_SID");
1254 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1255 0 : ndr->depth++;
1256 0 : ndr_print_dom_sid(ndr, "sid", &r->sid);
1257 0 : ndr->depth--;
1258 : }
1259 :
1260 86640 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_LOGON_INFO_CTR(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_LOGON_INFO_CTR *r)
1261 : {
1262 86640 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1263 86640 : if (ndr_flags & NDR_SCALARS) {
1264 86640 : NDR_CHECK(ndr_push_align(ndr, 5));
1265 86640 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
1266 86640 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1267 : }
1268 86640 : if (ndr_flags & NDR_BUFFERS) {
1269 86640 : if (r->info) {
1270 86640 : NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1271 : }
1272 : }
1273 83770 : return NDR_ERR_SUCCESS;
1274 : }
1275 :
1276 102473 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_LOGON_INFO_CTR(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_LOGON_INFO_CTR *r)
1277 : {
1278 2572 : uint32_t _ptr_info;
1279 102473 : TALLOC_CTX *_mem_save_info_0 = NULL;
1280 102473 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1281 102473 : if (ndr_flags & NDR_SCALARS) {
1282 102473 : NDR_CHECK(ndr_pull_align(ndr, 5));
1283 102473 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
1284 102473 : if (_ptr_info) {
1285 102473 : NDR_PULL_ALLOC(ndr, r->info);
1286 : } else {
1287 0 : r->info = NULL;
1288 : }
1289 102473 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1290 : }
1291 102473 : if (ndr_flags & NDR_BUFFERS) {
1292 102473 : if (r->info) {
1293 102473 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1294 102473 : NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
1295 102473 : NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1296 102473 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
1297 : }
1298 : }
1299 99901 : return NDR_ERR_SUCCESS;
1300 : }
1301 :
1302 0 : static void ndr_print_flags_PAC_LOGON_INFO_CTR(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_LOGON_INFO_CTR *r)
1303 : {
1304 0 : ndr_print_PAC_LOGON_INFO_CTR(ndr, name, r);
1305 0 : }
1306 :
1307 15 : _PUBLIC_ void ndr_print_PAC_LOGON_INFO_CTR(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO_CTR *r)
1308 : {
1309 15 : ndr_print_struct(ndr, name, "PAC_LOGON_INFO_CTR");
1310 15 : if (r == NULL) { ndr_print_null(ndr); return; }
1311 15 : ndr->depth++;
1312 15 : ndr_print_ptr(ndr, "info", r->info);
1313 15 : ndr->depth++;
1314 15 : if (r->info) {
1315 15 : ndr_print_PAC_LOGON_INFO(ndr, "info", r->info);
1316 : }
1317 15 : ndr->depth--;
1318 15 : ndr->depth--;
1319 : }
1320 :
1321 188 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_CONSTRAINED_DELEGATION_CTR *r)
1322 : {
1323 188 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1324 188 : if (ndr_flags & NDR_SCALARS) {
1325 188 : NDR_CHECK(ndr_push_align(ndr, 5));
1326 188 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
1327 188 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1328 : }
1329 188 : if (ndr_flags & NDR_BUFFERS) {
1330 188 : if (r->info) {
1331 188 : NDR_CHECK(ndr_push_PAC_CONSTRAINED_DELEGATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1332 : }
1333 : }
1334 188 : return NDR_ERR_SUCCESS;
1335 : }
1336 :
1337 295 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_CONSTRAINED_DELEGATION_CTR *r)
1338 : {
1339 0 : uint32_t _ptr_info;
1340 295 : TALLOC_CTX *_mem_save_info_0 = NULL;
1341 295 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1342 295 : if (ndr_flags & NDR_SCALARS) {
1343 295 : NDR_CHECK(ndr_pull_align(ndr, 5));
1344 295 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
1345 295 : if (_ptr_info) {
1346 295 : NDR_PULL_ALLOC(ndr, r->info);
1347 : } else {
1348 0 : r->info = NULL;
1349 : }
1350 295 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1351 : }
1352 295 : if (ndr_flags & NDR_BUFFERS) {
1353 295 : if (r->info) {
1354 295 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1355 295 : NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
1356 295 : NDR_CHECK(ndr_pull_PAC_CONSTRAINED_DELEGATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1357 295 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
1358 : }
1359 : }
1360 295 : return NDR_ERR_SUCCESS;
1361 : }
1362 :
1363 0 : static void ndr_print_flags_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_CONSTRAINED_DELEGATION_CTR *r)
1364 : {
1365 0 : ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(ndr, name, r);
1366 0 : }
1367 :
1368 0 : _PUBLIC_ void ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_print *ndr, const char *name, const struct PAC_CONSTRAINED_DELEGATION_CTR *r)
1369 : {
1370 0 : ndr_print_struct(ndr, name, "PAC_CONSTRAINED_DELEGATION_CTR");
1371 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1372 0 : ndr->depth++;
1373 0 : ndr_print_ptr(ndr, "info", r->info);
1374 0 : ndr->depth++;
1375 0 : if (r->info) {
1376 0 : ndr_print_PAC_CONSTRAINED_DELEGATION(ndr, "info", r->info);
1377 : }
1378 0 : ndr->depth--;
1379 0 : ndr->depth--;
1380 : }
1381 :
1382 360 : static enum ndr_err_code ndr_push_PAC_DEVICE_INFO(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_DEVICE_INFO *r)
1383 : {
1384 0 : uint32_t cntr_sids_1;
1385 0 : uint32_t cntr_domain_groups_1;
1386 360 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1387 360 : if (ndr_flags & NDR_SCALARS) {
1388 360 : NDR_CHECK(ndr_push_align(ndr, 5));
1389 360 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1390 360 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1391 360 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1392 360 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1393 360 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sid_count));
1394 360 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1395 360 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->domain_group_count));
1396 360 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_groups));
1397 360 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1398 : }
1399 360 : if (ndr_flags & NDR_BUFFERS) {
1400 360 : if (r->domain_sid) {
1401 360 : NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1402 : }
1403 360 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1404 360 : if (r->sids) {
1405 358 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sid_count));
1406 1037 : for (cntr_sids_1 = 0; cntr_sids_1 < (r->sid_count); cntr_sids_1++) {
1407 679 : NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1408 : }
1409 1037 : for (cntr_sids_1 = 0; cntr_sids_1 < (r->sid_count); cntr_sids_1++) {
1410 679 : NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1411 : }
1412 : }
1413 360 : if (r->domain_groups) {
1414 59 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->domain_group_count));
1415 138 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (r->domain_group_count); cntr_domain_groups_1++) {
1416 79 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->domain_groups[cntr_domain_groups_1]));
1417 : }
1418 138 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (r->domain_group_count); cntr_domain_groups_1++) {
1419 79 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->domain_groups[cntr_domain_groups_1]));
1420 : }
1421 : }
1422 : }
1423 360 : return NDR_ERR_SUCCESS;
1424 : }
1425 :
1426 138 : static enum ndr_err_code ndr_pull_PAC_DEVICE_INFO(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_DEVICE_INFO *r)
1427 : {
1428 0 : uint32_t _ptr_domain_sid;
1429 138 : TALLOC_CTX *_mem_save_domain_sid_0 = NULL;
1430 0 : uint32_t _ptr_sids;
1431 138 : uint32_t size_sids_1 = 0;
1432 0 : uint32_t cntr_sids_1;
1433 138 : TALLOC_CTX *_mem_save_sids_0 = NULL;
1434 138 : TALLOC_CTX *_mem_save_sids_1 = NULL;
1435 0 : uint32_t _ptr_domain_groups;
1436 138 : uint32_t size_domain_groups_1 = 0;
1437 0 : uint32_t cntr_domain_groups_1;
1438 138 : TALLOC_CTX *_mem_save_domain_groups_0 = NULL;
1439 138 : TALLOC_CTX *_mem_save_domain_groups_1 = NULL;
1440 138 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1441 138 : if (ndr_flags & NDR_SCALARS) {
1442 138 : NDR_CHECK(ndr_pull_align(ndr, 5));
1443 138 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1444 138 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1445 138 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1446 138 : if (_ptr_domain_sid) {
1447 138 : NDR_PULL_ALLOC(ndr, r->domain_sid);
1448 : } else {
1449 0 : r->domain_sid = NULL;
1450 : }
1451 138 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1452 138 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_count));
1453 138 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1454 138 : if (_ptr_sids) {
1455 134 : NDR_PULL_ALLOC(ndr, r->sids);
1456 : } else {
1457 4 : r->sids = NULL;
1458 : }
1459 138 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->domain_group_count));
1460 138 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_groups));
1461 138 : if (_ptr_domain_groups) {
1462 102 : NDR_PULL_ALLOC(ndr, r->domain_groups);
1463 : } else {
1464 36 : r->domain_groups = NULL;
1465 : }
1466 138 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1467 : }
1468 138 : if (ndr_flags & NDR_BUFFERS) {
1469 138 : if (r->domain_sid) {
1470 138 : _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1471 138 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1472 138 : NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1473 138 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1474 : }
1475 138 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1476 138 : if (r->sids) {
1477 134 : _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1478 134 : NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1479 134 : NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1480 134 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->sids, &size_sids_1));
1481 134 : NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1);
1482 134 : _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1483 134 : NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1484 334 : for (cntr_sids_1 = 0; cntr_sids_1 < (size_sids_1); cntr_sids_1++) {
1485 200 : NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1486 : }
1487 334 : for (cntr_sids_1 = 0; cntr_sids_1 < (size_sids_1); cntr_sids_1++) {
1488 200 : NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1489 : }
1490 134 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1491 134 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1492 : }
1493 138 : if (r->domain_groups) {
1494 102 : _mem_save_domain_groups_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495 102 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_groups, 0);
1496 102 : NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_groups));
1497 102 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->domain_groups, &size_domain_groups_1));
1498 102 : NDR_PULL_ALLOC_N(ndr, r->domain_groups, size_domain_groups_1);
1499 102 : _mem_save_domain_groups_1 = NDR_PULL_GET_MEM_CTX(ndr);
1500 102 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_groups, 0);
1501 242 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (size_domain_groups_1); cntr_domain_groups_1++) {
1502 140 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->domain_groups[cntr_domain_groups_1]));
1503 : }
1504 242 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (size_domain_groups_1); cntr_domain_groups_1++) {
1505 140 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->domain_groups[cntr_domain_groups_1]));
1506 : }
1507 102 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_groups_1, 0);
1508 102 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_groups_0, 0);
1509 : }
1510 138 : if (r->sids) {
1511 134 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sid_count));
1512 : }
1513 338 : for (cntr_sids_1 = 0; cntr_sids_1 < (size_sids_1); cntr_sids_1++) {
1514 0 : }
1515 138 : if (r->domain_groups) {
1516 102 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->domain_groups, r->domain_group_count));
1517 : }
1518 278 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (size_domain_groups_1); cntr_domain_groups_1++) {
1519 0 : }
1520 : }
1521 138 : return NDR_ERR_SUCCESS;
1522 : }
1523 :
1524 0 : _PUBLIC_ void ndr_print_PAC_DEVICE_INFO(struct ndr_print *ndr, const char *name, const struct PAC_DEVICE_INFO *r)
1525 : {
1526 0 : uint32_t cntr_sids_1;
1527 0 : uint32_t cntr_domain_groups_1;
1528 0 : ndr_print_struct(ndr, name, "PAC_DEVICE_INFO");
1529 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1530 0 : ndr->depth++;
1531 0 : ndr_print_uint32(ndr, "rid", r->rid);
1532 0 : ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1533 0 : ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1534 0 : ndr->depth++;
1535 0 : if (r->domain_sid) {
1536 0 : ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1537 : }
1538 0 : ndr->depth--;
1539 0 : ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1540 0 : ndr_print_uint32(ndr, "sid_count", r->sid_count);
1541 0 : ndr_print_ptr(ndr, "sids", r->sids);
1542 0 : ndr->depth++;
1543 0 : if (r->sids) {
1544 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "sids", (uint32_t)(r->sid_count));
1545 0 : ndr->depth++;
1546 0 : for (cntr_sids_1 = 0; cntr_sids_1 < (r->sid_count); cntr_sids_1++) {
1547 0 : ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1548 : }
1549 0 : ndr->depth--;
1550 : }
1551 0 : ndr->depth--;
1552 0 : ndr_print_uint32(ndr, "domain_group_count", r->domain_group_count);
1553 0 : ndr_print_ptr(ndr, "domain_groups", r->domain_groups);
1554 0 : ndr->depth++;
1555 0 : if (r->domain_groups) {
1556 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "domain_groups", (uint32_t)(r->domain_group_count));
1557 0 : ndr->depth++;
1558 0 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (r->domain_group_count); cntr_domain_groups_1++) {
1559 0 : ndr_print_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, "domain_groups", &r->domain_groups[cntr_domain_groups_1]);
1560 : }
1561 0 : ndr->depth--;
1562 : }
1563 0 : ndr->depth--;
1564 0 : ndr->depth--;
1565 : }
1566 :
1567 360 : static enum ndr_err_code ndr_push_PAC_DEVICE_INFO_CTR(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_DEVICE_INFO_CTR *r)
1568 : {
1569 360 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1570 360 : if (ndr_flags & NDR_SCALARS) {
1571 360 : NDR_CHECK(ndr_push_align(ndr, 5));
1572 360 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
1573 360 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1574 : }
1575 360 : if (ndr_flags & NDR_BUFFERS) {
1576 360 : if (r->info) {
1577 360 : NDR_CHECK(ndr_push_PAC_DEVICE_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1578 : }
1579 : }
1580 360 : return NDR_ERR_SUCCESS;
1581 : }
1582 :
1583 138 : static enum ndr_err_code ndr_pull_PAC_DEVICE_INFO_CTR(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_DEVICE_INFO_CTR *r)
1584 : {
1585 0 : uint32_t _ptr_info;
1586 138 : TALLOC_CTX *_mem_save_info_0 = NULL;
1587 138 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1588 138 : if (ndr_flags & NDR_SCALARS) {
1589 138 : NDR_CHECK(ndr_pull_align(ndr, 5));
1590 138 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
1591 138 : if (_ptr_info) {
1592 138 : NDR_PULL_ALLOC(ndr, r->info);
1593 : } else {
1594 0 : r->info = NULL;
1595 : }
1596 138 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1597 : }
1598 138 : if (ndr_flags & NDR_BUFFERS) {
1599 138 : if (r->info) {
1600 138 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1601 138 : NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
1602 138 : NDR_CHECK(ndr_pull_PAC_DEVICE_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1603 138 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
1604 : }
1605 : }
1606 138 : return NDR_ERR_SUCCESS;
1607 : }
1608 :
1609 0 : _PUBLIC_ void ndr_print_PAC_DEVICE_INFO_CTR(struct ndr_print *ndr, const char *name, const struct PAC_DEVICE_INFO_CTR *r)
1610 : {
1611 0 : ndr_print_struct(ndr, name, "PAC_DEVICE_INFO_CTR");
1612 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1613 0 : ndr->depth++;
1614 0 : ndr_print_ptr(ndr, "info", r->info);
1615 0 : ndr->depth++;
1616 0 : if (r->info) {
1617 0 : ndr_print_PAC_DEVICE_INFO(ndr, "info", r->info);
1618 : }
1619 0 : ndr->depth--;
1620 0 : ndr->depth--;
1621 : }
1622 :
1623 147409 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_TYPE(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum PAC_TYPE r)
1624 : {
1625 147409 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1626 147256 : return NDR_ERR_SUCCESS;
1627 : }
1628 :
1629 252442 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_TYPE(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum PAC_TYPE *r)
1630 : {
1631 275 : uint32_t v;
1632 252442 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1633 252442 : *r = v;
1634 252442 : return NDR_ERR_SUCCESS;
1635 : }
1636 :
1637 139 : _PUBLIC_ void ndr_print_PAC_TYPE(struct ndr_print *ndr, const char *name, enum PAC_TYPE r)
1638 : {
1639 139 : const char *val = NULL;
1640 :
1641 139 : switch (r) {
1642 25 : case PAC_TYPE_LOGON_INFO: val = "PAC_TYPE_LOGON_INFO"; break;
1643 8 : case PAC_TYPE_CREDENTIAL_INFO: val = "PAC_TYPE_CREDENTIAL_INFO"; break;
1644 25 : case PAC_TYPE_SRV_CHECKSUM: val = "PAC_TYPE_SRV_CHECKSUM"; break;
1645 25 : case PAC_TYPE_KDC_CHECKSUM: val = "PAC_TYPE_KDC_CHECKSUM"; break;
1646 25 : case PAC_TYPE_LOGON_NAME: val = "PAC_TYPE_LOGON_NAME"; break;
1647 0 : case PAC_TYPE_CONSTRAINED_DELEGATION: val = "PAC_TYPE_CONSTRAINED_DELEGATION"; break;
1648 25 : case PAC_TYPE_UPN_DNS_INFO: val = "PAC_TYPE_UPN_DNS_INFO"; break;
1649 0 : case PAC_TYPE_CLIENT_CLAIMS_INFO: val = "PAC_TYPE_CLIENT_CLAIMS_INFO"; break;
1650 0 : case PAC_TYPE_DEVICE_INFO: val = "PAC_TYPE_DEVICE_INFO"; break;
1651 0 : case PAC_TYPE_DEVICE_CLAIMS_INFO: val = "PAC_TYPE_DEVICE_CLAIMS_INFO"; break;
1652 4 : case PAC_TYPE_TICKET_CHECKSUM: val = "PAC_TYPE_TICKET_CHECKSUM"; break;
1653 0 : case PAC_TYPE_ATTRIBUTES_INFO: val = "PAC_TYPE_ATTRIBUTES_INFO"; break;
1654 0 : case PAC_TYPE_REQUESTER_SID: val = "PAC_TYPE_REQUESTER_SID"; break;
1655 0 : case PAC_TYPE_FULL_CHECKSUM: val = "PAC_TYPE_FULL_CHECKSUM"; break;
1656 : }
1657 139 : ndr_print_enum(ndr, name, "ENUM", val, r);
1658 139 : }
1659 :
1660 131139 : static enum ndr_err_code ndr_push_DATA_BLOB_REM(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct DATA_BLOB_REM *r)
1661 : {
1662 131139 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1663 131139 : if (ndr_flags & NDR_SCALARS) {
1664 131139 : NDR_CHECK(ndr_push_align(ndr, 4));
1665 : {
1666 131139 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1667 131139 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1668 131139 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
1669 131139 : ndr->flags = _flags_save_DATA_BLOB;
1670 : }
1671 131139 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1672 : }
1673 131139 : if (ndr_flags & NDR_BUFFERS) {
1674 82 : }
1675 131139 : return NDR_ERR_SUCCESS;
1676 : }
1677 :
1678 109520 : static enum ndr_err_code ndr_pull_DATA_BLOB_REM(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct DATA_BLOB_REM *r)
1679 : {
1680 109520 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1681 109520 : if (ndr_flags & NDR_SCALARS) {
1682 109520 : NDR_CHECK(ndr_pull_align(ndr, 4));
1683 : {
1684 109520 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1685 109520 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1686 109520 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
1687 109520 : ndr->flags = _flags_save_DATA_BLOB;
1688 : }
1689 109520 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1690 : }
1691 109520 : if (ndr_flags & NDR_BUFFERS) {
1692 99 : }
1693 109520 : return NDR_ERR_SUCCESS;
1694 : }
1695 :
1696 54 : _PUBLIC_ void ndr_print_DATA_BLOB_REM(struct ndr_print *ndr, const char *name, const struct DATA_BLOB_REM *r)
1697 : {
1698 54 : ndr_print_struct(ndr, name, "DATA_BLOB_REM");
1699 54 : if (r == NULL) { ndr_print_null(ndr); return; }
1700 54 : ndr->depth++;
1701 : {
1702 54 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1703 54 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1704 54 : ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
1705 54 : ndr->flags = _flags_save_DATA_BLOB;
1706 : }
1707 54 : ndr->depth--;
1708 : }
1709 :
1710 238988 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union PAC_INFO *r)
1711 : {
1712 6548 : uint32_t level;
1713 238988 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1714 238988 : if (ndr_flags & NDR_SCALARS) {
1715 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
1716 238988 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
1717 238988 : NDR_CHECK(ndr_push_union_align(ndr, 5));
1718 238988 : switch (level) {
1719 86640 : case PAC_TYPE_LOGON_INFO: {
1720 : {
1721 2870 : struct ndr_push *_ndr_logon_info;
1722 86640 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
1723 86640 : NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
1724 86640 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
1725 : }
1726 86640 : break; }
1727 :
1728 12 : case PAC_TYPE_CREDENTIAL_INFO: {
1729 12 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_INFO(ndr, NDR_SCALARS, &r->credential_info));
1730 0 : break; }
1731 :
1732 9816 : case PAC_TYPE_SRV_CHECKSUM: {
1733 9816 : NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
1734 9774 : break; }
1735 :
1736 9795 : case PAC_TYPE_KDC_CHECKSUM: {
1737 9795 : NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
1738 9753 : break; }
1739 :
1740 9846 : case PAC_TYPE_LOGON_NAME: {
1741 9846 : NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
1742 9804 : break; }
1743 :
1744 188 : case PAC_TYPE_CONSTRAINED_DELEGATION: {
1745 : {
1746 0 : struct ndr_push *_ndr_constrained_delegation;
1747 188 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_constrained_delegation, 0xFFFFFC01, -1));
1748 188 : NDR_CHECK(ndr_push_PAC_CONSTRAINED_DELEGATION_CTR(_ndr_constrained_delegation, NDR_SCALARS|NDR_BUFFERS, &r->constrained_delegation));
1749 188 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_constrained_delegation, 0xFFFFFC01, -1));
1750 : }
1751 188 : break; }
1752 :
1753 39707 : case PAC_TYPE_UPN_DNS_INFO: {
1754 39707 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
1755 38513 : break; }
1756 :
1757 1740 : case PAC_TYPE_TICKET_CHECKSUM: {
1758 1740 : NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->ticket_checksum));
1759 1734 : break; }
1760 :
1761 34514 : case PAC_TYPE_ATTRIBUTES_INFO: {
1762 34514 : NDR_CHECK(ndr_push_PAC_ATTRIBUTES_INFO(ndr, NDR_SCALARS, &r->attributes_info));
1763 33344 : break; }
1764 :
1765 34508 : case PAC_TYPE_REQUESTER_SID: {
1766 34508 : NDR_CHECK(ndr_push_PAC_REQUESTER_SID(ndr, NDR_SCALARS, &r->requester_sid));
1767 33338 : break; }
1768 :
1769 9702 : case PAC_TYPE_CLIENT_CLAIMS_INFO: {
1770 : {
1771 0 : struct ndr_push *_ndr_client_claims_info;
1772 9702 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_client_claims_info, 0, -1));
1773 9702 : NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_client_claims_info, NDR_SCALARS, &r->client_claims_info));
1774 9702 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_client_claims_info, 0, -1));
1775 : }
1776 9702 : break; }
1777 :
1778 360 : case PAC_TYPE_DEVICE_INFO: {
1779 : {
1780 0 : struct ndr_push *_ndr_device_info;
1781 360 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_device_info, 0xFFFFFC01, -1));
1782 360 : NDR_CHECK(ndr_push_PAC_DEVICE_INFO_CTR(_ndr_device_info, NDR_SCALARS|NDR_BUFFERS, &r->device_info));
1783 360 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_device_info, 0xFFFFFC01, -1));
1784 : }
1785 360 : break; }
1786 :
1787 288 : case PAC_TYPE_DEVICE_CLAIMS_INFO: {
1788 : {
1789 0 : struct ndr_push *_ndr_device_claims_info;
1790 288 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_device_claims_info, 0, -1));
1791 288 : NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_device_claims_info, NDR_SCALARS, &r->device_claims_info));
1792 288 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_device_claims_info, 0, -1));
1793 : }
1794 288 : break; }
1795 :
1796 1800 : case PAC_TYPE_FULL_CHECKSUM: {
1797 1800 : NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->full_checksum));
1798 1800 : break; }
1799 :
1800 72 : default: {
1801 : {
1802 0 : struct ndr_push *_ndr_unknown;
1803 72 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_unknown, 0, -1));
1804 72 : NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
1805 72 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_unknown, 0, -1));
1806 : }
1807 72 : break; }
1808 :
1809 : }
1810 : }
1811 238988 : if (ndr_flags & NDR_BUFFERS) {
1812 238988 : if (!(ndr_flags & NDR_SCALARS)) {
1813 : /* We didn't get it above, and the token is not needed after this. */
1814 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
1815 : }
1816 238988 : switch (level) {
1817 83770 : case PAC_TYPE_LOGON_INFO:
1818 83770 : break;
1819 :
1820 0 : case PAC_TYPE_CREDENTIAL_INFO:
1821 0 : break;
1822 :
1823 9774 : case PAC_TYPE_SRV_CHECKSUM:
1824 9774 : break;
1825 :
1826 9753 : case PAC_TYPE_KDC_CHECKSUM:
1827 9753 : break;
1828 :
1829 9804 : case PAC_TYPE_LOGON_NAME:
1830 9804 : break;
1831 :
1832 188 : case PAC_TYPE_CONSTRAINED_DELEGATION:
1833 188 : break;
1834 :
1835 39707 : case PAC_TYPE_UPN_DNS_INFO:
1836 39707 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
1837 38513 : break;
1838 :
1839 1734 : case PAC_TYPE_TICKET_CHECKSUM:
1840 1734 : break;
1841 :
1842 33344 : case PAC_TYPE_ATTRIBUTES_INFO:
1843 33344 : break;
1844 :
1845 33338 : case PAC_TYPE_REQUESTER_SID:
1846 33338 : break;
1847 :
1848 9702 : case PAC_TYPE_CLIENT_CLAIMS_INFO:
1849 9702 : break;
1850 :
1851 360 : case PAC_TYPE_DEVICE_INFO:
1852 360 : break;
1853 :
1854 288 : case PAC_TYPE_DEVICE_CLAIMS_INFO:
1855 288 : break;
1856 :
1857 1800 : case PAC_TYPE_FULL_CHECKSUM:
1858 1800 : break;
1859 :
1860 72 : default:
1861 72 : break;
1862 :
1863 : }
1864 : }
1865 232440 : return NDR_ERR_SUCCESS;
1866 : }
1867 :
1868 393995 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union PAC_INFO *r)
1869 : {
1870 7544 : uint32_t level;
1871 393995 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1872 393995 : if (ndr_flags & NDR_SCALARS) {
1873 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
1874 393995 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
1875 393995 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
1876 393995 : switch (level) {
1877 102473 : case PAC_TYPE_LOGON_INFO: {
1878 : {
1879 2572 : struct ndr_pull *_ndr_logon_info;
1880 102473 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
1881 102473 : NDR_CHECK(ndr_pull_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
1882 102473 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
1883 : }
1884 102473 : break; }
1885 :
1886 62 : case PAC_TYPE_CREDENTIAL_INFO: {
1887 62 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_INFO(ndr, NDR_SCALARS, &r->credential_info));
1888 58 : break; }
1889 :
1890 22015 : case PAC_TYPE_SRV_CHECKSUM: {
1891 22015 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
1892 21984 : break; }
1893 :
1894 22015 : case PAC_TYPE_KDC_CHECKSUM: {
1895 22015 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
1896 21984 : break; }
1897 :
1898 22015 : case PAC_TYPE_LOGON_NAME: {
1899 22015 : NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
1900 21984 : break; }
1901 :
1902 295 : case PAC_TYPE_CONSTRAINED_DELEGATION: {
1903 : {
1904 0 : struct ndr_pull *_ndr_constrained_delegation;
1905 295 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_constrained_delegation, 0xFFFFFC01, -1));
1906 295 : NDR_CHECK(ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR(_ndr_constrained_delegation, NDR_SCALARS|NDR_BUFFERS, &r->constrained_delegation));
1907 295 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_constrained_delegation, 0xFFFFFC01, -1));
1908 : }
1909 295 : break; }
1910 :
1911 101911 : case PAC_TYPE_UPN_DNS_INFO: {
1912 101911 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
1913 99348 : break; }
1914 :
1915 11651 : case PAC_TYPE_TICKET_CHECKSUM: {
1916 11651 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->ticket_checksum));
1917 11647 : break; }
1918 :
1919 24701 : case PAC_TYPE_ATTRIBUTES_INFO: {
1920 24701 : NDR_CHECK(ndr_pull_PAC_ATTRIBUTES_INFO(ndr, NDR_SCALARS, &r->attributes_info));
1921 24069 : break; }
1922 :
1923 53438 : case PAC_TYPE_REQUESTER_SID: {
1924 53438 : NDR_CHECK(ndr_pull_PAC_REQUESTER_SID(ndr, NDR_SCALARS, &r->requester_sid));
1925 51771 : break; }
1926 :
1927 21485 : case PAC_TYPE_CLIENT_CLAIMS_INFO: {
1928 : {
1929 9 : struct ndr_pull *_ndr_client_claims_info;
1930 21485 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_client_claims_info, 0, -1));
1931 21485 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_client_claims_info, NDR_SCALARS, &r->client_claims_info));
1932 21485 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_client_claims_info, 0, -1));
1933 : }
1934 21485 : break; }
1935 :
1936 138 : case PAC_TYPE_DEVICE_INFO: {
1937 : {
1938 0 : struct ndr_pull *_ndr_device_info;
1939 138 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_device_info, 0xFFFFFC01, -1));
1940 138 : NDR_CHECK(ndr_pull_PAC_DEVICE_INFO_CTR(_ndr_device_info, NDR_SCALARS|NDR_BUFFERS, &r->device_info));
1941 138 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_device_info, 0xFFFFFC01, -1));
1942 : }
1943 138 : break; }
1944 :
1945 134 : case PAC_TYPE_DEVICE_CLAIMS_INFO: {
1946 : {
1947 0 : struct ndr_pull *_ndr_device_claims_info;
1948 134 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_device_claims_info, 0, -1));
1949 134 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_device_claims_info, NDR_SCALARS, &r->device_claims_info));
1950 134 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_device_claims_info, 0, -1));
1951 : }
1952 134 : break; }
1953 :
1954 11647 : case PAC_TYPE_FULL_CHECKSUM: {
1955 11647 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->full_checksum));
1956 11647 : break; }
1957 :
1958 15 : default: {
1959 : {
1960 0 : struct ndr_pull *_ndr_unknown;
1961 15 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_unknown, 0, -1));
1962 15 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
1963 15 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_unknown, 0, -1));
1964 : }
1965 15 : break; }
1966 :
1967 : }
1968 : }
1969 393995 : if (ndr_flags & NDR_BUFFERS) {
1970 393995 : if (!(ndr_flags & NDR_SCALARS)) {
1971 : /* We didn't get it above, and the token is not needed after this. */
1972 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
1973 : }
1974 393995 : switch (level) {
1975 99901 : case PAC_TYPE_LOGON_INFO:
1976 99901 : break;
1977 :
1978 58 : case PAC_TYPE_CREDENTIAL_INFO:
1979 58 : break;
1980 :
1981 21984 : case PAC_TYPE_SRV_CHECKSUM:
1982 21984 : break;
1983 :
1984 21984 : case PAC_TYPE_KDC_CHECKSUM:
1985 21984 : break;
1986 :
1987 21984 : case PAC_TYPE_LOGON_NAME:
1988 21984 : break;
1989 :
1990 295 : case PAC_TYPE_CONSTRAINED_DELEGATION:
1991 295 : break;
1992 :
1993 101911 : case PAC_TYPE_UPN_DNS_INFO:
1994 101911 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
1995 99348 : break;
1996 :
1997 11647 : case PAC_TYPE_TICKET_CHECKSUM:
1998 11647 : break;
1999 :
2000 24069 : case PAC_TYPE_ATTRIBUTES_INFO:
2001 24069 : break;
2002 :
2003 51771 : case PAC_TYPE_REQUESTER_SID:
2004 51771 : break;
2005 :
2006 21476 : case PAC_TYPE_CLIENT_CLAIMS_INFO:
2007 21476 : break;
2008 :
2009 138 : case PAC_TYPE_DEVICE_INFO:
2010 138 : break;
2011 :
2012 134 : case PAC_TYPE_DEVICE_CLAIMS_INFO:
2013 134 : break;
2014 :
2015 11647 : case PAC_TYPE_FULL_CHECKSUM:
2016 11647 : break;
2017 :
2018 15 : default:
2019 15 : break;
2020 :
2021 : }
2022 : }
2023 386451 : return NDR_ERR_SUCCESS;
2024 : }
2025 :
2026 83 : _PUBLIC_ void ndr_print_PAC_INFO(struct ndr_print *ndr, const char *name, const union PAC_INFO *r)
2027 : {
2028 83 : uint32_t level;
2029 83 : level = ndr_print_steal_switch_value(ndr, r);
2030 83 : ndr_print_union(ndr, name, level, "PAC_INFO");
2031 83 : switch (level) {
2032 15 : case PAC_TYPE_LOGON_INFO:
2033 15 : ndr_print_PAC_LOGON_INFO_CTR(ndr, "logon_info", &r->logon_info);
2034 15 : break;
2035 :
2036 4 : case PAC_TYPE_CREDENTIAL_INFO:
2037 4 : ndr_print_PAC_CREDENTIAL_INFO(ndr, "credential_info", &r->credential_info);
2038 4 : break;
2039 :
2040 15 : case PAC_TYPE_SRV_CHECKSUM:
2041 15 : ndr_print_PAC_SIGNATURE_DATA(ndr, "srv_cksum", &r->srv_cksum);
2042 15 : break;
2043 :
2044 15 : case PAC_TYPE_KDC_CHECKSUM:
2045 15 : ndr_print_PAC_SIGNATURE_DATA(ndr, "kdc_cksum", &r->kdc_cksum);
2046 15 : break;
2047 :
2048 15 : case PAC_TYPE_LOGON_NAME:
2049 15 : ndr_print_PAC_LOGON_NAME(ndr, "logon_name", &r->logon_name);
2050 15 : break;
2051 :
2052 0 : case PAC_TYPE_CONSTRAINED_DELEGATION:
2053 0 : ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(ndr, "constrained_delegation", &r->constrained_delegation);
2054 0 : break;
2055 :
2056 15 : case PAC_TYPE_UPN_DNS_INFO:
2057 15 : ndr_print_PAC_UPN_DNS_INFO(ndr, "upn_dns_info", &r->upn_dns_info);
2058 15 : break;
2059 :
2060 4 : case PAC_TYPE_TICKET_CHECKSUM:
2061 4 : ndr_print_PAC_SIGNATURE_DATA(ndr, "ticket_checksum", &r->ticket_checksum);
2062 4 : break;
2063 :
2064 0 : case PAC_TYPE_ATTRIBUTES_INFO:
2065 0 : ndr_print_PAC_ATTRIBUTES_INFO(ndr, "attributes_info", &r->attributes_info);
2066 0 : break;
2067 :
2068 0 : case PAC_TYPE_REQUESTER_SID:
2069 0 : ndr_print_PAC_REQUESTER_SID(ndr, "requester_sid", &r->requester_sid);
2070 0 : break;
2071 :
2072 0 : case PAC_TYPE_CLIENT_CLAIMS_INFO:
2073 0 : ndr_print_DATA_BLOB_REM(ndr, "client_claims_info", &r->client_claims_info);
2074 0 : break;
2075 :
2076 0 : case PAC_TYPE_DEVICE_INFO:
2077 0 : ndr_print_PAC_DEVICE_INFO_CTR(ndr, "device_info", &r->device_info);
2078 0 : break;
2079 :
2080 0 : case PAC_TYPE_DEVICE_CLAIMS_INFO:
2081 0 : ndr_print_DATA_BLOB_REM(ndr, "device_claims_info", &r->device_claims_info);
2082 0 : break;
2083 :
2084 0 : case PAC_TYPE_FULL_CHECKSUM:
2085 0 : ndr_print_PAC_SIGNATURE_DATA(ndr, "full_checksum", &r->full_checksum);
2086 0 : break;
2087 :
2088 0 : default:
2089 0 : ndr_print_DATA_BLOB_REM(ndr, "unknown", &r->unknown);
2090 0 : break;
2091 :
2092 : }
2093 83 : }
2094 :
2095 52663 : _PUBLIC_ size_t ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, libndr_flags flags)
2096 : {
2097 52663 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_PAC_INFO);
2098 : }
2099 :
2100 2 : static void ndr_print_flags_PAC_BUFFER(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_BUFFER *r)
2101 : {
2102 2 : ndr_print_PAC_BUFFER(ndr, name, r);
2103 2 : }
2104 :
2105 85 : _PUBLIC_ void ndr_print_PAC_BUFFER(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER *r)
2106 : {
2107 85 : ndr_print_struct(ndr, name, "PAC_BUFFER");
2108 85 : if (r == NULL) { ndr_print_null(ndr); return; }
2109 85 : ndr->depth++;
2110 85 : ndr_print_PAC_TYPE(ndr, "type", r->type);
2111 85 : ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_PAC_INFO(r->info, r->type, LIBNDR_FLAG_ALIGN8):r->_ndr_size);
2112 : {
2113 85 : libndr_flags _flags_save_PAC_INFO = ndr->flags;
2114 85 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2115 85 : ndr_print_ptr(ndr, "info", r->info);
2116 85 : ndr->depth++;
2117 85 : if (r->info) {
2118 83 : ndr_print_set_switch_value(ndr, r->info, r->type);
2119 83 : ndr_print_PAC_INFO(ndr, "info", r->info);
2120 : }
2121 85 : ndr->depth--;
2122 85 : ndr->flags = _flags_save_PAC_INFO;
2123 : }
2124 85 : ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad);
2125 85 : ndr->depth--;
2126 : }
2127 :
2128 3282 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_DATA *r)
2129 : {
2130 14 : uint32_t cntr_buffers_0;
2131 3282 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2132 3282 : if (ndr_flags & NDR_SCALARS) {
2133 3282 : NDR_CHECK(ndr_push_align(ndr, 5));
2134 3282 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
2135 3282 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2136 29613 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2137 26331 : NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2138 : }
2139 3282 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2140 : }
2141 3282 : if (ndr_flags & NDR_BUFFERS) {
2142 29613 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2143 26331 : NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2144 : }
2145 : }
2146 3268 : return NDR_ERR_SUCCESS;
2147 : }
2148 :
2149 22015 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_DATA *r)
2150 : {
2151 22015 : uint32_t size_buffers_0 = 0;
2152 31 : uint32_t cntr_buffers_0;
2153 22015 : TALLOC_CTX *_mem_save_buffers_0 = NULL;
2154 22015 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2155 22015 : if (ndr_flags & NDR_SCALARS) {
2156 22015 : NDR_CHECK(ndr_pull_align(ndr, 5));
2157 22015 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
2158 22015 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2159 22015 : size_buffers_0 = r->num_buffers;
2160 22015 : NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
2161 22015 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2162 22015 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2163 186569 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2164 164554 : NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2165 : }
2166 22015 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2167 22015 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2168 : }
2169 22015 : if (ndr_flags & NDR_BUFFERS) {
2170 22015 : size_buffers_0 = r->num_buffers;
2171 22015 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2172 22015 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2173 186569 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2174 164554 : NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2175 : }
2176 22015 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2177 186386 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2178 : }
2179 : }
2180 21984 : return NDR_ERR_SUCCESS;
2181 : }
2182 :
2183 5 : static void ndr_print_flags_PAC_DATA(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_DATA *r)
2184 : {
2185 5 : ndr_print_PAC_DATA(ndr, name, r);
2186 5 : }
2187 :
2188 15 : _PUBLIC_ void ndr_print_PAC_DATA(struct ndr_print *ndr, const char *name, const struct PAC_DATA *r)
2189 : {
2190 15 : uint32_t cntr_buffers_0;
2191 15 : ndr_print_struct(ndr, name, "PAC_DATA");
2192 15 : if (r == NULL) { ndr_print_null(ndr); return; }
2193 15 : ndr->depth++;
2194 15 : ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
2195 15 : ndr_print_uint32(ndr, "version", r->version);
2196 15 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "buffers", (uint32_t)(r->num_buffers));
2197 15 : ndr->depth++;
2198 98 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2199 83 : ndr_print_PAC_BUFFER(ndr, "buffers", &r->buffers[cntr_buffers_0]);
2200 : }
2201 15 : ndr->depth--;
2202 15 : ndr->depth--;
2203 : }
2204 :
2205 242154 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_BUFFER_RAW(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_BUFFER_RAW *r)
2206 : {
2207 242154 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2208 242154 : if (ndr_flags & NDR_SCALARS) {
2209 121077 : NDR_CHECK(ndr_push_align(ndr, 5));
2210 121077 : NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type));
2211 121077 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ndr_size));
2212 : {
2213 121077 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2214 121077 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2215 121077 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->info));
2216 121077 : ndr->flags = _flags_save_DATA_BLOB_REM;
2217 : }
2218 121077 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2219 121077 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2220 : }
2221 242154 : if (ndr_flags & NDR_BUFFERS) {
2222 : {
2223 121077 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2224 121077 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2225 121077 : if (r->info) {
2226 121077 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info));
2227 : {
2228 82 : struct ndr_push *_ndr_info;
2229 121077 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2230 121077 : NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
2231 121077 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2232 : }
2233 121077 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info));
2234 : }
2235 121077 : ndr->flags = _flags_save_DATA_BLOB_REM;
2236 : }
2237 : }
2238 241990 : return NDR_ERR_SUCCESS;
2239 : }
2240 :
2241 175772 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_BUFFER_RAW(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_BUFFER_RAW *r)
2242 : {
2243 180 : uint32_t _ptr_info;
2244 175772 : TALLOC_CTX *_mem_save_info_0 = NULL;
2245 175772 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2246 175772 : if (ndr_flags & NDR_SCALARS) {
2247 87886 : NDR_CHECK(ndr_pull_align(ndr, 5));
2248 87886 : NDR_CHECK(ndr_pull_PAC_TYPE(ndr, NDR_SCALARS, &r->type));
2249 87886 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ndr_size));
2250 : {
2251 87886 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2252 87886 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2253 87886 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
2254 87886 : if (_ptr_info) {
2255 87886 : NDR_PULL_ALLOC(ndr, r->info);
2256 87886 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->info, _ptr_info));
2257 : } else {
2258 0 : r->info = NULL;
2259 : }
2260 87886 : ndr->flags = _flags_save_DATA_BLOB_REM;
2261 : }
2262 87886 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
2263 87886 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2264 : }
2265 175772 : if (ndr_flags & NDR_BUFFERS) {
2266 : {
2267 87886 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2268 87886 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2269 87886 : if (r->info) {
2270 90 : uint32_t _relative_save_offset;
2271 87886 : _relative_save_offset = ndr->offset;
2272 87886 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->info));
2273 87886 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
2274 87886 : NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
2275 : {
2276 90 : struct ndr_pull *_ndr_info;
2277 87886 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2278 87886 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
2279 87886 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2280 : }
2281 87886 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
2282 87886 : if (ndr->offset > ndr->relative_highest_offset) {
2283 76848 : ndr->relative_highest_offset = ndr->offset;
2284 : }
2285 87886 : ndr->offset = _relative_save_offset;
2286 : }
2287 87886 : ndr->flags = _flags_save_DATA_BLOB_REM;
2288 : }
2289 : }
2290 175592 : return NDR_ERR_SUCCESS;
2291 : }
2292 :
2293 0 : static void ndr_print_flags_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_BUFFER_RAW *r)
2294 : {
2295 0 : ndr_print_PAC_BUFFER_RAW(ndr, name, r);
2296 0 : }
2297 :
2298 54 : _PUBLIC_ void ndr_print_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER_RAW *r)
2299 : {
2300 54 : ndr_print_struct(ndr, name, "PAC_BUFFER_RAW");
2301 54 : if (r == NULL) { ndr_print_null(ndr); return; }
2302 54 : ndr->depth++;
2303 54 : ndr_print_PAC_TYPE(ndr, "type", r->type);
2304 54 : ndr_print_uint32(ndr, "ndr_size", r->ndr_size);
2305 : {
2306 54 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2307 54 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2308 54 : ndr_print_ptr(ndr, "info", r->info);
2309 54 : ndr->depth++;
2310 54 : if (r->info) {
2311 54 : ndr_print_DATA_BLOB_REM(ndr, "info", r->info);
2312 : }
2313 54 : ndr->depth--;
2314 54 : ndr->flags = _flags_save_DATA_BLOB_REM;
2315 : }
2316 54 : ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad);
2317 54 : ndr->depth--;
2318 : }
2319 :
2320 15950 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA_RAW(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_DATA_RAW *r)
2321 : {
2322 17 : uint32_t cntr_buffers_0;
2323 15950 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2324 15950 : if (ndr_flags & NDR_SCALARS) {
2325 15950 : NDR_CHECK(ndr_push_align(ndr, 5));
2326 15950 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
2327 15950 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2328 137027 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2329 121077 : NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2330 : }
2331 15950 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2332 : }
2333 15950 : if (ndr_flags & NDR_BUFFERS) {
2334 137027 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2335 121077 : NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2336 : }
2337 : }
2338 15933 : return NDR_ERR_SUCCESS;
2339 : }
2340 :
2341 11832 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA_RAW(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_DATA_RAW *r)
2342 : {
2343 11832 : uint32_t size_buffers_0 = 0;
2344 18 : uint32_t cntr_buffers_0;
2345 11832 : TALLOC_CTX *_mem_save_buffers_0 = NULL;
2346 11832 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2347 11832 : if (ndr_flags & NDR_SCALARS) {
2348 11832 : NDR_CHECK(ndr_pull_align(ndr, 5));
2349 11832 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
2350 11832 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2351 11832 : size_buffers_0 = r->num_buffers;
2352 11832 : NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
2353 11832 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2354 11832 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2355 99718 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2356 87886 : NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2357 : }
2358 11832 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2359 11832 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2360 : }
2361 11832 : if (ndr_flags & NDR_BUFFERS) {
2362 11832 : size_buffers_0 = r->num_buffers;
2363 11832 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2364 11832 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2365 99718 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2366 87886 : NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2367 : }
2368 11832 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2369 99628 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2370 : }
2371 : }
2372 11814 : return NDR_ERR_SUCCESS;
2373 : }
2374 :
2375 0 : static void ndr_print_flags_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_DATA_RAW *r)
2376 : {
2377 0 : ndr_print_PAC_DATA_RAW(ndr, name, r);
2378 0 : }
2379 :
2380 10 : _PUBLIC_ void ndr_print_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, const struct PAC_DATA_RAW *r)
2381 : {
2382 10 : uint32_t cntr_buffers_0;
2383 10 : ndr_print_struct(ndr, name, "PAC_DATA_RAW");
2384 10 : if (r == NULL) { ndr_print_null(ndr); return; }
2385 10 : ndr->depth++;
2386 10 : ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
2387 10 : ndr_print_uint32(ndr, "version", r->version);
2388 10 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "buffers", (uint32_t)(r->num_buffers));
2389 10 : ndr->depth++;
2390 64 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2391 54 : ndr_print_PAC_BUFFER_RAW(ndr, "buffers", &r->buffers[cntr_buffers_0]);
2392 : }
2393 10 : ndr->depth--;
2394 10 : ndr->depth--;
2395 : }
2396 :
2397 150 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_Validate(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct PAC_Validate *r)
2398 : {
2399 150 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2400 150 : if (ndr_flags & NDR_SCALARS) {
2401 150 : NDR_CHECK(ndr_push_align(ndr, 4));
2402 150 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NETLOGON_GENERIC_KRB5_PAC_VALIDATE));
2403 150 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ChecksumLength));
2404 150 : NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->SignatureType));
2405 150 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SignatureLength));
2406 : {
2407 150 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
2408 150 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2409 150 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->ChecksumAndSignature));
2410 150 : ndr->flags = _flags_save_DATA_BLOB;
2411 : }
2412 150 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2413 : }
2414 150 : if (ndr_flags & NDR_BUFFERS) {
2415 0 : }
2416 150 : return NDR_ERR_SUCCESS;
2417 : }
2418 :
2419 250 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_Validate(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_Validate *r)
2420 : {
2421 250 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2422 250 : if (ndr_flags & NDR_SCALARS) {
2423 250 : NDR_CHECK(ndr_pull_align(ndr, 4));
2424 250 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MessageType));
2425 250 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ChecksumLength));
2426 250 : NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->SignatureType));
2427 250 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SignatureLength));
2428 : {
2429 250 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
2430 250 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2431 250 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->ChecksumAndSignature));
2432 250 : ndr->flags = _flags_save_DATA_BLOB;
2433 : }
2434 250 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2435 : }
2436 250 : if (ndr_flags & NDR_BUFFERS) {
2437 0 : }
2438 250 : return NDR_ERR_SUCCESS;
2439 : }
2440 :
2441 0 : static void ndr_print_flags_PAC_Validate(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct PAC_Validate *r)
2442 : {
2443 0 : ndr_print_PAC_Validate(ndr, name, r);
2444 0 : }
2445 :
2446 0 : _PUBLIC_ void ndr_print_PAC_Validate(struct ndr_print *ndr, const char *name, const struct PAC_Validate *r)
2447 : {
2448 0 : ndr_print_struct(ndr, name, "PAC_Validate");
2449 0 : if (r == NULL) { ndr_print_null(ndr); return; }
2450 0 : ndr->depth++;
2451 0 : ndr_print_uint32(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NETLOGON_GENERIC_KRB5_PAC_VALIDATE:r->MessageType);
2452 0 : ndr_print_uint32(ndr, "ChecksumLength", r->ChecksumLength);
2453 0 : ndr_print_int32(ndr, "SignatureType", r->SignatureType);
2454 0 : ndr_print_uint32(ndr, "SignatureLength", r->SignatureLength);
2455 : {
2456 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
2457 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2458 0 : ndr_print_DATA_BLOB(ndr, "ChecksumAndSignature", r->ChecksumAndSignature);
2459 0 : ndr->flags = _flags_save_DATA_BLOB;
2460 : }
2461 0 : ndr->depth--;
2462 : }
2463 :
2464 667 : _PUBLIC_ enum ndr_err_code ndr_push_netsamlogoncache_entry(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct netsamlogoncache_entry *r)
2465 : {
2466 667 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2467 667 : if (ndr_flags & NDR_SCALARS) {
2468 667 : NDR_CHECK(ndr_push_align(ndr, 5));
2469 667 : NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2470 667 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
2471 667 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2472 : }
2473 667 : if (ndr_flags & NDR_BUFFERS) {
2474 667 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
2475 : }
2476 667 : return NDR_ERR_SUCCESS;
2477 : }
2478 :
2479 86466 : _PUBLIC_ enum ndr_err_code ndr_pull_netsamlogoncache_entry(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct netsamlogoncache_entry *r)
2480 : {
2481 86466 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2482 86466 : if (ndr_flags & NDR_SCALARS) {
2483 86466 : NDR_CHECK(ndr_pull_align(ndr, 5));
2484 86466 : NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2485 86466 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
2486 86466 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2487 : }
2488 86466 : if (ndr_flags & NDR_BUFFERS) {
2489 86466 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
2490 : }
2491 86466 : return NDR_ERR_SUCCESS;
2492 : }
2493 :
2494 0 : static void ndr_print_flags_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct netsamlogoncache_entry *r)
2495 : {
2496 0 : ndr_print_netsamlogoncache_entry(ndr, name, r);
2497 0 : }
2498 :
2499 0 : _PUBLIC_ void ndr_print_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, const struct netsamlogoncache_entry *r)
2500 : {
2501 0 : ndr_print_struct(ndr, name, "netsamlogoncache_entry");
2502 0 : if (r == NULL) { ndr_print_null(ndr); return; }
2503 0 : ndr->depth++;
2504 0 : ndr_print_time_t(ndr, "timestamp", r->timestamp);
2505 0 : ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
2506 0 : ndr->depth--;
2507 : }
2508 :
2509 : #ifndef SKIP_NDR_TABLE_krb5pac
2510 : static const struct ndr_interface_public_struct krb5pac_public_structs[] = {
2511 : {
2512 : .name = "PAC_SIGNATURE_DATA",
2513 : .struct_size = sizeof(struct PAC_SIGNATURE_DATA ),
2514 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_SIGNATURE_DATA,
2515 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_SIGNATURE_DATA,
2516 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_SIGNATURE_DATA,
2517 : },
2518 : {
2519 : .name = "PAC_CREDENTIAL_NTLM_SECPKG",
2520 : .struct_size = sizeof(struct PAC_CREDENTIAL_NTLM_SECPKG ),
2521 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_NTLM_SECPKG,
2522 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_NTLM_SECPKG,
2523 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_NTLM_SECPKG,
2524 : },
2525 : {
2526 : .name = "PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG",
2527 : .struct_size = sizeof(struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG ),
2528 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
2529 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
2530 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
2531 : },
2532 : {
2533 : .name = "PAC_CREDENTIAL_DATA",
2534 : .struct_size = sizeof(struct PAC_CREDENTIAL_DATA ),
2535 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA,
2536 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA,
2537 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA,
2538 : },
2539 : {
2540 : .name = "PAC_CREDENTIAL_DATA_CTR",
2541 : .struct_size = sizeof(struct PAC_CREDENTIAL_DATA_CTR ),
2542 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA_CTR,
2543 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA_CTR,
2544 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA_CTR,
2545 : },
2546 : {
2547 : .name = "PAC_CREDENTIAL_DATA_NDR",
2548 : .struct_size = sizeof(struct PAC_CREDENTIAL_DATA_NDR ),
2549 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA_NDR,
2550 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA_NDR,
2551 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA_NDR,
2552 : },
2553 : {
2554 : .name = "PAC_CREDENTIAL_INFO",
2555 : .struct_size = sizeof(struct PAC_CREDENTIAL_INFO ),
2556 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_INFO,
2557 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_INFO,
2558 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_INFO,
2559 : },
2560 : {
2561 : .name = "PAC_LOGON_INFO_CTR",
2562 : .struct_size = sizeof(struct PAC_LOGON_INFO_CTR ),
2563 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_LOGON_INFO_CTR,
2564 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_LOGON_INFO_CTR,
2565 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_LOGON_INFO_CTR,
2566 : },
2567 : {
2568 : .name = "PAC_CONSTRAINED_DELEGATION_CTR",
2569 : .struct_size = sizeof(struct PAC_CONSTRAINED_DELEGATION_CTR ),
2570 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CONSTRAINED_DELEGATION_CTR,
2571 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR,
2572 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CONSTRAINED_DELEGATION_CTR,
2573 : },
2574 : {
2575 : .name = "PAC_BUFFER",
2576 : .struct_size = sizeof(struct PAC_BUFFER ),
2577 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_BUFFER,
2578 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_BUFFER,
2579 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_BUFFER,
2580 : },
2581 : {
2582 : .name = "PAC_DATA",
2583 : .struct_size = sizeof(struct PAC_DATA ),
2584 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_DATA,
2585 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_DATA,
2586 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_DATA,
2587 : },
2588 : {
2589 : .name = "PAC_BUFFER_RAW",
2590 : .struct_size = sizeof(struct PAC_BUFFER_RAW ),
2591 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_BUFFER_RAW,
2592 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_BUFFER_RAW,
2593 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_BUFFER_RAW,
2594 : },
2595 : {
2596 : .name = "PAC_DATA_RAW",
2597 : .struct_size = sizeof(struct PAC_DATA_RAW ),
2598 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_DATA_RAW,
2599 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_DATA_RAW,
2600 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_DATA_RAW,
2601 : },
2602 : {
2603 : .name = "PAC_Validate",
2604 : .struct_size = sizeof(struct PAC_Validate ),
2605 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_Validate,
2606 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_Validate,
2607 : .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_Validate,
2608 : },
2609 : {
2610 : .name = "netsamlogoncache_entry",
2611 : .struct_size = sizeof(struct netsamlogoncache_entry ),
2612 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_netsamlogoncache_entry,
2613 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_netsamlogoncache_entry,
2614 : .ndr_print = (ndr_print_function_t) ndr_print_flags_netsamlogoncache_entry,
2615 : },
2616 : { .name = NULL }
2617 : };
2618 :
2619 : static const struct ndr_interface_call krb5pac_calls[] = {
2620 : { .name = NULL }
2621 : };
2622 :
2623 : static const char * const krb5pac_endpoint_strings[] = {
2624 : "ncacn_np:[\\pipe\\krb5pac]",
2625 : };
2626 :
2627 : static const struct ndr_interface_string_array krb5pac_endpoints = {
2628 : .count = 1,
2629 : .names = krb5pac_endpoint_strings
2630 : };
2631 :
2632 : static const char * const krb5pac_authservice_strings[] = {
2633 : "host",
2634 : };
2635 :
2636 : static const struct ndr_interface_string_array krb5pac_authservices = {
2637 : .count = 1,
2638 : .names = krb5pac_authservice_strings
2639 : };
2640 :
2641 :
2642 : const struct ndr_interface_table ndr_table_krb5pac = {
2643 : .name = "krb5pac",
2644 : .syntax_id = {
2645 : {0x12345778,0x1234,0xabcd,{0x00,0x00},{0x00,0x00,0x00,0x00}},
2646 : NDR_KRB5PAC_VERSION
2647 : },
2648 : .helpstring = NDR_KRB5PAC_HELPSTRING,
2649 : .num_calls = 0,
2650 : .calls = krb5pac_calls,
2651 : .num_public_structs = 15,
2652 : .public_structs = krb5pac_public_structs,
2653 : .endpoints = &krb5pac_endpoints,
2654 : .authservices = &krb5pac_authservices
2655 : };
2656 :
2657 : #endif /* SKIP_NDR_TABLE_krb5pac */
|