Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/source3/librpc/gen_ndr/ndr_secrets.h"
5 :
6 : #include "librpc/gen_ndr/ndr_misc.h"
7 : #include "librpc/gen_ndr/ndr_samr.h"
8 : #include "librpc/gen_ndr/ndr_lsa.h"
9 : #include "librpc/gen_ndr/ndr_netlogon.h"
10 : #include "librpc/gen_ndr/ndr_security.h"
11 0 : _PUBLIC_ enum ndr_err_code ndr_push_TRUSTED_DOM_PASS(struct ndr_push *ndr, int ndr_flags, const struct TRUSTED_DOM_PASS *r)
12 : {
13 : {
14 0 : uint32_t _flags_save_STRUCT = ndr->flags;
15 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
16 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17 0 : if (ndr_flags & NDR_SCALARS) {
18 0 : NDR_CHECK(ndr_push_align(ndr, 4));
19 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->uni_name)));
20 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->uni_name, 32, sizeof(uint16_t), CH_UTF16));
21 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen(r->pass)));
22 : {
23 0 : uint32_t _flags_save_string = ndr->flags;
24 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
25 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pass));
26 0 : ndr->flags = _flags_save_string;
27 : }
28 0 : NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->mod_time));
29 0 : NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->domain_sid));
30 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
31 : }
32 0 : if (ndr_flags & NDR_BUFFERS) {
33 : }
34 0 : ndr->flags = _flags_save_STRUCT;
35 : }
36 0 : return NDR_ERR_SUCCESS;
37 : }
38 :
39 0 : _PUBLIC_ enum ndr_err_code ndr_pull_TRUSTED_DOM_PASS(struct ndr_pull *ndr, int ndr_flags, struct TRUSTED_DOM_PASS *r)
40 : {
41 0 : uint32_t size_uni_name_0 = 0;
42 : {
43 0 : uint32_t _flags_save_STRUCT = ndr->flags;
44 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
45 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
46 0 : if (ndr_flags & NDR_SCALARS) {
47 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
48 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->uni_name_len));
49 0 : size_uni_name_0 = 32;
50 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->uni_name, size_uni_name_0, sizeof(uint16_t), CH_UTF16));
51 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pass_len));
52 : {
53 0 : uint32_t _flags_save_string = ndr->flags;
54 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
55 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pass));
56 0 : ndr->flags = _flags_save_string;
57 : }
58 0 : NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->mod_time));
59 0 : NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->domain_sid));
60 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
61 : }
62 0 : if (ndr_flags & NDR_BUFFERS) {
63 : }
64 0 : ndr->flags = _flags_save_STRUCT;
65 : }
66 0 : return NDR_ERR_SUCCESS;
67 : }
68 :
69 0 : static void ndr_print_flags_TRUSTED_DOM_PASS(struct ndr_print *ndr, const char *name, int unused, const struct TRUSTED_DOM_PASS *r)
70 : {
71 0 : ndr_print_TRUSTED_DOM_PASS(ndr, name, r);
72 0 : }
73 :
74 0 : _PUBLIC_ void ndr_print_TRUSTED_DOM_PASS(struct ndr_print *ndr, const char *name, const struct TRUSTED_DOM_PASS *r)
75 : {
76 0 : ndr_print_struct(ndr, name, "TRUSTED_DOM_PASS");
77 0 : if (r == NULL) { ndr_print_null(ndr); return; }
78 : {
79 0 : uint32_t _flags_save_STRUCT = ndr->flags;
80 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
81 0 : ndr->depth++;
82 0 : ndr_print_uint32(ndr, "uni_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->uni_name):r->uni_name_len);
83 0 : ndr_print_string(ndr, "uni_name", r->uni_name);
84 0 : ndr_print_uint32(ndr, "pass_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->pass):r->pass_len);
85 : {
86 0 : uint32_t _flags_save_string = ndr->flags;
87 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
88 0 : ndr_print_string(ndr, "pass", r->pass);
89 0 : ndr->flags = _flags_save_string;
90 : }
91 0 : ndr_print_time_t(ndr, "mod_time", r->mod_time);
92 0 : ndr_print_dom_sid(ndr, "domain_sid", &r->domain_sid);
93 0 : ndr->depth--;
94 0 : ndr->flags = _flags_save_STRUCT;
95 : }
96 : }
97 :
98 80 : _PUBLIC_ enum ndr_err_code ndr_push_lsa_secret(struct ndr_push *ndr, int ndr_flags, const struct lsa_secret *r)
99 : {
100 80 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
101 80 : if (ndr_flags & NDR_SCALARS) {
102 80 : NDR_CHECK(ndr_push_align(ndr, 5));
103 80 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret_current));
104 80 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->secret_current_lastchange));
105 80 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret_old));
106 80 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->secret_old_lastchange));
107 80 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
108 80 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
109 : }
110 80 : if (ndr_flags & NDR_BUFFERS) {
111 80 : if (r->secret_current) {
112 32 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->secret_current));
113 : }
114 80 : if (r->secret_old) {
115 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->secret_old));
116 : }
117 80 : if (r->sd) {
118 80 : NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
119 : }
120 : }
121 80 : return NDR_ERR_SUCCESS;
122 : }
123 :
124 112 : _PUBLIC_ enum ndr_err_code ndr_pull_lsa_secret(struct ndr_pull *ndr, int ndr_flags, struct lsa_secret *r)
125 : {
126 : uint32_t _ptr_secret_current;
127 112 : TALLOC_CTX *_mem_save_secret_current_0 = NULL;
128 : uint32_t _ptr_secret_old;
129 112 : TALLOC_CTX *_mem_save_secret_old_0 = NULL;
130 : uint32_t _ptr_sd;
131 112 : TALLOC_CTX *_mem_save_sd_0 = NULL;
132 112 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
133 112 : if (ndr_flags & NDR_SCALARS) {
134 112 : NDR_CHECK(ndr_pull_align(ndr, 5));
135 112 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret_current));
136 112 : if (_ptr_secret_current) {
137 64 : NDR_PULL_ALLOC(ndr, r->secret_current);
138 : } else {
139 48 : r->secret_current = NULL;
140 : }
141 112 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->secret_current_lastchange));
142 112 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret_old));
143 112 : if (_ptr_secret_old) {
144 0 : NDR_PULL_ALLOC(ndr, r->secret_old);
145 : } else {
146 112 : r->secret_old = NULL;
147 : }
148 112 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->secret_old_lastchange));
149 112 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
150 112 : if (_ptr_sd) {
151 112 : NDR_PULL_ALLOC(ndr, r->sd);
152 : } else {
153 0 : r->sd = NULL;
154 : }
155 112 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
156 : }
157 112 : if (ndr_flags & NDR_BUFFERS) {
158 112 : if (r->secret_current) {
159 64 : _mem_save_secret_current_0 = NDR_PULL_GET_MEM_CTX(ndr);
160 64 : NDR_PULL_SET_MEM_CTX(ndr, r->secret_current, 0);
161 64 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->secret_current));
162 64 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_current_0, 0);
163 : }
164 112 : if (r->secret_old) {
165 0 : _mem_save_secret_old_0 = NDR_PULL_GET_MEM_CTX(ndr);
166 0 : NDR_PULL_SET_MEM_CTX(ndr, r->secret_old, 0);
167 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->secret_old));
168 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_old_0, 0);
169 : }
170 112 : if (r->sd) {
171 112 : _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
172 112 : NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
173 112 : NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
174 112 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
175 : }
176 : }
177 112 : return NDR_ERR_SUCCESS;
178 : }
179 :
180 0 : static void ndr_print_flags_lsa_secret(struct ndr_print *ndr, const char *name, int unused, const struct lsa_secret *r)
181 : {
182 0 : ndr_print_lsa_secret(ndr, name, r);
183 0 : }
184 :
185 0 : _PUBLIC_ void ndr_print_lsa_secret(struct ndr_print *ndr, const char *name, const struct lsa_secret *r)
186 : {
187 0 : ndr_print_struct(ndr, name, "lsa_secret");
188 0 : if (r == NULL) { ndr_print_null(ndr); return; }
189 0 : ndr->depth++;
190 0 : ndr_print_ptr(ndr, "secret_current", r->secret_current);
191 0 : ndr->depth++;
192 0 : if (r->secret_current) {
193 0 : ndr_print_DATA_BLOB(ndr, "secret_current", *r->secret_current);
194 : }
195 0 : ndr->depth--;
196 0 : ndr_print_NTTIME(ndr, "secret_current_lastchange", r->secret_current_lastchange);
197 0 : ndr_print_ptr(ndr, "secret_old", r->secret_old);
198 0 : ndr->depth++;
199 0 : if (r->secret_old) {
200 0 : ndr_print_DATA_BLOB(ndr, "secret_old", *r->secret_old);
201 : }
202 0 : ndr->depth--;
203 0 : ndr_print_NTTIME(ndr, "secret_old_lastchange", r->secret_old_lastchange);
204 0 : ndr_print_ptr(ndr, "sd", r->sd);
205 0 : ndr->depth++;
206 0 : if (r->sd) {
207 0 : ndr_print_security_descriptor(ndr, "sd", r->sd);
208 : }
209 0 : ndr->depth--;
210 0 : ndr->depth--;
211 : }
212 :
213 285 : static enum ndr_err_code ndr_push_secrets_domain_info1_kerberos_key(struct ndr_push *ndr, int ndr_flags, const struct secrets_domain_info1_kerberos_key *r)
214 : {
215 285 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
216 285 : if (ndr_flags & NDR_SCALARS) {
217 285 : NDR_CHECK(ndr_push_align(ndr, 4));
218 285 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->keytype));
219 285 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iteration_count));
220 : {
221 285 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
222 285 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
223 285 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->value));
224 285 : ndr->flags = _flags_save_DATA_BLOB;
225 : }
226 285 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
227 : }
228 285 : if (ndr_flags & NDR_BUFFERS) {
229 : }
230 285 : return NDR_ERR_SUCCESS;
231 : }
232 :
233 16128 : static enum ndr_err_code ndr_pull_secrets_domain_info1_kerberos_key(struct ndr_pull *ndr, int ndr_flags, struct secrets_domain_info1_kerberos_key *r)
234 : {
235 16128 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
236 16128 : if (ndr_flags & NDR_SCALARS) {
237 16128 : NDR_CHECK(ndr_pull_align(ndr, 4));
238 16128 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->keytype));
239 16128 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iteration_count));
240 : {
241 16128 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
242 16128 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
243 16128 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->value));
244 16128 : ndr->flags = _flags_save_DATA_BLOB;
245 : }
246 16128 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
247 : }
248 16128 : if (ndr_flags & NDR_BUFFERS) {
249 : }
250 16128 : return NDR_ERR_SUCCESS;
251 : }
252 :
253 300 : _PUBLIC_ void ndr_print_secrets_domain_info1_kerberos_key(struct ndr_print *ndr, const char *name, const struct secrets_domain_info1_kerberos_key *r)
254 : {
255 300 : ndr_print_struct(ndr, name, "secrets_domain_info1_kerberos_key");
256 300 : if (r == NULL) { ndr_print_null(ndr); return; }
257 300 : ndr->depth++;
258 300 : ndr_print_uint32(ndr, "keytype", r->keytype);
259 300 : ndr_print_uint32(ndr, "iteration_count", r->iteration_count);
260 : {
261 300 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
262 300 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
263 300 : ndr_print_DATA_BLOB(ndr, "value", r->value);
264 300 : ndr->flags = _flags_save_DATA_BLOB;
265 : }
266 300 : ndr->depth--;
267 : }
268 :
269 117 : static enum ndr_err_code ndr_push_secrets_domain_info1_password(struct ndr_push *ndr, int ndr_flags, const struct secrets_domain_info1_password *r)
270 : {
271 : uint32_t cntr_keys_0;
272 117 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
273 117 : if (ndr_flags & NDR_SCALARS) {
274 117 : NDR_CHECK(ndr_push_align(ndr, 5));
275 117 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
276 117 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->change_server, CH_UTF16)));
277 117 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
278 117 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->change_server, CH_UTF16)));
279 117 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->change_server, ndr_charset_length(r->change_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
280 : {
281 117 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
282 117 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
283 117 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->cleartext_blob));
284 117 : ndr->flags = _flags_save_DATA_BLOB;
285 : }
286 : {
287 117 : uint32_t _flags_save_samr_Password = ndr->flags;
288 117 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
289 117 : NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_hash));
290 117 : ndr->flags = _flags_save_samr_Password;
291 : }
292 117 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->salt_data));
293 117 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->default_iteration_count));
294 117 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_keys));
295 402 : for (cntr_keys_0 = 0; cntr_keys_0 < (r->num_keys); cntr_keys_0++) {
296 285 : NDR_CHECK(ndr_push_secrets_domain_info1_kerberos_key(ndr, NDR_SCALARS, &r->keys[cntr_keys_0]));
297 : }
298 117 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
299 : }
300 117 : if (ndr_flags & NDR_BUFFERS) {
301 117 : if (r->salt_data) {
302 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_data, CH_UTF16)));
303 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
304 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_data, CH_UTF16)));
305 84 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->salt_data, ndr_charset_length(r->salt_data, CH_UTF16), sizeof(uint16_t), CH_UTF16));
306 : }
307 : }
308 117 : return NDR_ERR_SUCCESS;
309 : }
310 :
311 5398 : static enum ndr_err_code ndr_pull_secrets_domain_info1_password(struct ndr_pull *ndr, int ndr_flags, struct secrets_domain_info1_password *r)
312 : {
313 5398 : uint32_t size_change_server_0 = 0;
314 5398 : uint32_t length_change_server_0 = 0;
315 : uint32_t _ptr_salt_data;
316 5398 : uint32_t size_salt_data_1 = 0;
317 5398 : uint32_t length_salt_data_1 = 0;
318 5398 : TALLOC_CTX *_mem_save_salt_data_0 = NULL;
319 5398 : uint32_t size_keys_0 = 0;
320 : uint32_t cntr_keys_0;
321 5398 : TALLOC_CTX *_mem_save_keys_0 = NULL;
322 5398 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
323 5398 : if (ndr_flags & NDR_SCALARS) {
324 5398 : NDR_CHECK(ndr_pull_align(ndr, 5));
325 5398 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
326 5398 : NDR_CHECK(ndr_pull_array_size(ndr, &r->change_server));
327 5398 : NDR_CHECK(ndr_pull_array_length(ndr, &r->change_server));
328 5398 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->change_server, &size_change_server_0));
329 5398 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->change_server, &length_change_server_0));
330 5398 : if (length_change_server_0 > size_change_server_0) {
331 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_change_server_0, length_change_server_0);
332 : }
333 5398 : NDR_CHECK(ndr_check_string_terminator(ndr, length_change_server_0, sizeof(uint16_t)));
334 5398 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->change_server, length_change_server_0, sizeof(uint16_t), CH_UTF16));
335 : {
336 5398 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
337 5398 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
338 5398 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->cleartext_blob));
339 5398 : ndr->flags = _flags_save_DATA_BLOB;
340 : }
341 : {
342 5398 : uint32_t _flags_save_samr_Password = ndr->flags;
343 5398 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
344 5398 : NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_hash));
345 5398 : ndr->flags = _flags_save_samr_Password;
346 : }
347 5398 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_salt_data));
348 5398 : if (_ptr_salt_data) {
349 5365 : NDR_PULL_ALLOC(ndr, r->salt_data);
350 : } else {
351 33 : r->salt_data = NULL;
352 : }
353 5398 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->default_iteration_count));
354 5398 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->num_keys));
355 5398 : size_keys_0 = r->num_keys;
356 5398 : NDR_PULL_ALLOC_N(ndr, r->keys, size_keys_0);
357 5398 : _mem_save_keys_0 = NDR_PULL_GET_MEM_CTX(ndr);
358 5398 : NDR_PULL_SET_MEM_CTX(ndr, r->keys, 0);
359 21526 : for (cntr_keys_0 = 0; cntr_keys_0 < (size_keys_0); cntr_keys_0++) {
360 16128 : NDR_CHECK(ndr_pull_secrets_domain_info1_kerberos_key(ndr, NDR_SCALARS, &r->keys[cntr_keys_0]));
361 : }
362 5398 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keys_0, 0);
363 5398 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
364 : }
365 5398 : if (ndr_flags & NDR_BUFFERS) {
366 5398 : if (r->salt_data) {
367 5365 : _mem_save_salt_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
368 5365 : NDR_PULL_SET_MEM_CTX(ndr, r->salt_data, 0);
369 5365 : NDR_CHECK(ndr_pull_array_size(ndr, &r->salt_data));
370 5365 : NDR_CHECK(ndr_pull_array_length(ndr, &r->salt_data));
371 5365 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->salt_data, &size_salt_data_1));
372 5365 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->salt_data, &length_salt_data_1));
373 5365 : if (length_salt_data_1 > size_salt_data_1) {
374 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_salt_data_1, length_salt_data_1);
375 : }
376 5365 : NDR_CHECK(ndr_check_string_terminator(ndr, length_salt_data_1, sizeof(uint16_t)));
377 5365 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->salt_data, length_salt_data_1, sizeof(uint16_t), CH_UTF16));
378 5365 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_salt_data_0, 0);
379 : }
380 : }
381 5398 : return NDR_ERR_SUCCESS;
382 : }
383 :
384 124 : _PUBLIC_ void ndr_print_secrets_domain_info1_password(struct ndr_print *ndr, const char *name, const struct secrets_domain_info1_password *r)
385 : {
386 : uint32_t cntr_keys_0;
387 124 : ndr_print_struct(ndr, name, "secrets_domain_info1_password");
388 124 : if (r == NULL) { ndr_print_null(ndr); return; }
389 124 : ndr->depth++;
390 124 : ndr_print_NTTIME(ndr, "change_time", r->change_time);
391 124 : ndr_print_string(ndr, "change_server", r->change_server);
392 : {
393 124 : uint32_t _flags_save_DATA_BLOB = ndr->flags;
394 124 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
395 124 : ndr_print_DATA_BLOB(ndr, "cleartext_blob", r->cleartext_blob);
396 124 : ndr->flags = _flags_save_DATA_BLOB;
397 : }
398 : {
399 124 : uint32_t _flags_save_samr_Password = ndr->flags;
400 124 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
401 124 : ndr_print_samr_Password(ndr, "nt_hash", &r->nt_hash);
402 124 : ndr->flags = _flags_save_samr_Password;
403 : }
404 124 : ndr_print_ptr(ndr, "salt_data", r->salt_data);
405 124 : ndr->depth++;
406 124 : if (r->salt_data) {
407 88 : ndr_print_string(ndr, "salt_data", r->salt_data);
408 : }
409 124 : ndr->depth--;
410 124 : ndr_print_uint32(ndr, "default_iteration_count", r->default_iteration_count);
411 124 : ndr_print_uint16(ndr, "num_keys", r->num_keys);
412 124 : ndr->print(ndr, "%s: ARRAY(%d)", "keys", (int)r->num_keys);
413 124 : ndr->depth++;
414 424 : for (cntr_keys_0 = 0; cntr_keys_0 < (r->num_keys); cntr_keys_0++) {
415 300 : ndr_print_secrets_domain_info1_kerberos_key(ndr, "keys", &r->keys[cntr_keys_0]);
416 : }
417 124 : ndr->depth--;
418 124 : ndr->depth--;
419 : }
420 :
421 10 : static enum ndr_err_code ndr_push_secrets_domain_info1_change(struct ndr_push *ndr, int ndr_flags, const struct secrets_domain_info1_change *r)
422 : {
423 10 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
424 10 : if (ndr_flags & NDR_SCALARS) {
425 10 : if (r->password == NULL) {
426 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
427 : }
428 10 : NDR_CHECK(ndr_push_align(ndr, 5));
429 10 : NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->local_status));
430 10 : NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->remote_status));
431 10 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
432 10 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->change_server, CH_UTF16)));
433 10 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
434 10 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->change_server, CH_UTF16)));
435 10 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->change_server, ndr_charset_length(r->change_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
436 10 : NDR_CHECK(ndr_push_ref_ptr(ndr)); /* r->password */
437 10 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
438 : }
439 10 : if (ndr_flags & NDR_BUFFERS) {
440 10 : NDR_CHECK(ndr_push_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
441 : }
442 10 : return NDR_ERR_SUCCESS;
443 : }
444 :
445 20 : static enum ndr_err_code ndr_pull_secrets_domain_info1_change(struct ndr_pull *ndr, int ndr_flags, struct secrets_domain_info1_change *r)
446 : {
447 20 : uint32_t size_change_server_0 = 0;
448 20 : uint32_t length_change_server_0 = 0;
449 : uint32_t _ptr_password;
450 20 : TALLOC_CTX *_mem_save_password_0 = NULL;
451 20 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
452 20 : if (ndr_flags & NDR_SCALARS) {
453 20 : NDR_CHECK(ndr_pull_align(ndr, 5));
454 20 : NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->local_status));
455 20 : NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->remote_status));
456 20 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
457 20 : NDR_CHECK(ndr_pull_array_size(ndr, &r->change_server));
458 20 : NDR_CHECK(ndr_pull_array_length(ndr, &r->change_server));
459 20 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->change_server, &size_change_server_0));
460 20 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->change_server, &length_change_server_0));
461 20 : if (length_change_server_0 > size_change_server_0) {
462 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_change_server_0, length_change_server_0);
463 : }
464 20 : NDR_CHECK(ndr_check_string_terminator(ndr, length_change_server_0, sizeof(uint16_t)));
465 20 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->change_server, length_change_server_0, sizeof(uint16_t), CH_UTF16));
466 20 : NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_password));
467 20 : if (_ptr_password) {
468 20 : NDR_PULL_ALLOC(ndr, r->password);
469 : } else {
470 0 : r->password = NULL;
471 : }
472 20 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
473 : }
474 20 : if (ndr_flags & NDR_BUFFERS) {
475 20 : _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
476 20 : NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
477 20 : NDR_CHECK(ndr_pull_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
478 20 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
479 : }
480 20 : return NDR_ERR_SUCCESS;
481 : }
482 :
483 10 : _PUBLIC_ void ndr_print_secrets_domain_info1_change(struct ndr_print *ndr, const char *name, const struct secrets_domain_info1_change *r)
484 : {
485 10 : ndr_print_struct(ndr, name, "secrets_domain_info1_change");
486 10 : if (r == NULL) { ndr_print_null(ndr); return; }
487 10 : ndr->depth++;
488 10 : ndr_print_NTSTATUS(ndr, "local_status", r->local_status);
489 10 : ndr_print_NTSTATUS(ndr, "remote_status", r->remote_status);
490 10 : ndr_print_NTTIME(ndr, "change_time", r->change_time);
491 10 : ndr_print_string(ndr, "change_server", r->change_server);
492 10 : ndr_print_ptr(ndr, "password", r->password);
493 10 : ndr->depth++;
494 10 : ndr_print_secrets_domain_info1_password(ndr, "password", r->password);
495 10 : ndr->depth--;
496 10 : ndr->depth--;
497 : }
498 :
499 81 : _PUBLIC_ enum ndr_err_code ndr_push_secrets_domain_info1(struct ndr_push *ndr, int ndr_flags, const struct secrets_domain_info1 *r)
500 : {
501 81 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
502 81 : if (ndr_flags & NDR_SCALARS) {
503 81 : if (r->password == NULL) {
504 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
505 : }
506 81 : NDR_CHECK(ndr_push_align(ndr, 8));
507 81 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, 0));
508 81 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->join_time));
509 81 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_name, CH_UTF16)));
510 81 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
511 81 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_name, CH_UTF16)));
512 81 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_name, ndr_charset_length(r->computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
513 81 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
514 81 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
515 81 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
516 81 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
517 81 : NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->secure_channel_type));
518 81 : NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->domain_info));
519 81 : NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
520 81 : NDR_CHECK(ndr_push_lsa_TrustType(ndr, NDR_SCALARS, r->trust_type));
521 81 : NDR_CHECK(ndr_push_lsa_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
522 81 : NDR_CHECK(ndr_push_unique_ptr(ndr, NULL));
523 81 : NDR_CHECK(ndr_push_kerb_EncTypes(ndr, NDR_SCALARS, r->supported_enc_types));
524 81 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->salt_principal));
525 81 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->password_last_change));
526 81 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->password_changes));
527 81 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_change));
528 81 : NDR_CHECK(ndr_push_ref_ptr(ndr)); /* r->password */
529 81 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->old_password));
530 81 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->older_password));
531 81 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
532 : }
533 81 : if (ndr_flags & NDR_BUFFERS) {
534 81 : NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->domain_info));
535 : if (NULL) {
536 : NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, NULL));
537 : }
538 81 : if (r->salt_principal) {
539 60 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_principal, CH_UTF16)));
540 60 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
541 60 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_principal, CH_UTF16)));
542 60 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->salt_principal, ndr_charset_length(r->salt_principal, CH_UTF16), sizeof(uint16_t), CH_UTF16));
543 : }
544 81 : if (r->next_change) {
545 10 : NDR_CHECK(ndr_push_secrets_domain_info1_change(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_change));
546 : }
547 81 : NDR_CHECK(ndr_push_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
548 81 : if (r->old_password) {
549 22 : NDR_CHECK(ndr_push_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->old_password));
550 : }
551 81 : if (r->older_password) {
552 4 : NDR_CHECK(ndr_push_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->older_password));
553 : }
554 : }
555 81 : return NDR_ERR_SUCCESS;
556 : }
557 :
558 2992 : _PUBLIC_ enum ndr_err_code ndr_pull_secrets_domain_info1(struct ndr_pull *ndr, int ndr_flags, struct secrets_domain_info1 *r)
559 : {
560 2992 : uint32_t size_computer_name_0 = 0;
561 2992 : uint32_t length_computer_name_0 = 0;
562 2992 : uint32_t size_account_name_0 = 0;
563 2992 : uint32_t length_account_name_0 = 0;
564 : uint32_t _ptr_reserved_routing;
565 2992 : TALLOC_CTX *_mem_save_reserved_routing_0 = NULL;
566 : uint32_t _ptr_salt_principal;
567 2992 : uint32_t size_salt_principal_1 = 0;
568 2992 : uint32_t length_salt_principal_1 = 0;
569 2992 : TALLOC_CTX *_mem_save_salt_principal_0 = NULL;
570 : uint32_t _ptr_next_change;
571 2992 : TALLOC_CTX *_mem_save_next_change_0 = NULL;
572 : uint32_t _ptr_password;
573 2992 : TALLOC_CTX *_mem_save_password_0 = NULL;
574 : uint32_t _ptr_old_password;
575 2992 : TALLOC_CTX *_mem_save_old_password_0 = NULL;
576 : uint32_t _ptr_older_password;
577 2992 : TALLOC_CTX *_mem_save_older_password_0 = NULL;
578 2992 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
579 2992 : if (ndr_flags & NDR_SCALARS) {
580 2992 : NDR_CHECK(ndr_pull_align(ndr, 8));
581 2992 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->reserved_flags));
582 2992 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->join_time));
583 2992 : NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_name));
584 2992 : NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_name));
585 2992 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->computer_name, &size_computer_name_0));
586 2992 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->computer_name, &length_computer_name_0));
587 2992 : if (length_computer_name_0 > size_computer_name_0) {
588 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0);
589 : }
590 2992 : NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t)));
591 2992 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16));
592 2992 : NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
593 2992 : NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
594 2992 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->account_name, &size_account_name_0));
595 2992 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->account_name, &length_account_name_0));
596 2992 : if (length_account_name_0 > size_account_name_0) {
597 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0);
598 : }
599 2992 : NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t)));
600 2992 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16));
601 2992 : NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->secure_channel_type));
602 2992 : NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->domain_info));
603 2992 : NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
604 2992 : NDR_CHECK(ndr_pull_lsa_TrustType(ndr, NDR_SCALARS, &r->trust_type));
605 2992 : NDR_CHECK(ndr_pull_lsa_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
606 2992 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_reserved_routing));
607 2992 : if (_ptr_reserved_routing) {
608 0 : NDR_PULL_ALLOC(ndr, r->reserved_routing);
609 : } else {
610 2992 : r->reserved_routing = NULL;
611 : }
612 2992 : NDR_CHECK(ndr_pull_kerb_EncTypes(ndr, NDR_SCALARS, &r->supported_enc_types));
613 2992 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_salt_principal));
614 2992 : if (_ptr_salt_principal) {
615 2971 : NDR_PULL_ALLOC(ndr, r->salt_principal);
616 : } else {
617 21 : r->salt_principal = NULL;
618 : }
619 2992 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->password_last_change));
620 2992 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->password_changes));
621 2992 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_change));
622 2992 : if (_ptr_next_change) {
623 20 : NDR_PULL_ALLOC(ndr, r->next_change);
624 : } else {
625 2972 : r->next_change = NULL;
626 : }
627 2992 : NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_password));
628 2992 : if (_ptr_password) {
629 2992 : NDR_PULL_ALLOC(ndr, r->password);
630 : } else {
631 0 : r->password = NULL;
632 : }
633 2992 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_old_password));
634 2992 : if (_ptr_old_password) {
635 1313 : NDR_PULL_ALLOC(ndr, r->old_password);
636 : } else {
637 1679 : r->old_password = NULL;
638 : }
639 2992 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_older_password));
640 2992 : if (_ptr_older_password) {
641 1073 : NDR_PULL_ALLOC(ndr, r->older_password);
642 : } else {
643 1919 : r->older_password = NULL;
644 : }
645 2992 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
646 : }
647 2992 : if (ndr_flags & NDR_BUFFERS) {
648 2992 : NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->domain_info));
649 2992 : if (r->reserved_routing) {
650 0 : _mem_save_reserved_routing_0 = NDR_PULL_GET_MEM_CTX(ndr);
651 0 : NDR_PULL_SET_MEM_CTX(ndr, r->reserved_routing, 0);
652 0 : NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->reserved_routing));
653 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reserved_routing_0, 0);
654 : }
655 2992 : if (r->salt_principal) {
656 2971 : _mem_save_salt_principal_0 = NDR_PULL_GET_MEM_CTX(ndr);
657 2971 : NDR_PULL_SET_MEM_CTX(ndr, r->salt_principal, 0);
658 2971 : NDR_CHECK(ndr_pull_array_size(ndr, &r->salt_principal));
659 2971 : NDR_CHECK(ndr_pull_array_length(ndr, &r->salt_principal));
660 2971 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->salt_principal, &size_salt_principal_1));
661 2971 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->salt_principal, &length_salt_principal_1));
662 2971 : if (length_salt_principal_1 > size_salt_principal_1) {
663 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_salt_principal_1, length_salt_principal_1);
664 : }
665 2971 : NDR_CHECK(ndr_check_string_terminator(ndr, length_salt_principal_1, sizeof(uint16_t)));
666 2971 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->salt_principal, length_salt_principal_1, sizeof(uint16_t), CH_UTF16));
667 2971 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_salt_principal_0, 0);
668 : }
669 2992 : if (r->next_change) {
670 20 : _mem_save_next_change_0 = NDR_PULL_GET_MEM_CTX(ndr);
671 20 : NDR_PULL_SET_MEM_CTX(ndr, r->next_change, 0);
672 20 : NDR_CHECK(ndr_pull_secrets_domain_info1_change(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_change));
673 20 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_change_0, 0);
674 : }
675 2992 : _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
676 2992 : NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
677 2992 : NDR_CHECK(ndr_pull_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
678 2992 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
679 2992 : if (r->old_password) {
680 1313 : _mem_save_old_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
681 1313 : NDR_PULL_SET_MEM_CTX(ndr, r->old_password, 0);
682 1313 : NDR_CHECK(ndr_pull_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->old_password));
683 1313 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_password_0, 0);
684 : }
685 2992 : if (r->older_password) {
686 1073 : _mem_save_older_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
687 1073 : NDR_PULL_SET_MEM_CTX(ndr, r->older_password, 0);
688 1073 : NDR_CHECK(ndr_pull_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->older_password));
689 1073 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_older_password_0, 0);
690 : }
691 : }
692 2992 : return NDR_ERR_SUCCESS;
693 : }
694 :
695 0 : static void ndr_print_flags_secrets_domain_info1(struct ndr_print *ndr, const char *name, int unused, const struct secrets_domain_info1 *r)
696 : {
697 0 : ndr_print_secrets_domain_info1(ndr, name, r);
698 0 : }
699 :
700 88 : _PUBLIC_ void ndr_print_secrets_domain_info1(struct ndr_print *ndr, const char *name, const struct secrets_domain_info1 *r)
701 : {
702 88 : ndr_print_struct(ndr, name, "secrets_domain_info1");
703 88 : if (r == NULL) { ndr_print_null(ndr); return; }
704 88 : ndr->depth++;
705 88 : ndr_print_hyper(ndr, "reserved_flags", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved_flags);
706 88 : ndr_print_NTTIME(ndr, "join_time", r->join_time);
707 88 : ndr_print_string(ndr, "computer_name", r->computer_name);
708 88 : ndr_print_string(ndr, "account_name", r->account_name);
709 88 : ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->secure_channel_type);
710 88 : ndr_print_lsa_DnsDomainInfo(ndr, "domain_info", &r->domain_info);
711 88 : ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
712 88 : ndr_print_lsa_TrustType(ndr, "trust_type", r->trust_type);
713 88 : ndr_print_lsa_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
714 88 : ndr_print_ptr(ndr, "reserved_routing", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NULL:r->reserved_routing);
715 88 : ndr->depth++;
716 88 : if ((ndr->flags & LIBNDR_PRINT_SET_VALUES)?NULL:r->reserved_routing) {
717 0 : ndr_print_lsa_ForestTrustInformation(ndr, "reserved_routing", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NULL:r->reserved_routing);
718 : }
719 88 : ndr->depth--;
720 88 : ndr_print_kerb_EncTypes(ndr, "supported_enc_types", r->supported_enc_types);
721 88 : ndr_print_ptr(ndr, "salt_principal", r->salt_principal);
722 88 : ndr->depth++;
723 88 : if (r->salt_principal) {
724 64 : ndr_print_string(ndr, "salt_principal", r->salt_principal);
725 : }
726 88 : ndr->depth--;
727 88 : ndr_print_NTTIME(ndr, "password_last_change", r->password_last_change);
728 88 : ndr_print_hyper(ndr, "password_changes", r->password_changes);
729 88 : ndr_print_ptr(ndr, "next_change", r->next_change);
730 88 : ndr->depth++;
731 88 : if (r->next_change) {
732 10 : ndr_print_secrets_domain_info1_change(ndr, "next_change", r->next_change);
733 : }
734 88 : ndr->depth--;
735 88 : ndr_print_ptr(ndr, "password", r->password);
736 88 : ndr->depth++;
737 88 : ndr_print_secrets_domain_info1_password(ndr, "password", r->password);
738 88 : ndr->depth--;
739 88 : ndr_print_ptr(ndr, "old_password", r->old_password);
740 88 : ndr->depth++;
741 88 : if (r->old_password) {
742 22 : ndr_print_secrets_domain_info1_password(ndr, "old_password", r->old_password);
743 : }
744 88 : ndr->depth--;
745 88 : ndr_print_ptr(ndr, "older_password", r->older_password);
746 88 : ndr->depth++;
747 88 : if (r->older_password) {
748 4 : ndr_print_secrets_domain_info1_password(ndr, "older_password", r->older_password);
749 : }
750 88 : ndr->depth--;
751 88 : ndr->depth--;
752 : }
753 :
754 81 : static enum ndr_err_code ndr_push_secrets_domain_info_version(struct ndr_push *ndr, int ndr_flags, enum secrets_domain_info_version r)
755 : {
756 81 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
757 81 : return NDR_ERR_SUCCESS;
758 : }
759 :
760 2992 : static enum ndr_err_code ndr_pull_secrets_domain_info_version(struct ndr_pull *ndr, int ndr_flags, enum secrets_domain_info_version *r)
761 : {
762 : uint32_t v;
763 2992 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
764 2992 : *r = v;
765 2992 : return NDR_ERR_SUCCESS;
766 : }
767 :
768 88 : _PUBLIC_ void ndr_print_secrets_domain_info_version(struct ndr_print *ndr, const char *name, enum secrets_domain_info_version r)
769 : {
770 88 : const char *val = NULL;
771 :
772 88 : switch (r) {
773 88 : case SECRETS_DOMAIN_INFO_VERSION_1: val = "SECRETS_DOMAIN_INFO_VERSION_1"; break;
774 : }
775 88 : ndr_print_enum(ndr, name, "ENUM", val, r);
776 88 : }
777 :
778 162 : static enum ndr_err_code ndr_push_secrets_domain_infoU(struct ndr_push *ndr, int ndr_flags, const union secrets_domain_infoU *r)
779 : {
780 : uint32_t level;
781 162 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
782 162 : if (ndr_flags & NDR_SCALARS) {
783 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
784 81 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
785 81 : NDR_CHECK(ndr_push_union_align(ndr, 5));
786 81 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
787 81 : NDR_CHECK(ndr_push_union_align(ndr, 5));
788 81 : switch (level) {
789 81 : case SECRETS_DOMAIN_INFO_VERSION_1: {
790 81 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
791 81 : break; }
792 :
793 0 : default: {
794 0 : break; }
795 :
796 : }
797 55 : }
798 162 : if (ndr_flags & NDR_BUFFERS) {
799 81 : if (!(ndr_flags & NDR_SCALARS)) {
800 : /* We didn't get it above, and the token is not needed after this. */
801 81 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
802 : }
803 81 : switch (level) {
804 81 : case SECRETS_DOMAIN_INFO_VERSION_1:
805 81 : if (r->info1) {
806 81 : NDR_CHECK(ndr_push_secrets_domain_info1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
807 : }
808 81 : break;
809 :
810 0 : default:
811 0 : break;
812 :
813 : }
814 55 : }
815 162 : return NDR_ERR_SUCCESS;
816 : }
817 :
818 5984 : static enum ndr_err_code ndr_pull_secrets_domain_infoU(struct ndr_pull *ndr, int ndr_flags, union secrets_domain_infoU *r)
819 : {
820 : uint32_t level;
821 : uint32_t _level;
822 5984 : TALLOC_CTX *_mem_save_info1_0 = NULL;
823 : uint32_t _ptr_info1;
824 5984 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
825 5984 : if (ndr_flags & NDR_SCALARS) {
826 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
827 2992 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
828 2992 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
829 2992 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
830 2992 : if (_level != level) {
831 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
832 : }
833 2992 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
834 2992 : switch (level) {
835 2992 : case SECRETS_DOMAIN_INFO_VERSION_1: {
836 2992 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
837 2992 : if (_ptr_info1) {
838 2992 : NDR_PULL_ALLOC(ndr, r->info1);
839 : } else {
840 0 : r->info1 = NULL;
841 : }
842 2992 : break; }
843 :
844 0 : default: {
845 0 : break; }
846 :
847 : }
848 1552 : }
849 5984 : if (ndr_flags & NDR_BUFFERS) {
850 2992 : if (!(ndr_flags & NDR_SCALARS)) {
851 : /* We didn't get it above, and the token is not needed after this. */
852 2992 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
853 : }
854 2992 : switch (level) {
855 2992 : case SECRETS_DOMAIN_INFO_VERSION_1:
856 2992 : if (r->info1) {
857 2992 : _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
858 2992 : NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
859 2992 : NDR_CHECK(ndr_pull_secrets_domain_info1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
860 2992 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
861 : }
862 2992 : break;
863 :
864 0 : default:
865 0 : break;
866 :
867 : }
868 1552 : }
869 5984 : return NDR_ERR_SUCCESS;
870 : }
871 :
872 88 : _PUBLIC_ void ndr_print_secrets_domain_infoU(struct ndr_print *ndr, const char *name, const union secrets_domain_infoU *r)
873 : {
874 : uint32_t level;
875 88 : level = ndr_print_steal_switch_value(ndr, r);
876 88 : ndr_print_union(ndr, name, level, "secrets_domain_infoU");
877 88 : switch (level) {
878 88 : case SECRETS_DOMAIN_INFO_VERSION_1:
879 88 : ndr_print_ptr(ndr, "info1", r->info1);
880 88 : ndr->depth++;
881 88 : if (r->info1) {
882 88 : ndr_print_secrets_domain_info1(ndr, "info1", r->info1);
883 : }
884 88 : ndr->depth--;
885 88 : break;
886 :
887 0 : default:
888 0 : break;
889 :
890 : }
891 88 : }
892 :
893 81 : _PUBLIC_ enum ndr_err_code ndr_push_secrets_domain_infoB(struct ndr_push *ndr, int ndr_flags, const struct secrets_domain_infoB *r)
894 : {
895 81 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
896 81 : if (ndr_flags & NDR_SCALARS) {
897 81 : NDR_CHECK(ndr_push_align(ndr, 5));
898 81 : NDR_CHECK(ndr_push_secrets_domain_info_version(ndr, NDR_SCALARS, r->version));
899 81 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
900 81 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
901 81 : NDR_CHECK(ndr_push_secrets_domain_infoU(ndr, NDR_SCALARS, &r->info));
902 81 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
903 : }
904 81 : if (ndr_flags & NDR_BUFFERS) {
905 81 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
906 81 : NDR_CHECK(ndr_push_secrets_domain_infoU(ndr, NDR_BUFFERS, &r->info));
907 : }
908 81 : return NDR_ERR_SUCCESS;
909 : }
910 :
911 2992 : _PUBLIC_ enum ndr_err_code ndr_pull_secrets_domain_infoB(struct ndr_pull *ndr, int ndr_flags, struct secrets_domain_infoB *r)
912 : {
913 2992 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
914 2992 : if (ndr_flags & NDR_SCALARS) {
915 2992 : NDR_CHECK(ndr_pull_align(ndr, 5));
916 2992 : NDR_CHECK(ndr_pull_secrets_domain_info_version(ndr, NDR_SCALARS, &r->version));
917 2992 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
918 2992 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
919 2992 : NDR_CHECK(ndr_pull_secrets_domain_infoU(ndr, NDR_SCALARS, &r->info));
920 2992 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
921 : }
922 2992 : if (ndr_flags & NDR_BUFFERS) {
923 2992 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
924 2992 : NDR_CHECK(ndr_pull_secrets_domain_infoU(ndr, NDR_BUFFERS, &r->info));
925 : }
926 2992 : return NDR_ERR_SUCCESS;
927 : }
928 :
929 0 : static void ndr_print_flags_secrets_domain_infoB(struct ndr_print *ndr, const char *name, int unused, const struct secrets_domain_infoB *r)
930 : {
931 0 : ndr_print_secrets_domain_infoB(ndr, name, r);
932 0 : }
933 :
934 88 : _PUBLIC_ void ndr_print_secrets_domain_infoB(struct ndr_print *ndr, const char *name, const struct secrets_domain_infoB *r)
935 : {
936 88 : ndr_print_struct(ndr, name, "secrets_domain_infoB");
937 88 : if (r == NULL) { ndr_print_null(ndr); return; }
938 88 : ndr->depth++;
939 88 : ndr_print_secrets_domain_info_version(ndr, "version", r->version);
940 88 : ndr_print_uint32(ndr, "reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved);
941 88 : ndr_print_set_switch_value(ndr, &r->info, r->version);
942 88 : ndr_print_secrets_domain_infoU(ndr, "info", &r->info);
943 88 : ndr->depth--;
944 : }
945 :
946 : #ifndef SKIP_NDR_TABLE_secrets
947 : static const struct ndr_interface_public_struct secrets_public_structs[] = {
948 : {
949 : .name = "TRUSTED_DOM_PASS",
950 : .struct_size = sizeof(struct TRUSTED_DOM_PASS ),
951 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_TRUSTED_DOM_PASS,
952 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_TRUSTED_DOM_PASS,
953 : .ndr_print = (ndr_print_function_t) ndr_print_flags_TRUSTED_DOM_PASS,
954 : },
955 : {
956 : .name = "lsa_secret",
957 : .struct_size = sizeof(struct lsa_secret ),
958 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_lsa_secret,
959 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_lsa_secret,
960 : .ndr_print = (ndr_print_function_t) ndr_print_flags_lsa_secret,
961 : },
962 : {
963 : .name = "secrets_domain_info1",
964 : .struct_size = sizeof(struct secrets_domain_info1 ),
965 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_secrets_domain_info1,
966 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_secrets_domain_info1,
967 : .ndr_print = (ndr_print_function_t) ndr_print_flags_secrets_domain_info1,
968 : },
969 : {
970 : .name = "secrets_domain_infoB",
971 : .struct_size = sizeof(struct secrets_domain_infoB ),
972 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_secrets_domain_infoB,
973 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_secrets_domain_infoB,
974 : .ndr_print = (ndr_print_function_t) ndr_print_flags_secrets_domain_infoB,
975 : },
976 : { .name = NULL }
977 : };
978 :
979 : static const struct ndr_interface_call secrets_calls[] = {
980 : { .name = NULL }
981 : };
982 :
983 : static const char * const secrets_endpoint_strings[] = {
984 : "ncacn_np:[\\pipe\\secrets]",
985 : };
986 :
987 : static const struct ndr_interface_string_array secrets_endpoints = {
988 : .count = 1,
989 : .names = secrets_endpoint_strings
990 : };
991 :
992 : static const char * const secrets_authservice_strings[] = {
993 : "host",
994 : };
995 :
996 : static const struct ndr_interface_string_array secrets_authservices = {
997 : .count = 1,
998 : .names = secrets_authservice_strings
999 : };
1000 :
1001 :
1002 : const struct ndr_interface_table ndr_table_secrets = {
1003 : .name = "secrets",
1004 : .num_calls = 0,
1005 : .calls = secrets_calls,
1006 : .num_public_structs = 4,
1007 : .public_structs = secrets_public_structs,
1008 : .endpoints = &secrets_endpoints,
1009 : .authservices = &secrets_authservices
1010 : };
1011 :
1012 : #endif /* SKIP_NDR_TABLE_secrets */
|