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 9930 : 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 9930 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13 9930 : if (ndr_flags & NDR_SCALARS) {
14 9930 : NDR_CHECK(ndr_push_align(ndr, 4));
15 9930 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->logon_time));
16 9930 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->account_name)));
17 9930 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, 2 * strlen_m(r->account_name), sizeof(uint8_t), CH_UTF16));
18 9930 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19 : }
20 9930 : if (ndr_flags & NDR_BUFFERS) {
21 42 : }
22 9930 : return NDR_ERR_SUCCESS;
23 : }
24 :
25 23182 : 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 23182 : uint32_t size_account_name_0 = 0;
28 23182 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
29 23182 : if (ndr_flags & NDR_SCALARS) {
30 23182 : NDR_CHECK(ndr_pull_align(ndr, 4));
31 23182 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->logon_time));
32 23182 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
33 23182 : size_account_name_0 = r->size;
34 23182 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, size_account_name_0, sizeof(uint8_t), CH_UTF16));
35 23182 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
36 : }
37 23182 : if (ndr_flags & NDR_BUFFERS) {
38 31 : }
39 23182 : 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 53330 : _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 53330 : libndr_flags _flags_save_STRUCT = ndr->flags;
57 53330 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
58 53330 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
59 53330 : if (ndr_flags & NDR_SCALARS) {
60 53330 : NDR_CHECK(ndr_push_align(ndr, 4));
61 53330 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
62 : {
63 53330 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
64 53330 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
65 53330 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->signature));
66 53330 : ndr->flags = _flags_save_DATA_BLOB;
67 : }
68 53330 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
69 : }
70 53330 : if (ndr_flags & NDR_BUFFERS) {
71 104 : }
72 53330 : ndr->flags = _flags_save_STRUCT;
73 : }
74 53330 : return NDR_ERR_SUCCESS;
75 : }
76 :
77 102117 : _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 102117 : libndr_flags _flags_save_STRUCT = ndr->flags;
81 102117 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
82 102117 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
83 102117 : if (ndr_flags & NDR_SCALARS) {
84 102117 : NDR_CHECK(ndr_pull_align(ndr, 4));
85 102117 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
86 : {
87 102117 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
88 102117 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
89 102117 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->signature));
90 102117 : ndr->flags = _flags_save_DATA_BLOB;
91 : }
92 102117 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
93 : }
94 102117 : if (ndr_flags & NDR_BUFFERS) {
95 80 : }
96 102117 : ndr->flags = _flags_save_STRUCT;
97 : }
98 102117 : 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 175698 : 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 175698 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
129 175698 : if (ndr_flags & NDR_SCALARS) {
130 87849 : NDR_CHECK(ndr_push_align(ndr, 5));
131 87849 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
132 87849 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
133 87849 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
134 : }
135 175698 : if (ndr_flags & NDR_BUFFERS) {
136 87849 : if (r->domain_sid) {
137 16848 : NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
138 : }
139 87849 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
140 : }
141 169958 : return NDR_ERR_SUCCESS;
142 : }
143 :
144 208884 : 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 208884 : TALLOC_CTX *_mem_save_domain_sid_0 = NULL;
148 208884 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
149 208884 : if (ndr_flags & NDR_SCALARS) {
150 104442 : NDR_CHECK(ndr_pull_align(ndr, 5));
151 104442 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
152 104442 : if (_ptr_domain_sid) {
153 34591 : NDR_PULL_ALLOC(ndr, r->domain_sid);
154 : } else {
155 69851 : r->domain_sid = NULL;
156 : }
157 104442 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
158 104442 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
159 : }
160 208884 : if (ndr_flags & NDR_BUFFERS) {
161 104442 : if (r->domain_sid) {
162 34591 : _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
163 34591 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
164 34591 : NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
165 34591 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
166 : }
167 104442 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
168 : }
169 203740 : 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 87769 : 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 87769 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
190 87769 : if (ndr_flags & NDR_SCALARS) {
191 87769 : NDR_CHECK(ndr_push_align(ndr, 5));
192 87769 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
193 87769 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
194 87769 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
195 : }
196 87769 : if (ndr_flags & NDR_BUFFERS) {
197 87769 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
198 87769 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
199 : }
200 84899 : return NDR_ERR_SUCCESS;
201 : }
202 :
203 104300 : 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 104300 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
206 104300 : if (ndr_flags & NDR_SCALARS) {
207 104300 : NDR_CHECK(ndr_pull_align(ndr, 5));
208 104300 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
209 104300 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
210 104300 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
211 : }
212 104300 : if (ndr_flags & NDR_BUFFERS) {
213 104300 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
214 104300 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
215 : }
216 101728 : 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 43 : 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 43 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
232 41 : return NDR_ERR_SUCCESS;
233 : }
234 :
235 25 : 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 25 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
239 25 : *r = v;
240 25 : 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 43 : _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 43 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
255 43 : if (ndr_flags & NDR_SCALARS) {
256 43 : NDR_CHECK(ndr_push_align(ndr, 4));
257 43 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
258 45 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, r->flags));
259 43 : NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
260 43 : NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
261 43 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
262 : }
263 43 : if (ndr_flags & NDR_BUFFERS) {
264 2 : }
265 43 : return NDR_ERR_SUCCESS;
266 : }
267 :
268 25 : _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 25 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
271 25 : if (ndr_flags & NDR_SCALARS) {
272 25 : NDR_CHECK(ndr_pull_align(ndr, 4));
273 25 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
274 27 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, &r->flags));
275 25 : NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
276 25 : NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
277 25 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
278 : }
279 25 : if (ndr_flags & NDR_BUFFERS) {
280 2 : }
281 25 : 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 86 : _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 86 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
302 86 : if (ndr_flags & NDR_SCALARS) {
303 43 : NDR_CHECK(ndr_push_align(ndr, 5));
304 43 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
305 43 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_size));
306 43 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->credential));
307 43 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
308 : }
309 86 : if (ndr_flags & NDR_BUFFERS) {
310 43 : NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
311 43 : if (r->credential) {
312 43 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_size));
313 43 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->credential, r->credential_size));
314 : }
315 : }
316 82 : return NDR_ERR_SUCCESS;
317 : }
318 :
319 50 : _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 50 : uint32_t size_credential_1 = 0;
323 50 : TALLOC_CTX *_mem_save_credential_0 = NULL;
324 50 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
325 50 : if (ndr_flags & NDR_SCALARS) {
326 25 : NDR_CHECK(ndr_pull_align(ndr, 5));
327 25 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
328 25 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_size));
329 25 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
330 25 : if (_ptr_credential) {
331 25 : NDR_PULL_ALLOC(ndr, r->credential);
332 : } else {
333 0 : r->credential = NULL;
334 : }
335 25 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
336 : }
337 50 : if (ndr_flags & NDR_BUFFERS) {
338 25 : NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
339 25 : if (r->credential) {
340 25 : _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
341 25 : NDR_PULL_SET_MEM_CTX(ndr, r->credential, 0);
342 25 : NDR_CHECK(ndr_pull_array_size(ndr, &r->credential));
343 25 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credential, &size_credential_1));
344 25 : NDR_PULL_ALLOC_N(ndr, r->credential, size_credential_1);
345 25 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->credential, size_credential_1));
346 25 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
347 : }
348 25 : if (r->credential) {
349 25 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->credential, r->credential_size));
350 : }
351 : }
352 46 : 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 43 : _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 43 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
374 43 : if (ndr_flags & NDR_SCALARS) {
375 43 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_count));
376 43 : NDR_CHECK(ndr_push_align(ndr, 5));
377 43 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_count));
378 86 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
379 43 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
380 : }
381 43 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
382 : }
383 43 : if (ndr_flags & NDR_BUFFERS) {
384 86 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
385 43 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
386 : }
387 : }
388 41 : return NDR_ERR_SUCCESS;
389 : }
390 :
391 25 : _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 25 : uint32_t size_credentials_0 = 0;
394 2 : uint32_t cntr_credentials_0;
395 25 : TALLOC_CTX *_mem_save_credentials_0 = NULL;
396 25 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
397 25 : if (ndr_flags & NDR_SCALARS) {
398 25 : NDR_CHECK(ndr_pull_array_size(ndr, &r->credentials));
399 25 : NDR_CHECK(ndr_pull_align(ndr, 5));
400 25 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_count));
401 25 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
402 25 : NDR_PULL_ALLOC_N(ndr, r->credentials, size_credentials_0);
403 25 : _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
404 25 : NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
405 50 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
406 25 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
407 : }
408 25 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
409 25 : if (r->credentials) {
410 25 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->credentials, r->credential_count));
411 : }
412 25 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
413 : }
414 25 : if (ndr_flags & NDR_BUFFERS) {
415 25 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
416 25 : _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
417 25 : NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
418 50 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
419 25 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
420 : }
421 25 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
422 48 : for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
423 : }
424 : }
425 23 : 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 43 : _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 43 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
452 43 : if (ndr_flags & NDR_SCALARS) {
453 43 : NDR_CHECK(ndr_push_align(ndr, 5));
454 43 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
455 43 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
456 : }
457 43 : if (ndr_flags & NDR_BUFFERS) {
458 43 : if (r->data) {
459 43 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
460 : }
461 : }
462 41 : return NDR_ERR_SUCCESS;
463 : }
464 :
465 25 : _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 25 : TALLOC_CTX *_mem_save_data_0 = NULL;
469 25 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
470 25 : if (ndr_flags & NDR_SCALARS) {
471 25 : NDR_CHECK(ndr_pull_align(ndr, 5));
472 25 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
473 25 : if (_ptr_data) {
474 25 : NDR_PULL_ALLOC(ndr, r->data);
475 : } else {
476 0 : r->data = NULL;
477 : }
478 25 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
479 : }
480 25 : if (ndr_flags & NDR_BUFFERS) {
481 25 : if (r->data) {
482 25 : _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
483 25 : NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
484 25 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
485 25 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
486 : }
487 : }
488 23 : 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 43 : _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 43 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
513 43 : if (ndr_flags & NDR_SCALARS) {
514 43 : NDR_CHECK(ndr_push_align(ndr, 1));
515 : {
516 2 : struct ndr_push *_ndr_ctr;
517 43 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
518 43 : NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
519 43 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
520 : }
521 43 : NDR_CHECK(ndr_push_trailer_align(ndr, 1));
522 : }
523 43 : if (ndr_flags & NDR_BUFFERS) {
524 2 : }
525 43 : return NDR_ERR_SUCCESS;
526 : }
527 :
528 25 : _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 25 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
531 25 : if (ndr_flags & NDR_SCALARS) {
532 25 : NDR_CHECK(ndr_pull_align(ndr, 1));
533 : {
534 2 : struct ndr_pull *_ndr_ctr;
535 25 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
536 25 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
537 25 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
538 : }
539 25 : NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
540 : }
541 25 : if (ndr_flags & NDR_BUFFERS) {
542 2 : }
543 25 : 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 53 : _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 53 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
563 53 : if (ndr_flags & NDR_SCALARS) {
564 53 : NDR_CHECK(ndr_push_align(ndr, 4));
565 53 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
566 53 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->encryption_type));
567 : {
568 53 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
569 53 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
570 53 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->encrypted_data));
571 53 : ndr->flags = _flags_save_DATA_BLOB;
572 : }
573 53 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
574 : }
575 53 : if (ndr_flags & NDR_BUFFERS) {
576 12 : }
577 53 : return NDR_ERR_SUCCESS;
578 : }
579 :
580 58 : _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 58 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
583 58 : if (ndr_flags & NDR_SCALARS) {
584 58 : NDR_CHECK(ndr_pull_align(ndr, 4));
585 58 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
586 58 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->encryption_type));
587 : {
588 58 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
589 58 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
590 58 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->encrypted_data));
591 58 : ndr->flags = _flags_save_DATA_BLOB;
592 : }
593 58 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
594 : }
595 58 : if (ndr_flags & NDR_BUFFERS) {
596 4 : }
597 58 : 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 40382 : 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 40382 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
720 39188 : return NDR_ERR_SUCCESS;
721 : }
722 :
723 103737 : 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 103737 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
727 103737 : *r = v;
728 103737 : 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 80722 : 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 80722 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
743 80722 : if (ndr_flags & NDR_SCALARS) {
744 40361 : NDR_CHECK(ndr_push_align(ndr, 5));
745 40361 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->samaccountname)));
746 : {
747 40361 : libndr_flags _flags_save_string = ndr->flags;
748 40361 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
749 40361 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->samaccountname));
750 40361 : ndr->flags = _flags_save_string;
751 : }
752 40361 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_dom_sid(r->objectsid, ndr->flags)));
753 40361 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->objectsid));
754 40361 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
755 : }
756 80722 : if (ndr_flags & NDR_BUFFERS) {
757 : {
758 40361 : libndr_flags _flags_save_string = ndr->flags;
759 40361 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
760 40361 : if (r->samaccountname) {
761 40361 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->samaccountname));
762 : {
763 1173 : struct ndr_push *_ndr_samaccountname;
764 40361 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_samaccountname, 0, 2 * strlen_m(r->samaccountname)));
765 40361 : NDR_CHECK(ndr_push_string(_ndr_samaccountname, NDR_SCALARS, r->samaccountname));
766 40361 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_samaccountname, 0, 2 * strlen_m(r->samaccountname)));
767 : }
768 : }
769 40361 : ndr->flags = _flags_save_string;
770 : }
771 40361 : if (r->objectsid) {
772 40361 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->objectsid));
773 : {
774 1173 : struct ndr_push *_ndr_objectsid;
775 40361 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_objectsid, 0, ndr_size_dom_sid(r->objectsid, ndr->flags)));
776 40361 : NDR_CHECK(ndr_push_dom_sid(_ndr_objectsid, NDR_SCALARS, r->objectsid));
777 40361 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_objectsid, 0, ndr_size_dom_sid(r->objectsid, ndr->flags)));
778 : }
779 : }
780 : }
781 78376 : return NDR_ERR_SUCCESS;
782 : }
783 :
784 207448 : 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 207448 : TALLOC_CTX *_mem_save_samaccountname_0 = NULL;
788 5100 : uint16_t _ptr_objectsid;
789 207448 : TALLOC_CTX *_mem_save_objectsid_0 = NULL;
790 207448 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
791 207448 : if (ndr_flags & NDR_SCALARS) {
792 103724 : NDR_CHECK(ndr_pull_align(ndr, 5));
793 103724 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->samaccountname_size));
794 : {
795 103724 : libndr_flags _flags_save_string = ndr->flags;
796 103724 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
797 103724 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_samaccountname));
798 103724 : if (_ptr_samaccountname) {
799 103724 : NDR_PULL_ALLOC(ndr, r->samaccountname);
800 103724 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->samaccountname, _ptr_samaccountname));
801 : } else {
802 0 : r->samaccountname = NULL;
803 : }
804 103724 : ndr->flags = _flags_save_string;
805 : }
806 103724 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->objectsid_size));
807 103724 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_objectsid));
808 103724 : if (_ptr_objectsid) {
809 103724 : NDR_PULL_ALLOC(ndr, r->objectsid);
810 103724 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->objectsid, _ptr_objectsid));
811 : } else {
812 0 : r->objectsid = NULL;
813 : }
814 103724 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
815 : }
816 207448 : if (ndr_flags & NDR_BUFFERS) {
817 : {
818 103724 : libndr_flags _flags_save_string = ndr->flags;
819 103724 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
820 103724 : if (r->samaccountname) {
821 2550 : uint32_t _relative_save_offset;
822 103724 : _relative_save_offset = ndr->offset;
823 103724 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->samaccountname));
824 103724 : _mem_save_samaccountname_0 = NDR_PULL_GET_MEM_CTX(ndr);
825 103724 : NDR_PULL_SET_MEM_CTX(ndr, r->samaccountname, 0);
826 : {
827 2550 : struct ndr_pull *_ndr_samaccountname;
828 103724 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_samaccountname, 0, r->samaccountname_size));
829 103724 : NDR_CHECK(ndr_pull_string(_ndr_samaccountname, NDR_SCALARS, &r->samaccountname));
830 103724 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_samaccountname, 0, r->samaccountname_size));
831 : }
832 103724 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_samaccountname_0, 0);
833 103724 : if (ndr->offset > ndr->relative_highest_offset) {
834 103724 : ndr->relative_highest_offset = ndr->offset;
835 : }
836 103724 : ndr->offset = _relative_save_offset;
837 : }
838 103724 : ndr->flags = _flags_save_string;
839 : }
840 103724 : if (r->objectsid) {
841 2550 : uint32_t _relative_save_offset;
842 103724 : _relative_save_offset = ndr->offset;
843 103724 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->objectsid));
844 103724 : _mem_save_objectsid_0 = NDR_PULL_GET_MEM_CTX(ndr);
845 103724 : NDR_PULL_SET_MEM_CTX(ndr, r->objectsid, 0);
846 : {
847 2550 : struct ndr_pull *_ndr_objectsid;
848 103724 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_objectsid, 0, r->objectsid_size));
849 103724 : NDR_CHECK(ndr_pull_dom_sid(_ndr_objectsid, NDR_SCALARS, r->objectsid));
850 103724 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_objectsid, 0, r->objectsid_size));
851 : }
852 103724 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objectsid_0, 0);
853 103724 : if (ndr->offset > ndr->relative_highest_offset) {
854 103724 : ndr->relative_highest_offset = ndr->offset;
855 : }
856 103724 : ndr->offset = _relative_save_offset;
857 : }
858 : }
859 202348 : 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 80764 : 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 80764 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
893 80764 : if (ndr_flags & NDR_SCALARS) {
894 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
895 40382 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
896 40382 : NDR_CHECK(ndr_push_union_align(ndr, 5));
897 40382 : switch (level) {
898 40361 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID: {
899 40361 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_SCALARS, &r->sam_name_and_sid));
900 39188 : break; }
901 :
902 0 : default: {
903 0 : break; }
904 :
905 : }
906 : }
907 80764 : if (ndr_flags & NDR_BUFFERS) {
908 40382 : if (!(ndr_flags & NDR_SCALARS)) {
909 : /* We didn't get it above, and the token is not needed after this. */
910 40382 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
911 : }
912 40382 : switch (level) {
913 40361 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
914 40361 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_BUFFERS, &r->sam_name_and_sid));
915 39188 : break;
916 :
917 0 : default:
918 0 : break;
919 :
920 : }
921 : }
922 78376 : return NDR_ERR_SUCCESS;
923 : }
924 :
925 207474 : 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 207474 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
929 207474 : if (ndr_flags & NDR_SCALARS) {
930 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
931 103737 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
932 103737 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
933 103737 : switch (level) {
934 103724 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID: {
935 103724 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_SCALARS, &r->sam_name_and_sid));
936 101174 : break; }
937 :
938 0 : default: {
939 0 : break; }
940 :
941 : }
942 : }
943 207474 : if (ndr_flags & NDR_BUFFERS) {
944 103737 : if (!(ndr_flags & NDR_SCALARS)) {
945 : /* We didn't get it above, and the token is not needed after this. */
946 103737 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
947 : }
948 103737 : switch (level) {
949 103724 : case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
950 103724 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_BUFFERS, &r->sam_name_and_sid));
951 101174 : break;
952 :
953 0 : default:
954 0 : break;
955 :
956 : }
957 : }
958 202348 : 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 80764 : 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 80764 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
980 80764 : if (ndr_flags & NDR_SCALARS) {
981 40382 : NDR_CHECK(ndr_push_align(ndr, 5));
982 40382 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->upn_name)));
983 : {
984 40382 : libndr_flags _flags_save_string = ndr->flags;
985 40382 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
986 40382 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->upn_name));
987 40382 : ndr->flags = _flags_save_string;
988 : }
989 40382 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->dns_domain_name)));
990 : {
991 40382 : libndr_flags _flags_save_string = ndr->flags;
992 40382 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
993 40382 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->dns_domain_name));
994 40382 : ndr->flags = _flags_save_string;
995 : }
996 41576 : NDR_CHECK(ndr_push_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, r->flags));
997 40382 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
998 40382 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_EX(ndr, NDR_SCALARS, &r->ex));
999 40382 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1000 : }
1001 80764 : if (ndr_flags & NDR_BUFFERS) {
1002 : {
1003 40382 : libndr_flags _flags_save_string = ndr->flags;
1004 40382 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1005 40382 : if (r->upn_name) {
1006 40382 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->upn_name));
1007 : {
1008 1194 : struct ndr_push *_ndr_upn_name;
1009 40382 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
1010 40382 : NDR_CHECK(ndr_push_string(_ndr_upn_name, NDR_SCALARS, r->upn_name));
1011 40382 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
1012 : }
1013 : }
1014 40382 : ndr->flags = _flags_save_string;
1015 : }
1016 : {
1017 40382 : libndr_flags _flags_save_string = ndr->flags;
1018 40382 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1019 40382 : if (r->dns_domain_name) {
1020 40382 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->dns_domain_name));
1021 : {
1022 1194 : struct ndr_push *_ndr_dns_domain_name;
1023 40382 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
1024 40382 : NDR_CHECK(ndr_push_string(_ndr_dns_domain_name, NDR_SCALARS, r->dns_domain_name));
1025 40382 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
1026 : }
1027 : }
1028 40382 : ndr->flags = _flags_save_string;
1029 : }
1030 40382 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
1031 40382 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_EX(ndr, NDR_BUFFERS, &r->ex));
1032 : }
1033 78376 : return NDR_ERR_SUCCESS;
1034 : }
1035 :
1036 207474 : 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 207474 : TALLOC_CTX *_mem_save_upn_name_0 = NULL;
1040 5126 : uint16_t _ptr_dns_domain_name;
1041 207474 : TALLOC_CTX *_mem_save_dns_domain_name_0 = NULL;
1042 207474 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1043 207474 : if (ndr_flags & NDR_SCALARS) {
1044 103737 : NDR_CHECK(ndr_pull_align(ndr, 5));
1045 103737 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->upn_name_size));
1046 : {
1047 103737 : libndr_flags _flags_save_string = ndr->flags;
1048 103737 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1049 103737 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_upn_name));
1050 103737 : if (_ptr_upn_name) {
1051 103737 : NDR_PULL_ALLOC(ndr, r->upn_name);
1052 103737 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->upn_name, _ptr_upn_name));
1053 : } else {
1054 0 : r->upn_name = NULL;
1055 : }
1056 103737 : ndr->flags = _flags_save_string;
1057 : }
1058 103737 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dns_domain_name_size));
1059 : {
1060 103737 : libndr_flags _flags_save_string = ndr->flags;
1061 103737 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1062 103737 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_dns_domain_name));
1063 103737 : if (_ptr_dns_domain_name) {
1064 103737 : NDR_PULL_ALLOC(ndr, r->dns_domain_name);
1065 103737 : 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 103737 : ndr->flags = _flags_save_string;
1070 : }
1071 106300 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, &r->flags));
1072 103737 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
1073 103737 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_EX(ndr, NDR_SCALARS, &r->ex));
1074 103737 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1075 : }
1076 207474 : if (ndr_flags & NDR_BUFFERS) {
1077 : {
1078 103737 : libndr_flags _flags_save_string = ndr->flags;
1079 103737 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1080 103737 : if (r->upn_name) {
1081 2563 : uint32_t _relative_save_offset;
1082 103737 : _relative_save_offset = ndr->offset;
1083 103737 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->upn_name));
1084 103737 : _mem_save_upn_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1085 103737 : NDR_PULL_SET_MEM_CTX(ndr, r->upn_name, 0);
1086 : {
1087 2563 : struct ndr_pull *_ndr_upn_name;
1088 103737 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_upn_name, 0, r->upn_name_size));
1089 103737 : NDR_CHECK(ndr_pull_string(_ndr_upn_name, NDR_SCALARS, &r->upn_name));
1090 103737 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_upn_name, 0, r->upn_name_size));
1091 : }
1092 103737 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_upn_name_0, 0);
1093 103737 : if (ndr->offset > ndr->relative_highest_offset) {
1094 103737 : ndr->relative_highest_offset = ndr->offset;
1095 : }
1096 103737 : ndr->offset = _relative_save_offset;
1097 : }
1098 103737 : ndr->flags = _flags_save_string;
1099 : }
1100 : {
1101 103737 : libndr_flags _flags_save_string = ndr->flags;
1102 103737 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
1103 103737 : if (r->dns_domain_name) {
1104 2563 : uint32_t _relative_save_offset;
1105 103737 : _relative_save_offset = ndr->offset;
1106 103737 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dns_domain_name));
1107 103737 : _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1108 103737 : NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
1109 : {
1110 2563 : struct ndr_pull *_ndr_dns_domain_name;
1111 103737 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_dns_domain_name, 0, r->dns_domain_name_size));
1112 103737 : NDR_CHECK(ndr_pull_string(_ndr_dns_domain_name, NDR_SCALARS, &r->dns_domain_name));
1113 103737 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_dns_domain_name, 0, r->dns_domain_name_size));
1114 : }
1115 103737 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
1116 103737 : if (ndr->offset > ndr->relative_highest_offset) {
1117 103737 : ndr->relative_highest_offset = ndr->offset;
1118 : }
1119 103737 : ndr->offset = _relative_save_offset;
1120 : }
1121 103737 : ndr->flags = _flags_save_string;
1122 : }
1123 103737 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
1124 103737 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_EX(ndr, NDR_BUFFERS, &r->ex));
1125 : }
1126 202348 : 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 35190 : 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 35190 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1167 34020 : return NDR_ERR_SUCCESS;
1168 : }
1169 :
1170 25019 : 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 25019 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1174 25019 : *r = v;
1175 25019 : 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 35190 : 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 35190 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1190 35190 : if (ndr_flags & NDR_SCALARS) {
1191 35190 : NDR_CHECK(ndr_push_align(ndr, 4));
1192 35190 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags_length));
1193 36360 : NDR_CHECK(ndr_push_PAC_ATTRIBUTE_INFO_FLAGS(ndr, NDR_SCALARS, r->flags));
1194 35190 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1195 : }
1196 35190 : if (ndr_flags & NDR_BUFFERS) {
1197 1170 : }
1198 35190 : return NDR_ERR_SUCCESS;
1199 : }
1200 :
1201 25019 : 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 25019 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1204 25019 : if (ndr_flags & NDR_SCALARS) {
1205 25019 : NDR_CHECK(ndr_pull_align(ndr, 4));
1206 25019 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags_length));
1207 25651 : NDR_CHECK(ndr_pull_PAC_ATTRIBUTE_INFO_FLAGS(ndr, NDR_SCALARS, &r->flags));
1208 25019 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1209 : }
1210 25019 : if (ndr_flags & NDR_BUFFERS) {
1211 632 : }
1212 25019 : 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 35184 : 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 35184 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1228 35184 : if (ndr_flags & NDR_SCALARS) {
1229 35184 : NDR_CHECK(ndr_push_align(ndr, 4));
1230 35184 : NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
1231 35184 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1232 : }
1233 35184 : if (ndr_flags & NDR_BUFFERS) {
1234 1170 : }
1235 35184 : return NDR_ERR_SUCCESS;
1236 : }
1237 :
1238 53957 : 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 53957 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1241 53957 : if (ndr_flags & NDR_SCALARS) {
1242 53957 : NDR_CHECK(ndr_pull_align(ndr, 4));
1243 53957 : NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
1244 53957 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1245 : }
1246 53957 : if (ndr_flags & NDR_BUFFERS) {
1247 1667 : }
1248 53957 : 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 87769 : _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 87769 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1263 87769 : if (ndr_flags & NDR_SCALARS) {
1264 87769 : NDR_CHECK(ndr_push_align(ndr, 5));
1265 87769 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
1266 87769 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1267 : }
1268 87769 : if (ndr_flags & NDR_BUFFERS) {
1269 87769 : if (r->info) {
1270 87769 : NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1271 : }
1272 : }
1273 84899 : return NDR_ERR_SUCCESS;
1274 : }
1275 :
1276 104300 : _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 104300 : TALLOC_CTX *_mem_save_info_0 = NULL;
1280 104300 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1281 104300 : if (ndr_flags & NDR_SCALARS) {
1282 104300 : NDR_CHECK(ndr_pull_align(ndr, 5));
1283 104300 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
1284 104300 : if (_ptr_info) {
1285 104300 : NDR_PULL_ALLOC(ndr, r->info);
1286 : } else {
1287 0 : r->info = NULL;
1288 : }
1289 104300 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1290 : }
1291 104300 : if (ndr_flags & NDR_BUFFERS) {
1292 104300 : if (r->info) {
1293 104300 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1294 104300 : NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
1295 104300 : NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1296 104300 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
1297 : }
1298 : }
1299 101728 : 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 361 : 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 361 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1387 361 : if (ndr_flags & NDR_SCALARS) {
1388 361 : NDR_CHECK(ndr_push_align(ndr, 5));
1389 361 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1390 361 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1391 361 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1392 361 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1393 361 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sid_count));
1394 361 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1395 361 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->domain_group_count));
1396 361 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_groups));
1397 361 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1398 : }
1399 361 : if (ndr_flags & NDR_BUFFERS) {
1400 361 : if (r->domain_sid) {
1401 361 : NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1402 : }
1403 361 : NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1404 361 : if (r->sids) {
1405 359 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sid_count));
1406 1039 : for (cntr_sids_1 = 0; cntr_sids_1 < (r->sid_count); cntr_sids_1++) {
1407 680 : NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1408 : }
1409 1039 : for (cntr_sids_1 = 0; cntr_sids_1 < (r->sid_count); cntr_sids_1++) {
1410 680 : NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1411 : }
1412 : }
1413 361 : if (r->domain_groups) {
1414 60 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->domain_group_count));
1415 140 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (r->domain_group_count); cntr_domain_groups_1++) {
1416 80 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->domain_groups[cntr_domain_groups_1]));
1417 : }
1418 140 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (r->domain_group_count); cntr_domain_groups_1++) {
1419 80 : NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->domain_groups[cntr_domain_groups_1]));
1420 : }
1421 : }
1422 : }
1423 361 : return NDR_ERR_SUCCESS;
1424 : }
1425 :
1426 136 : 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 136 : TALLOC_CTX *_mem_save_domain_sid_0 = NULL;
1430 0 : uint32_t _ptr_sids;
1431 136 : uint32_t size_sids_1 = 0;
1432 0 : uint32_t cntr_sids_1;
1433 136 : TALLOC_CTX *_mem_save_sids_0 = NULL;
1434 136 : TALLOC_CTX *_mem_save_sids_1 = NULL;
1435 0 : uint32_t _ptr_domain_groups;
1436 136 : uint32_t size_domain_groups_1 = 0;
1437 0 : uint32_t cntr_domain_groups_1;
1438 136 : TALLOC_CTX *_mem_save_domain_groups_0 = NULL;
1439 136 : TALLOC_CTX *_mem_save_domain_groups_1 = NULL;
1440 136 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1441 136 : if (ndr_flags & NDR_SCALARS) {
1442 136 : NDR_CHECK(ndr_pull_align(ndr, 5));
1443 136 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1444 136 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1445 136 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1446 136 : if (_ptr_domain_sid) {
1447 136 : NDR_PULL_ALLOC(ndr, r->domain_sid);
1448 : } else {
1449 0 : r->domain_sid = NULL;
1450 : }
1451 136 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1452 136 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_count));
1453 136 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1454 136 : if (_ptr_sids) {
1455 132 : NDR_PULL_ALLOC(ndr, r->sids);
1456 : } else {
1457 4 : r->sids = NULL;
1458 : }
1459 136 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->domain_group_count));
1460 136 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_groups));
1461 136 : if (_ptr_domain_groups) {
1462 104 : NDR_PULL_ALLOC(ndr, r->domain_groups);
1463 : } else {
1464 32 : r->domain_groups = NULL;
1465 : }
1466 136 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1467 : }
1468 136 : if (ndr_flags & NDR_BUFFERS) {
1469 136 : if (r->domain_sid) {
1470 136 : _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1471 136 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1472 136 : NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1473 136 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1474 : }
1475 136 : NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1476 136 : if (r->sids) {
1477 132 : _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1478 132 : NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1479 132 : NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1480 132 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->sids, &size_sids_1));
1481 132 : NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1);
1482 132 : _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1483 132 : NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1484 326 : for (cntr_sids_1 = 0; cntr_sids_1 < (size_sids_1); cntr_sids_1++) {
1485 194 : NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1486 : }
1487 326 : for (cntr_sids_1 = 0; cntr_sids_1 < (size_sids_1); cntr_sids_1++) {
1488 194 : NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1489 : }
1490 132 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1491 132 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1492 : }
1493 136 : if (r->domain_groups) {
1494 104 : _mem_save_domain_groups_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495 104 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_groups, 0);
1496 104 : NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_groups));
1497 104 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->domain_groups, &size_domain_groups_1));
1498 104 : NDR_PULL_ALLOC_N(ndr, r->domain_groups, size_domain_groups_1);
1499 104 : _mem_save_domain_groups_1 = NDR_PULL_GET_MEM_CTX(ndr);
1500 104 : NDR_PULL_SET_MEM_CTX(ndr, r->domain_groups, 0);
1501 246 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (size_domain_groups_1); cntr_domain_groups_1++) {
1502 142 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->domain_groups[cntr_domain_groups_1]));
1503 : }
1504 246 : for (cntr_domain_groups_1 = 0; cntr_domain_groups_1 < (size_domain_groups_1); cntr_domain_groups_1++) {
1505 142 : NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->domain_groups[cntr_domain_groups_1]));
1506 : }
1507 104 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_groups_1, 0);
1508 104 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_groups_0, 0);
1509 : }
1510 136 : if (r->sids) {
1511 132 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sid_count));
1512 : }
1513 330 : for (cntr_sids_1 = 0; cntr_sids_1 < (size_sids_1); cntr_sids_1++) {
1514 0 : }
1515 136 : if (r->domain_groups) {
1516 104 : 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 136 : 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 361 : 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 361 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1570 361 : if (ndr_flags & NDR_SCALARS) {
1571 361 : NDR_CHECK(ndr_push_align(ndr, 5));
1572 361 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
1573 361 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1574 : }
1575 361 : if (ndr_flags & NDR_BUFFERS) {
1576 361 : if (r->info) {
1577 361 : NDR_CHECK(ndr_push_PAC_DEVICE_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1578 : }
1579 : }
1580 361 : return NDR_ERR_SUCCESS;
1581 : }
1582 :
1583 136 : 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 136 : TALLOC_CTX *_mem_save_info_0 = NULL;
1587 136 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1588 136 : if (ndr_flags & NDR_SCALARS) {
1589 136 : NDR_CHECK(ndr_pull_align(ndr, 5));
1590 136 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
1591 136 : if (_ptr_info) {
1592 136 : NDR_PULL_ALLOC(ndr, r->info);
1593 : } else {
1594 0 : r->info = NULL;
1595 : }
1596 136 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1597 : }
1598 136 : if (ndr_flags & NDR_BUFFERS) {
1599 136 : if (r->info) {
1600 136 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1601 136 : NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
1602 136 : NDR_CHECK(ndr_pull_PAC_DEVICE_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
1603 136 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
1604 : }
1605 : }
1606 136 : 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 156813 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_TYPE(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum PAC_TYPE r)
1624 : {
1625 156813 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1626 156660 : return NDR_ERR_SUCCESS;
1627 : }
1628 :
1629 270837 : _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 270837 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1633 270837 : *r = v;
1634 270837 : 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 140403 : 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 140403 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1663 140403 : if (ndr_flags & NDR_SCALARS) {
1664 140403 : NDR_CHECK(ndr_push_align(ndr, 4));
1665 : {
1666 140403 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1667 140403 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1668 140403 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
1669 140403 : ndr->flags = _flags_save_DATA_BLOB;
1670 : }
1671 140403 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1672 : }
1673 140403 : if (ndr_flags & NDR_BUFFERS) {
1674 82 : }
1675 140403 : return NDR_ERR_SUCCESS;
1676 : }
1677 :
1678 119748 : 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 119748 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1681 119748 : if (ndr_flags & NDR_SCALARS) {
1682 119748 : NDR_CHECK(ndr_pull_align(ndr, 4));
1683 : {
1684 119748 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1685 119748 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1686 119748 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
1687 119748 : ndr->flags = _flags_save_DATA_BLOB;
1688 : }
1689 119748 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1690 : }
1691 119748 : if (ndr_flags & NDR_BUFFERS) {
1692 99 : }
1693 119748 : 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 242481 : _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 242481 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1714 242481 : if (ndr_flags & NDR_SCALARS) {
1715 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
1716 242481 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
1717 242481 : NDR_CHECK(ndr_push_union_align(ndr, 5));
1718 242481 : switch (level) {
1719 87769 : case PAC_TYPE_LOGON_INFO: {
1720 : {
1721 2870 : struct ndr_push *_ndr_logon_info;
1722 87769 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
1723 87769 : NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
1724 87769 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
1725 : }
1726 87769 : 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 9900 : case PAC_TYPE_SRV_CHECKSUM: {
1733 9900 : NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
1734 9858 : break; }
1735 :
1736 9879 : case PAC_TYPE_KDC_CHECKSUM: {
1737 9879 : NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
1738 9837 : break; }
1739 :
1740 9930 : case PAC_TYPE_LOGON_NAME: {
1741 9930 : NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
1742 9888 : 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 40382 : case PAC_TYPE_UPN_DNS_INFO: {
1754 40382 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
1755 39188 : 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 35190 : case PAC_TYPE_ATTRIBUTES_INFO: {
1762 35190 : NDR_CHECK(ndr_push_PAC_ATTRIBUTES_INFO(ndr, NDR_SCALARS, &r->attributes_info));
1763 34020 : break; }
1764 :
1765 35184 : case PAC_TYPE_REQUESTER_SID: {
1766 35184 : NDR_CHECK(ndr_push_PAC_REQUESTER_SID(ndr, NDR_SCALARS, &r->requester_sid));
1767 34014 : break; }
1768 :
1769 9786 : case PAC_TYPE_CLIENT_CLAIMS_INFO: {
1770 : {
1771 0 : struct ndr_push *_ndr_client_claims_info;
1772 9786 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_client_claims_info, 0, -1));
1773 9786 : NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_client_claims_info, NDR_SCALARS, &r->client_claims_info));
1774 9786 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_client_claims_info, 0, -1));
1775 : }
1776 9786 : break; }
1777 :
1778 361 : case PAC_TYPE_DEVICE_INFO: {
1779 : {
1780 0 : struct ndr_push *_ndr_device_info;
1781 361 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_device_info, 0xFFFFFC01, -1));
1782 361 : NDR_CHECK(ndr_push_PAC_DEVICE_INFO_CTR(_ndr_device_info, NDR_SCALARS|NDR_BUFFERS, &r->device_info));
1783 361 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_device_info, 0xFFFFFC01, -1));
1784 : }
1785 361 : 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 242481 : if (ndr_flags & NDR_BUFFERS) {
1812 242481 : 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 242481 : switch (level) {
1817 84899 : case PAC_TYPE_LOGON_INFO:
1818 84899 : break;
1819 :
1820 0 : case PAC_TYPE_CREDENTIAL_INFO:
1821 0 : break;
1822 :
1823 9858 : case PAC_TYPE_SRV_CHECKSUM:
1824 9858 : break;
1825 :
1826 9837 : case PAC_TYPE_KDC_CHECKSUM:
1827 9837 : break;
1828 :
1829 9888 : case PAC_TYPE_LOGON_NAME:
1830 9888 : break;
1831 :
1832 188 : case PAC_TYPE_CONSTRAINED_DELEGATION:
1833 188 : break;
1834 :
1835 40382 : case PAC_TYPE_UPN_DNS_INFO:
1836 40382 : NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
1837 39188 : break;
1838 :
1839 1734 : case PAC_TYPE_TICKET_CHECKSUM:
1840 1734 : break;
1841 :
1842 34020 : case PAC_TYPE_ATTRIBUTES_INFO:
1843 34020 : break;
1844 :
1845 34014 : case PAC_TYPE_REQUESTER_SID:
1846 34014 : break;
1847 :
1848 9786 : case PAC_TYPE_CLIENT_CLAIMS_INFO:
1849 9786 : break;
1850 :
1851 361 : case PAC_TYPE_DEVICE_INFO:
1852 361 : 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 235933 : return NDR_ERR_SUCCESS;
1866 : }
1867 :
1868 405406 : _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 405406 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1872 405406 : if (ndr_flags & NDR_SCALARS) {
1873 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
1874 405406 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
1875 405406 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
1876 405406 : switch (level) {
1877 104300 : case PAC_TYPE_LOGON_INFO: {
1878 : {
1879 2572 : struct ndr_pull *_ndr_logon_info;
1880 104300 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
1881 104300 : NDR_CHECK(ndr_pull_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
1882 104300 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
1883 : }
1884 104300 : break; }
1885 :
1886 58 : case PAC_TYPE_CREDENTIAL_INFO: {
1887 58 : NDR_CHECK(ndr_pull_PAC_CREDENTIAL_INFO(ndr, NDR_SCALARS, &r->credential_info));
1888 54 : break; }
1889 :
1890 23182 : case PAC_TYPE_SRV_CHECKSUM: {
1891 23182 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
1892 23151 : break; }
1893 :
1894 23182 : case PAC_TYPE_KDC_CHECKSUM: {
1895 23182 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
1896 23151 : break; }
1897 :
1898 23182 : case PAC_TYPE_LOGON_NAME: {
1899 23182 : NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
1900 23151 : 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 103737 : case PAC_TYPE_UPN_DNS_INFO: {
1912 103737 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
1913 101174 : break; }
1914 :
1915 12783 : case PAC_TYPE_TICKET_CHECKSUM: {
1916 12783 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->ticket_checksum));
1917 12779 : break; }
1918 :
1919 25019 : case PAC_TYPE_ATTRIBUTES_INFO: {
1920 25019 : NDR_CHECK(ndr_pull_PAC_ATTRIBUTES_INFO(ndr, NDR_SCALARS, &r->attributes_info));
1921 24387 : break; }
1922 :
1923 53957 : case PAC_TYPE_REQUESTER_SID: {
1924 53957 : NDR_CHECK(ndr_pull_PAC_REQUESTER_SID(ndr, NDR_SCALARS, &r->requester_sid));
1925 52290 : break; }
1926 :
1927 22652 : case PAC_TYPE_CLIENT_CLAIMS_INFO: {
1928 : {
1929 9 : struct ndr_pull *_ndr_client_claims_info;
1930 22652 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_client_claims_info, 0, -1));
1931 22652 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_client_claims_info, NDR_SCALARS, &r->client_claims_info));
1932 22652 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_client_claims_info, 0, -1));
1933 : }
1934 22652 : break; }
1935 :
1936 136 : case PAC_TYPE_DEVICE_INFO: {
1937 : {
1938 0 : struct ndr_pull *_ndr_device_info;
1939 136 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_device_info, 0xFFFFFC01, -1));
1940 136 : NDR_CHECK(ndr_pull_PAC_DEVICE_INFO_CTR(_ndr_device_info, NDR_SCALARS|NDR_BUFFERS, &r->device_info));
1941 136 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_device_info, 0xFFFFFC01, -1));
1942 : }
1943 136 : break; }
1944 :
1945 132 : case PAC_TYPE_DEVICE_CLAIMS_INFO: {
1946 : {
1947 0 : struct ndr_pull *_ndr_device_claims_info;
1948 132 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_device_claims_info, 0, -1));
1949 132 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_device_claims_info, NDR_SCALARS, &r->device_claims_info));
1950 132 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_device_claims_info, 0, -1));
1951 : }
1952 132 : break; }
1953 :
1954 12779 : case PAC_TYPE_FULL_CHECKSUM: {
1955 12779 : NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->full_checksum));
1956 12779 : break; }
1957 :
1958 12 : default: {
1959 : {
1960 0 : struct ndr_pull *_ndr_unknown;
1961 12 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_unknown, 0, -1));
1962 12 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
1963 12 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_unknown, 0, -1));
1964 : }
1965 12 : break; }
1966 :
1967 : }
1968 : }
1969 405406 : if (ndr_flags & NDR_BUFFERS) {
1970 405406 : 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 405406 : switch (level) {
1975 101728 : case PAC_TYPE_LOGON_INFO:
1976 101728 : break;
1977 :
1978 54 : case PAC_TYPE_CREDENTIAL_INFO:
1979 54 : break;
1980 :
1981 23151 : case PAC_TYPE_SRV_CHECKSUM:
1982 23151 : break;
1983 :
1984 23151 : case PAC_TYPE_KDC_CHECKSUM:
1985 23151 : break;
1986 :
1987 23151 : case PAC_TYPE_LOGON_NAME:
1988 23151 : break;
1989 :
1990 295 : case PAC_TYPE_CONSTRAINED_DELEGATION:
1991 295 : break;
1992 :
1993 103737 : case PAC_TYPE_UPN_DNS_INFO:
1994 103737 : NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
1995 101174 : break;
1996 :
1997 12779 : case PAC_TYPE_TICKET_CHECKSUM:
1998 12779 : break;
1999 :
2000 24387 : case PAC_TYPE_ATTRIBUTES_INFO:
2001 24387 : break;
2002 :
2003 52290 : case PAC_TYPE_REQUESTER_SID:
2004 52290 : break;
2005 :
2006 22643 : case PAC_TYPE_CLIENT_CLAIMS_INFO:
2007 22643 : break;
2008 :
2009 136 : case PAC_TYPE_DEVICE_INFO:
2010 136 : break;
2011 :
2012 132 : case PAC_TYPE_DEVICE_CLAIMS_INFO:
2013 132 : break;
2014 :
2015 12779 : case PAC_TYPE_FULL_CHECKSUM:
2016 12779 : break;
2017 :
2018 12 : default:
2019 12 : break;
2020 :
2021 : }
2022 : }
2023 397862 : 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 53111 : _PUBLIC_ size_t ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, libndr_flags flags)
2096 : {
2097 53111 : 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 3310 : _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 3310 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2132 3310 : if (ndr_flags & NDR_SCALARS) {
2133 3310 : NDR_CHECK(ndr_push_align(ndr, 5));
2134 3310 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
2135 3310 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2136 29865 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2137 26555 : NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2138 : }
2139 3310 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2140 : }
2141 3310 : if (ndr_flags & NDR_BUFFERS) {
2142 29865 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2143 26555 : NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2144 : }
2145 : }
2146 3296 : return NDR_ERR_SUCCESS;
2147 : }
2148 :
2149 23182 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct PAC_DATA *r)
2150 : {
2151 23182 : uint32_t size_buffers_0 = 0;
2152 31 : uint32_t cntr_buffers_0;
2153 23182 : TALLOC_CTX *_mem_save_buffers_0 = NULL;
2154 23182 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2155 23182 : if (ndr_flags & NDR_SCALARS) {
2156 23182 : NDR_CHECK(ndr_pull_align(ndr, 5));
2157 23182 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
2158 23182 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2159 23182 : size_buffers_0 = r->num_buffers;
2160 23182 : NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
2161 23182 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2162 23182 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2163 197065 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2164 173883 : NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2165 : }
2166 23182 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2167 23182 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2168 : }
2169 23182 : if (ndr_flags & NDR_BUFFERS) {
2170 23182 : size_buffers_0 = r->num_buffers;
2171 23182 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2172 23182 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2173 197065 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2174 173883 : NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2175 : }
2176 23182 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2177 196882 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2178 : }
2179 : }
2180 23151 : 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 260514 : _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 260514 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2208 260514 : if (ndr_flags & NDR_SCALARS) {
2209 130257 : NDR_CHECK(ndr_push_align(ndr, 5));
2210 130257 : NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type));
2211 130257 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ndr_size));
2212 : {
2213 130257 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2214 130257 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2215 130257 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->info));
2216 130257 : ndr->flags = _flags_save_DATA_BLOB_REM;
2217 : }
2218 130257 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2219 130257 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2220 : }
2221 260514 : if (ndr_flags & NDR_BUFFERS) {
2222 : {
2223 130257 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2224 130257 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2225 130257 : if (r->info) {
2226 130257 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info));
2227 : {
2228 82 : struct ndr_push *_ndr_info;
2229 130257 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2230 130257 : NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
2231 130257 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2232 : }
2233 130257 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info));
2234 : }
2235 130257 : ndr->flags = _flags_save_DATA_BLOB_REM;
2236 : }
2237 : }
2238 260350 : return NDR_ERR_SUCCESS;
2239 : }
2240 :
2241 193904 : _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 193904 : TALLOC_CTX *_mem_save_info_0 = NULL;
2245 193904 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2246 193904 : if (ndr_flags & NDR_SCALARS) {
2247 96952 : NDR_CHECK(ndr_pull_align(ndr, 5));
2248 96952 : NDR_CHECK(ndr_pull_PAC_TYPE(ndr, NDR_SCALARS, &r->type));
2249 96952 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ndr_size));
2250 : {
2251 96952 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2252 96952 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2253 96952 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
2254 96952 : if (_ptr_info) {
2255 96952 : NDR_PULL_ALLOC(ndr, r->info);
2256 96952 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->info, _ptr_info));
2257 : } else {
2258 0 : r->info = NULL;
2259 : }
2260 96952 : ndr->flags = _flags_save_DATA_BLOB_REM;
2261 : }
2262 96952 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
2263 96952 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2264 : }
2265 193904 : if (ndr_flags & NDR_BUFFERS) {
2266 : {
2267 96952 : libndr_flags _flags_save_DATA_BLOB_REM = ndr->flags;
2268 96952 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
2269 96952 : if (r->info) {
2270 90 : uint32_t _relative_save_offset;
2271 96952 : _relative_save_offset = ndr->offset;
2272 96952 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->info));
2273 96952 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
2274 96952 : NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
2275 : {
2276 90 : struct ndr_pull *_ndr_info;
2277 96952 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2278 96952 : NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
2279 96952 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
2280 : }
2281 96952 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
2282 96952 : if (ndr->offset > ndr->relative_highest_offset) {
2283 84780 : ndr->relative_highest_offset = ndr->offset;
2284 : }
2285 96952 : ndr->offset = _relative_save_offset;
2286 : }
2287 96952 : ndr->flags = _flags_save_DATA_BLOB_REM;
2288 : }
2289 : }
2290 193724 : 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 17097 : _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 17097 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2324 17097 : if (ndr_flags & NDR_SCALARS) {
2325 17097 : NDR_CHECK(ndr_push_align(ndr, 5));
2326 17097 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
2327 17097 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2328 147354 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2329 130257 : NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2330 : }
2331 17097 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2332 : }
2333 17097 : if (ndr_flags & NDR_BUFFERS) {
2334 147354 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
2335 130257 : NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2336 : }
2337 : }
2338 17080 : return NDR_ERR_SUCCESS;
2339 : }
2340 :
2341 12965 : _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 12965 : uint32_t size_buffers_0 = 0;
2344 18 : uint32_t cntr_buffers_0;
2345 12965 : TALLOC_CTX *_mem_save_buffers_0 = NULL;
2346 12965 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2347 12965 : if (ndr_flags & NDR_SCALARS) {
2348 12965 : NDR_CHECK(ndr_pull_align(ndr, 5));
2349 12965 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
2350 12965 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2351 12965 : size_buffers_0 = r->num_buffers;
2352 12965 : NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
2353 12965 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2354 12965 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2355 109917 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2356 96952 : NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
2357 : }
2358 12965 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2359 12965 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2360 : }
2361 12965 : if (ndr_flags & NDR_BUFFERS) {
2362 12965 : size_buffers_0 = r->num_buffers;
2363 12965 : _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
2364 12965 : NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
2365 109917 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2366 96952 : NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
2367 : }
2368 12965 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
2369 109827 : for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
2370 : }
2371 : }
2372 12947 : 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 868 : _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 868 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2467 868 : if (ndr_flags & NDR_SCALARS) {
2468 868 : NDR_CHECK(ndr_push_align(ndr, 5));
2469 868 : NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2470 868 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
2471 868 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2472 : }
2473 868 : if (ndr_flags & NDR_BUFFERS) {
2474 868 : NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
2475 : }
2476 868 : return NDR_ERR_SUCCESS;
2477 : }
2478 :
2479 89664 : _PUBLIC_ enum ndr_err_code ndr_pull_netsamlogoncache_entry(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct netsamlogoncache_entry *r)
2480 : {
2481 89664 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2482 89664 : if (ndr_flags & NDR_SCALARS) {
2483 89664 : NDR_CHECK(ndr_pull_align(ndr, 5));
2484 89664 : NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2485 89664 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
2486 89664 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2487 : }
2488 89664 : if (ndr_flags & NDR_BUFFERS) {
2489 89664 : NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
2490 : }
2491 89664 : 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 */
|