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 4 : _PUBLIC_ enum ndr_err_code ndr_push_TRUSTED_DOM_PASS(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct TRUSTED_DOM_PASS *r)
12 : {
13 : {
14 4 : libndr_flags _flags_save_STRUCT = ndr->flags;
15 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
16 4 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17 4 : if (ndr_flags & NDR_SCALARS) {
18 4 : NDR_CHECK(ndr_push_align(ndr, 4));
19 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->uni_name)));
20 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->uni_name, 32, sizeof(uint16_t), CH_UTF16));
21 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen(r->pass)));
22 : {
23 4 : libndr_flags _flags_save_string = ndr->flags;
24 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
25 4 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pass));
26 4 : ndr->flags = _flags_save_string;
27 : }
28 4 : NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->mod_time));
29 4 : NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->domain_sid));
30 4 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
31 : }
32 4 : if (ndr_flags & NDR_BUFFERS) {
33 0 : }
34 4 : ndr->flags = _flags_save_STRUCT;
35 : }
36 4 : return NDR_ERR_SUCCESS;
37 : }
38 :
39 4 : _PUBLIC_ enum ndr_err_code ndr_pull_TRUSTED_DOM_PASS(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct TRUSTED_DOM_PASS *r)
40 : {
41 4 : uint32_t size_uni_name_0 = 0;
42 : {
43 4 : libndr_flags _flags_save_STRUCT = ndr->flags;
44 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
45 4 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
46 4 : if (ndr_flags & NDR_SCALARS) {
47 4 : NDR_CHECK(ndr_pull_align(ndr, 4));
48 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->uni_name_len));
49 4 : size_uni_name_0 = 32;
50 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->uni_name, size_uni_name_0, sizeof(uint16_t), CH_UTF16));
51 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pass_len));
52 : {
53 4 : libndr_flags _flags_save_string = ndr->flags;
54 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
55 4 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pass));
56 4 : ndr->flags = _flags_save_string;
57 : }
58 4 : NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->mod_time));
59 4 : NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->domain_sid));
60 4 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
61 : }
62 4 : if (ndr_flags & NDR_BUFFERS) {
63 0 : }
64 4 : ndr->flags = _flags_save_STRUCT;
65 : }
66 4 : return NDR_ERR_SUCCESS;
67 : }
68 :
69 0 : static void ndr_print_flags_TRUSTED_DOM_PASS(struct ndr_print *ndr, const char *name, ndr_flags_type 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 : libndr_flags _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 : libndr_flags _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 0 : _PUBLIC_ enum ndr_err_code ndr_push_lsa_secret(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct lsa_secret *r)
99 : {
100 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
101 0 : if (ndr_flags & NDR_SCALARS) {
102 0 : NDR_CHECK(ndr_push_align(ndr, 5));
103 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret_current));
104 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->secret_current_lastchange));
105 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret_old));
106 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->secret_old_lastchange));
107 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sd));
108 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
109 : }
110 0 : if (ndr_flags & NDR_BUFFERS) {
111 0 : if (r->secret_current) {
112 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->secret_current));
113 : }
114 0 : if (r->secret_old) {
115 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->secret_old));
116 : }
117 0 : if (r->sd) {
118 0 : NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
119 : }
120 : }
121 0 : return NDR_ERR_SUCCESS;
122 : }
123 :
124 0 : _PUBLIC_ enum ndr_err_code ndr_pull_lsa_secret(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct lsa_secret *r)
125 : {
126 0 : uint32_t _ptr_secret_current;
127 0 : TALLOC_CTX *_mem_save_secret_current_0 = NULL;
128 0 : uint32_t _ptr_secret_old;
129 0 : TALLOC_CTX *_mem_save_secret_old_0 = NULL;
130 0 : uint32_t _ptr_sd;
131 0 : TALLOC_CTX *_mem_save_sd_0 = NULL;
132 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
133 0 : if (ndr_flags & NDR_SCALARS) {
134 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
135 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret_current));
136 0 : if (_ptr_secret_current) {
137 0 : NDR_PULL_ALLOC(ndr, r->secret_current);
138 : } else {
139 0 : r->secret_current = NULL;
140 : }
141 0 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->secret_current_lastchange));
142 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret_old));
143 0 : if (_ptr_secret_old) {
144 0 : NDR_PULL_ALLOC(ndr, r->secret_old);
145 : } else {
146 0 : r->secret_old = NULL;
147 : }
148 0 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->secret_old_lastchange));
149 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
150 0 : if (_ptr_sd) {
151 0 : NDR_PULL_ALLOC(ndr, r->sd);
152 : } else {
153 0 : r->sd = NULL;
154 : }
155 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
156 : }
157 0 : if (ndr_flags & NDR_BUFFERS) {
158 0 : if (r->secret_current) {
159 0 : _mem_save_secret_current_0 = NDR_PULL_GET_MEM_CTX(ndr);
160 0 : NDR_PULL_SET_MEM_CTX(ndr, r->secret_current, 0);
161 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->secret_current));
162 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_current_0, 0);
163 : }
164 0 : 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 0 : if (r->sd) {
171 0 : _mem_save_sd_0 = NDR_PULL_GET_MEM_CTX(ndr);
172 0 : NDR_PULL_SET_MEM_CTX(ndr, r->sd, 0);
173 0 : NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->sd));
174 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sd_0, 0);
175 : }
176 : }
177 0 : return NDR_ERR_SUCCESS;
178 : }
179 :
180 0 : static void ndr_print_flags_lsa_secret(struct ndr_print *ndr, const char *name, ndr_flags_type 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 336 : static enum ndr_err_code ndr_push_secrets_domain_info1_kerberos_key(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct secrets_domain_info1_kerberos_key *r)
214 : {
215 336 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
216 336 : if (ndr_flags & NDR_SCALARS) {
217 336 : NDR_CHECK(ndr_push_align(ndr, 4));
218 336 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->keytype));
219 336 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iteration_count));
220 : {
221 336 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
222 336 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
223 336 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->value));
224 336 : ndr->flags = _flags_save_DATA_BLOB;
225 : }
226 336 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
227 : }
228 336 : if (ndr_flags & NDR_BUFFERS) {
229 0 : }
230 336 : return NDR_ERR_SUCCESS;
231 : }
232 :
233 28125 : static enum ndr_err_code ndr_pull_secrets_domain_info1_kerberos_key(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct secrets_domain_info1_kerberos_key *r)
234 : {
235 28125 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
236 28125 : if (ndr_flags & NDR_SCALARS) {
237 28125 : NDR_CHECK(ndr_pull_align(ndr, 4));
238 28125 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->keytype));
239 28125 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iteration_count));
240 : {
241 28125 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
242 28125 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
243 28125 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->value));
244 28125 : ndr->flags = _flags_save_DATA_BLOB;
245 : }
246 28125 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
247 : }
248 28125 : if (ndr_flags & NDR_BUFFERS) {
249 0 : }
250 28125 : return NDR_ERR_SUCCESS;
251 : }
252 :
253 3 : _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 3 : ndr_print_struct(ndr, name, "secrets_domain_info1_kerberos_key");
256 3 : if (r == NULL) { ndr_print_null(ndr); return; }
257 3 : ndr->depth++;
258 3 : ndr_print_uint32(ndr, "keytype", r->keytype);
259 3 : ndr_print_uint32(ndr, "iteration_count", r->iteration_count);
260 : {
261 3 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
262 3 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
263 3 : ndr_print_DATA_BLOB(ndr, "value", r->value);
264 3 : ndr->flags = _flags_save_DATA_BLOB;
265 : }
266 3 : ndr->depth--;
267 : }
268 :
269 134 : static enum ndr_err_code ndr_push_secrets_domain_info1_password(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct secrets_domain_info1_password *r)
270 : {
271 0 : uint32_t cntr_keys_0;
272 134 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
273 134 : if (ndr_flags & NDR_SCALARS) {
274 134 : NDR_CHECK(ndr_push_align(ndr, 5));
275 134 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
276 134 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->change_server, CH_UTF16)));
277 134 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
278 134 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->change_server, CH_UTF16)));
279 134 : 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 134 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
282 134 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
283 134 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->cleartext_blob));
284 134 : ndr->flags = _flags_save_DATA_BLOB;
285 : }
286 : {
287 134 : libndr_flags _flags_save_samr_Password = ndr->flags;
288 134 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
289 134 : NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_hash));
290 134 : ndr->flags = _flags_save_samr_Password;
291 : }
292 134 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->salt_data));
293 134 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->default_iteration_count));
294 134 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_keys));
295 470 : for (cntr_keys_0 = 0; cntr_keys_0 < (r->num_keys); cntr_keys_0++) {
296 336 : NDR_CHECK(ndr_push_secrets_domain_info1_kerberos_key(ndr, NDR_SCALARS, &r->keys[cntr_keys_0]));
297 : }
298 134 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
299 : }
300 134 : if (ndr_flags & NDR_BUFFERS) {
301 134 : if (r->salt_data) {
302 101 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_data, CH_UTF16)));
303 101 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
304 101 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_data, CH_UTF16)));
305 101 : 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 134 : return NDR_ERR_SUCCESS;
309 : }
310 :
311 9397 : static enum ndr_err_code ndr_pull_secrets_domain_info1_password(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct secrets_domain_info1_password *r)
312 : {
313 9397 : uint32_t size_change_server_0 = 0;
314 9397 : uint32_t length_change_server_0 = 0;
315 0 : uint32_t _ptr_salt_data;
316 9397 : uint32_t size_salt_data_1 = 0;
317 9397 : uint32_t length_salt_data_1 = 0;
318 9397 : TALLOC_CTX *_mem_save_salt_data_0 = NULL;
319 9397 : uint32_t size_keys_0 = 0;
320 0 : uint32_t cntr_keys_0;
321 9397 : TALLOC_CTX *_mem_save_keys_0 = NULL;
322 9397 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
323 9397 : if (ndr_flags & NDR_SCALARS) {
324 9397 : NDR_CHECK(ndr_pull_align(ndr, 5));
325 9397 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
326 9397 : NDR_CHECK(ndr_pull_array_size(ndr, &r->change_server));
327 9397 : NDR_CHECK(ndr_pull_array_length(ndr, &r->change_server));
328 9397 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->change_server, &size_change_server_0));
329 9397 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->change_server, &length_change_server_0));
330 9397 : if (length_change_server_0 > size_change_server_0) {
331 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_change_server_0, length_change_server_0);
332 : }
333 9397 : NDR_CHECK(ndr_check_string_terminator(ndr, length_change_server_0, sizeof(uint16_t)));
334 9397 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->change_server, length_change_server_0, sizeof(uint16_t), CH_UTF16));
335 : {
336 9397 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
337 9397 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
338 9397 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->cleartext_blob));
339 9397 : ndr->flags = _flags_save_DATA_BLOB;
340 : }
341 : {
342 9397 : libndr_flags _flags_save_samr_Password = ndr->flags;
343 9397 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
344 9397 : NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_hash));
345 9397 : ndr->flags = _flags_save_samr_Password;
346 : }
347 9397 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_salt_data));
348 9397 : if (_ptr_salt_data) {
349 9364 : NDR_PULL_ALLOC(ndr, r->salt_data);
350 : } else {
351 33 : r->salt_data = NULL;
352 : }
353 9397 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->default_iteration_count));
354 9397 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->num_keys));
355 9397 : size_keys_0 = r->num_keys;
356 9397 : NDR_PULL_ALLOC_N(ndr, r->keys, size_keys_0);
357 9397 : _mem_save_keys_0 = NDR_PULL_GET_MEM_CTX(ndr);
358 9397 : NDR_PULL_SET_MEM_CTX(ndr, r->keys, 0);
359 37522 : for (cntr_keys_0 = 0; cntr_keys_0 < (size_keys_0); cntr_keys_0++) {
360 28125 : NDR_CHECK(ndr_pull_secrets_domain_info1_kerberos_key(ndr, NDR_SCALARS, &r->keys[cntr_keys_0]));
361 : }
362 9397 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keys_0, 0);
363 9397 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
364 : }
365 9397 : if (ndr_flags & NDR_BUFFERS) {
366 9397 : if (r->salt_data) {
367 9364 : _mem_save_salt_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
368 9364 : NDR_PULL_SET_MEM_CTX(ndr, r->salt_data, 0);
369 9364 : NDR_CHECK(ndr_pull_array_size(ndr, &r->salt_data));
370 9364 : NDR_CHECK(ndr_pull_array_length(ndr, &r->salt_data));
371 9364 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->salt_data, &size_salt_data_1));
372 9364 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->salt_data, &length_salt_data_1));
373 9364 : if (length_salt_data_1 > size_salt_data_1) {
374 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_salt_data_1, length_salt_data_1);
375 : }
376 9364 : NDR_CHECK(ndr_check_string_terminator(ndr, length_salt_data_1, sizeof(uint16_t)));
377 9364 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->salt_data, length_salt_data_1, sizeof(uint16_t), CH_UTF16));
378 9364 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_salt_data_0, 0);
379 : }
380 : }
381 9397 : return NDR_ERR_SUCCESS;
382 : }
383 :
384 3 : _PUBLIC_ void ndr_print_secrets_domain_info1_password(struct ndr_print *ndr, const char *name, const struct secrets_domain_info1_password *r)
385 : {
386 0 : uint32_t cntr_keys_0;
387 3 : ndr_print_struct(ndr, name, "secrets_domain_info1_password");
388 3 : if (r == NULL) { ndr_print_null(ndr); return; }
389 3 : ndr->depth++;
390 3 : ndr_print_NTTIME(ndr, "change_time", r->change_time);
391 3 : ndr_print_string(ndr, "change_server", r->change_server);
392 : {
393 3 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
394 3 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
395 3 : ndr_print_DATA_BLOB(ndr, "cleartext_blob", r->cleartext_blob);
396 3 : ndr->flags = _flags_save_DATA_BLOB;
397 : }
398 : {
399 3 : libndr_flags _flags_save_samr_Password = ndr->flags;
400 3 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
401 3 : ndr_print_samr_Password(ndr, "nt_hash", &r->nt_hash);
402 3 : ndr->flags = _flags_save_samr_Password;
403 : }
404 3 : ndr_print_ptr(ndr, "salt_data", r->salt_data);
405 3 : ndr->depth++;
406 3 : if (r->salt_data) {
407 0 : ndr_print_string(ndr, "salt_data", r->salt_data);
408 : }
409 3 : ndr->depth--;
410 3 : ndr_print_uint32(ndr, "default_iteration_count", r->default_iteration_count);
411 3 : ndr_print_uint16(ndr, "num_keys", r->num_keys);
412 3 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "keys", (uint32_t)(r->num_keys));
413 3 : ndr->depth++;
414 6 : for (cntr_keys_0 = 0; cntr_keys_0 < (r->num_keys); cntr_keys_0++) {
415 3 : ndr_print_secrets_domain_info1_kerberos_key(ndr, "keys", &r->keys[cntr_keys_0]);
416 : }
417 3 : ndr->depth--;
418 3 : ndr->depth--;
419 : }
420 :
421 10 : static enum ndr_err_code ndr_push_secrets_domain_info1_change(struct ndr_push *ndr, ndr_flags_type 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, ndr_flags_type 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 0 : 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 %"PRIu32": should exceed array length %"PRIu32"", 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 0 : _PUBLIC_ void ndr_print_secrets_domain_info1_change(struct ndr_print *ndr, const char *name, const struct secrets_domain_info1_change *r)
484 : {
485 0 : ndr_print_struct(ndr, name, "secrets_domain_info1_change");
486 0 : if (r == NULL) { ndr_print_null(ndr); return; }
487 0 : ndr->depth++;
488 0 : ndr_print_NTSTATUS(ndr, "local_status", r->local_status);
489 0 : ndr_print_NTSTATUS(ndr, "remote_status", r->remote_status);
490 0 : ndr_print_NTTIME(ndr, "change_time", r->change_time);
491 0 : ndr_print_string(ndr, "change_server", r->change_server);
492 0 : ndr_print_ptr(ndr, "password", r->password);
493 0 : ndr->depth++;
494 0 : ndr_print_secrets_domain_info1_password(ndr, "password", r->password);
495 0 : ndr->depth--;
496 0 : ndr->depth--;
497 : }
498 :
499 100 : _PUBLIC_ enum ndr_err_code ndr_push_secrets_domain_info1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct secrets_domain_info1 *r)
500 : {
501 100 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
502 100 : if (ndr_flags & NDR_SCALARS) {
503 100 : if (r->password == NULL) {
504 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
505 : }
506 100 : NDR_CHECK(ndr_push_align(ndr, 8));
507 100 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, 0));
508 100 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->join_time));
509 100 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_name, CH_UTF16)));
510 100 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
511 100 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_name, CH_UTF16)));
512 100 : 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 100 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
514 100 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
515 100 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
516 100 : 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 100 : NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->secure_channel_type));
518 100 : NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->domain_info));
519 100 : NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
520 100 : NDR_CHECK(ndr_push_lsa_TrustType(ndr, NDR_SCALARS, r->trust_type));
521 100 : NDR_CHECK(ndr_push_lsa_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
522 100 : NDR_CHECK(ndr_push_unique_ptr(ndr, NULL));
523 100 : NDR_CHECK(ndr_push_kerb_EncTypes(ndr, NDR_SCALARS, r->supported_enc_types));
524 100 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->salt_principal));
525 100 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->password_last_change));
526 100 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->password_changes));
527 100 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_change));
528 100 : NDR_CHECK(ndr_push_ref_ptr(ndr)); /* r->password */
529 100 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->old_password));
530 100 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->older_password));
531 100 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
532 : }
533 100 : if (ndr_flags & NDR_BUFFERS) {
534 100 : NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->domain_info));
535 0 : if (NULL) {
536 0 : NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, NULL));
537 : }
538 100 : if (r->salt_principal) {
539 79 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_principal, CH_UTF16)));
540 79 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
541 79 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->salt_principal, CH_UTF16)));
542 79 : 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 100 : if (r->next_change) {
545 10 : NDR_CHECK(ndr_push_secrets_domain_info1_change(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_change));
546 : }
547 100 : NDR_CHECK(ndr_push_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
548 100 : if (r->old_password) {
549 20 : NDR_CHECK(ndr_push_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->old_password));
550 : }
551 100 : 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 100 : return NDR_ERR_SUCCESS;
556 : }
557 :
558 4427 : _PUBLIC_ enum ndr_err_code ndr_pull_secrets_domain_info1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct secrets_domain_info1 *r)
559 : {
560 4427 : uint32_t size_computer_name_0 = 0;
561 4427 : uint32_t length_computer_name_0 = 0;
562 4427 : uint32_t size_account_name_0 = 0;
563 4427 : uint32_t length_account_name_0 = 0;
564 0 : uint32_t _ptr_reserved_routing;
565 4427 : TALLOC_CTX *_mem_save_reserved_routing_0 = NULL;
566 0 : uint32_t _ptr_salt_principal;
567 4427 : uint32_t size_salt_principal_1 = 0;
568 4427 : uint32_t length_salt_principal_1 = 0;
569 4427 : TALLOC_CTX *_mem_save_salt_principal_0 = NULL;
570 0 : uint32_t _ptr_next_change;
571 4427 : TALLOC_CTX *_mem_save_next_change_0 = NULL;
572 0 : uint32_t _ptr_password;
573 4427 : TALLOC_CTX *_mem_save_password_0 = NULL;
574 0 : uint32_t _ptr_old_password;
575 4427 : TALLOC_CTX *_mem_save_old_password_0 = NULL;
576 0 : uint32_t _ptr_older_password;
577 4427 : TALLOC_CTX *_mem_save_older_password_0 = NULL;
578 4427 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
579 4427 : if (ndr_flags & NDR_SCALARS) {
580 4427 : NDR_CHECK(ndr_pull_align(ndr, 8));
581 4427 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->reserved_flags));
582 4427 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->join_time));
583 4427 : NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_name));
584 4427 : NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_name));
585 4427 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->computer_name, &size_computer_name_0));
586 4427 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->computer_name, &length_computer_name_0));
587 4427 : if (length_computer_name_0 > size_computer_name_0) {
588 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_computer_name_0, length_computer_name_0);
589 : }
590 4427 : NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t)));
591 4427 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16));
592 4427 : NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
593 4427 : NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
594 4427 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->account_name, &size_account_name_0));
595 4427 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->account_name, &length_account_name_0));
596 4427 : if (length_account_name_0 > size_account_name_0) {
597 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_account_name_0, length_account_name_0);
598 : }
599 4427 : NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t)));
600 4427 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16));
601 4427 : NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->secure_channel_type));
602 4427 : NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->domain_info));
603 4427 : NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
604 4427 : NDR_CHECK(ndr_pull_lsa_TrustType(ndr, NDR_SCALARS, &r->trust_type));
605 4427 : NDR_CHECK(ndr_pull_lsa_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
606 4427 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_reserved_routing));
607 4427 : if (_ptr_reserved_routing) {
608 0 : NDR_PULL_ALLOC(ndr, r->reserved_routing);
609 : } else {
610 4427 : r->reserved_routing = NULL;
611 : }
612 4427 : NDR_CHECK(ndr_pull_kerb_EncTypes(ndr, NDR_SCALARS, &r->supported_enc_types));
613 4427 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_salt_principal));
614 4427 : if (_ptr_salt_principal) {
615 4406 : NDR_PULL_ALLOC(ndr, r->salt_principal);
616 : } else {
617 21 : r->salt_principal = NULL;
618 : }
619 4427 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->password_last_change));
620 4427 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->password_changes));
621 4427 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_change));
622 4427 : if (_ptr_next_change) {
623 20 : NDR_PULL_ALLOC(ndr, r->next_change);
624 : } else {
625 4407 : r->next_change = NULL;
626 : }
627 4427 : NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_password));
628 4427 : if (_ptr_password) {
629 4427 : NDR_PULL_ALLOC(ndr, r->password);
630 : } else {
631 0 : r->password = NULL;
632 : }
633 4427 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_old_password));
634 4427 : if (_ptr_old_password) {
635 2653 : NDR_PULL_ALLOC(ndr, r->old_password);
636 : } else {
637 1774 : r->old_password = NULL;
638 : }
639 4427 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_older_password));
640 4427 : if (_ptr_older_password) {
641 2297 : NDR_PULL_ALLOC(ndr, r->older_password);
642 : } else {
643 2130 : r->older_password = NULL;
644 : }
645 4427 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
646 : }
647 4427 : if (ndr_flags & NDR_BUFFERS) {
648 4427 : NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->domain_info));
649 4427 : 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 4427 : if (r->salt_principal) {
656 4406 : _mem_save_salt_principal_0 = NDR_PULL_GET_MEM_CTX(ndr);
657 4406 : NDR_PULL_SET_MEM_CTX(ndr, r->salt_principal, 0);
658 4406 : NDR_CHECK(ndr_pull_array_size(ndr, &r->salt_principal));
659 4406 : NDR_CHECK(ndr_pull_array_length(ndr, &r->salt_principal));
660 4406 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->salt_principal, &size_salt_principal_1));
661 4406 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->salt_principal, &length_salt_principal_1));
662 4406 : if (length_salt_principal_1 > size_salt_principal_1) {
663 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_salt_principal_1, length_salt_principal_1);
664 : }
665 4406 : NDR_CHECK(ndr_check_string_terminator(ndr, length_salt_principal_1, sizeof(uint16_t)));
666 4406 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->salt_principal, length_salt_principal_1, sizeof(uint16_t), CH_UTF16));
667 4406 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_salt_principal_0, 0);
668 : }
669 4427 : 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 4427 : _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
676 4427 : NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
677 4427 : NDR_CHECK(ndr_pull_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
678 4427 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
679 4427 : if (r->old_password) {
680 2653 : _mem_save_old_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
681 2653 : NDR_PULL_SET_MEM_CTX(ndr, r->old_password, 0);
682 2653 : NDR_CHECK(ndr_pull_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->old_password));
683 2653 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_password_0, 0);
684 : }
685 4427 : if (r->older_password) {
686 2297 : _mem_save_older_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
687 2297 : NDR_PULL_SET_MEM_CTX(ndr, r->older_password, 0);
688 2297 : NDR_CHECK(ndr_pull_secrets_domain_info1_password(ndr, NDR_SCALARS|NDR_BUFFERS, r->older_password));
689 2297 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_older_password_0, 0);
690 : }
691 : }
692 4427 : return NDR_ERR_SUCCESS;
693 : }
694 :
695 0 : static void ndr_print_flags_secrets_domain_info1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct secrets_domain_info1 *r)
696 : {
697 0 : ndr_print_secrets_domain_info1(ndr, name, r);
698 0 : }
699 :
700 3 : _PUBLIC_ void ndr_print_secrets_domain_info1(struct ndr_print *ndr, const char *name, const struct secrets_domain_info1 *r)
701 : {
702 3 : ndr_print_struct(ndr, name, "secrets_domain_info1");
703 3 : if (r == NULL) { ndr_print_null(ndr); return; }
704 3 : ndr->depth++;
705 3 : ndr_print_hyper(ndr, "reserved_flags", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved_flags);
706 3 : ndr_print_NTTIME(ndr, "join_time", r->join_time);
707 3 : ndr_print_string(ndr, "computer_name", r->computer_name);
708 3 : ndr_print_string(ndr, "account_name", r->account_name);
709 3 : ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->secure_channel_type);
710 3 : ndr_print_lsa_DnsDomainInfo(ndr, "domain_info", &r->domain_info);
711 3 : ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
712 3 : ndr_print_lsa_TrustType(ndr, "trust_type", r->trust_type);
713 3 : ndr_print_lsa_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
714 3 : ndr_print_ptr(ndr, "reserved_routing", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NULL:r->reserved_routing);
715 3 : ndr->depth++;
716 3 : 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 3 : ndr->depth--;
720 3 : ndr_print_kerb_EncTypes(ndr, "supported_enc_types", r->supported_enc_types);
721 3 : ndr_print_ptr(ndr, "salt_principal", r->salt_principal);
722 3 : ndr->depth++;
723 3 : if (r->salt_principal) {
724 0 : ndr_print_string(ndr, "salt_principal", r->salt_principal);
725 : }
726 3 : ndr->depth--;
727 3 : ndr_print_NTTIME(ndr, "password_last_change", r->password_last_change);
728 3 : ndr_print_hyper(ndr, "password_changes", r->password_changes);
729 3 : ndr_print_ptr(ndr, "next_change", r->next_change);
730 3 : ndr->depth++;
731 3 : if (r->next_change) {
732 0 : ndr_print_secrets_domain_info1_change(ndr, "next_change", r->next_change);
733 : }
734 3 : ndr->depth--;
735 3 : ndr_print_ptr(ndr, "password", r->password);
736 3 : ndr->depth++;
737 3 : ndr_print_secrets_domain_info1_password(ndr, "password", r->password);
738 3 : ndr->depth--;
739 3 : ndr_print_ptr(ndr, "old_password", r->old_password);
740 3 : ndr->depth++;
741 3 : if (r->old_password) {
742 0 : ndr_print_secrets_domain_info1_password(ndr, "old_password", r->old_password);
743 : }
744 3 : ndr->depth--;
745 3 : ndr_print_ptr(ndr, "older_password", r->older_password);
746 3 : ndr->depth++;
747 3 : if (r->older_password) {
748 0 : ndr_print_secrets_domain_info1_password(ndr, "older_password", r->older_password);
749 : }
750 3 : ndr->depth--;
751 3 : ndr->depth--;
752 : }
753 :
754 100 : static enum ndr_err_code ndr_push_secrets_domain_info_version(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum secrets_domain_info_version r)
755 : {
756 100 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
757 100 : return NDR_ERR_SUCCESS;
758 : }
759 :
760 4427 : static enum ndr_err_code ndr_pull_secrets_domain_info_version(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum secrets_domain_info_version *r)
761 : {
762 0 : uint32_t v;
763 4427 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
764 4427 : *r = v;
765 4427 : return NDR_ERR_SUCCESS;
766 : }
767 :
768 3 : _PUBLIC_ void ndr_print_secrets_domain_info_version(struct ndr_print *ndr, const char *name, enum secrets_domain_info_version r)
769 : {
770 3 : const char *val = NULL;
771 :
772 3 : switch (r) {
773 3 : case SECRETS_DOMAIN_INFO_VERSION_1: val = "SECRETS_DOMAIN_INFO_VERSION_1"; break;
774 : }
775 3 : ndr_print_enum(ndr, name, "ENUM", val, r);
776 3 : }
777 :
778 200 : static enum ndr_err_code ndr_push_secrets_domain_infoU(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union secrets_domain_infoU *r)
779 : {
780 0 : uint32_t level;
781 200 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
782 200 : if (ndr_flags & NDR_SCALARS) {
783 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
784 100 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
785 100 : NDR_CHECK(ndr_push_union_align(ndr, 5));
786 100 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
787 100 : NDR_CHECK(ndr_push_union_align(ndr, 5));
788 100 : switch (level) {
789 100 : case SECRETS_DOMAIN_INFO_VERSION_1: {
790 100 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
791 100 : break; }
792 :
793 0 : default: {
794 0 : break; }
795 :
796 : }
797 : }
798 200 : if (ndr_flags & NDR_BUFFERS) {
799 100 : if (!(ndr_flags & NDR_SCALARS)) {
800 : /* We didn't get it above, and the token is not needed after this. */
801 100 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
802 : }
803 100 : switch (level) {
804 100 : case SECRETS_DOMAIN_INFO_VERSION_1:
805 100 : if (r->info1) {
806 100 : NDR_CHECK(ndr_push_secrets_domain_info1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
807 : }
808 100 : break;
809 :
810 0 : default:
811 0 : break;
812 :
813 : }
814 : }
815 200 : return NDR_ERR_SUCCESS;
816 : }
817 :
818 8854 : static enum ndr_err_code ndr_pull_secrets_domain_infoU(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union secrets_domain_infoU *r)
819 : {
820 0 : uint32_t level;
821 0 : uint32_t _level;
822 8854 : TALLOC_CTX *_mem_save_info1_0 = NULL;
823 0 : uint32_t _ptr_info1;
824 8854 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
825 8854 : if (ndr_flags & NDR_SCALARS) {
826 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
827 4427 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
828 4427 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
829 4427 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
830 4427 : if (_level != level) {
831 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
832 : }
833 4427 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
834 4427 : switch (level) {
835 4427 : case SECRETS_DOMAIN_INFO_VERSION_1: {
836 4427 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
837 4427 : if (_ptr_info1) {
838 4427 : NDR_PULL_ALLOC(ndr, r->info1);
839 : } else {
840 0 : r->info1 = NULL;
841 : }
842 4427 : break; }
843 :
844 0 : default: {
845 0 : break; }
846 :
847 : }
848 : }
849 8854 : if (ndr_flags & NDR_BUFFERS) {
850 4427 : if (!(ndr_flags & NDR_SCALARS)) {
851 : /* We didn't get it above, and the token is not needed after this. */
852 4427 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
853 : }
854 4427 : switch (level) {
855 4427 : case SECRETS_DOMAIN_INFO_VERSION_1:
856 4427 : if (r->info1) {
857 4427 : _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
858 4427 : NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
859 4427 : NDR_CHECK(ndr_pull_secrets_domain_info1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
860 4427 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
861 : }
862 4427 : break;
863 :
864 0 : default:
865 0 : break;
866 :
867 : }
868 : }
869 8854 : return NDR_ERR_SUCCESS;
870 : }
871 :
872 3 : _PUBLIC_ void ndr_print_secrets_domain_infoU(struct ndr_print *ndr, const char *name, const union secrets_domain_infoU *r)
873 : {
874 0 : uint32_t level;
875 3 : level = ndr_print_steal_switch_value(ndr, r);
876 3 : ndr_print_union(ndr, name, level, "secrets_domain_infoU");
877 3 : switch (level) {
878 3 : case SECRETS_DOMAIN_INFO_VERSION_1:
879 3 : ndr_print_ptr(ndr, "info1", r->info1);
880 3 : ndr->depth++;
881 3 : if (r->info1) {
882 3 : ndr_print_secrets_domain_info1(ndr, "info1", r->info1);
883 : }
884 3 : ndr->depth--;
885 3 : break;
886 :
887 0 : default:
888 0 : break;
889 :
890 : }
891 3 : }
892 :
893 100 : _PUBLIC_ enum ndr_err_code ndr_push_secrets_domain_infoB(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct secrets_domain_infoB *r)
894 : {
895 100 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
896 100 : if (ndr_flags & NDR_SCALARS) {
897 100 : NDR_CHECK(ndr_push_align(ndr, 5));
898 100 : NDR_CHECK(ndr_push_secrets_domain_info_version(ndr, NDR_SCALARS, r->version));
899 100 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
900 100 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
901 100 : NDR_CHECK(ndr_push_secrets_domain_infoU(ndr, NDR_SCALARS, &r->info));
902 100 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
903 : }
904 100 : if (ndr_flags & NDR_BUFFERS) {
905 100 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->version));
906 100 : NDR_CHECK(ndr_push_secrets_domain_infoU(ndr, NDR_BUFFERS, &r->info));
907 : }
908 100 : return NDR_ERR_SUCCESS;
909 : }
910 :
911 4427 : _PUBLIC_ enum ndr_err_code ndr_pull_secrets_domain_infoB(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct secrets_domain_infoB *r)
912 : {
913 4427 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
914 4427 : if (ndr_flags & NDR_SCALARS) {
915 4427 : NDR_CHECK(ndr_pull_align(ndr, 5));
916 4427 : NDR_CHECK(ndr_pull_secrets_domain_info_version(ndr, NDR_SCALARS, &r->version));
917 4427 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
918 4427 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
919 4427 : NDR_CHECK(ndr_pull_secrets_domain_infoU(ndr, NDR_SCALARS, &r->info));
920 4427 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
921 : }
922 4427 : if (ndr_flags & NDR_BUFFERS) {
923 4427 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->version));
924 4427 : NDR_CHECK(ndr_pull_secrets_domain_infoU(ndr, NDR_BUFFERS, &r->info));
925 : }
926 4427 : return NDR_ERR_SUCCESS;
927 : }
928 :
929 0 : static void ndr_print_flags_secrets_domain_infoB(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct secrets_domain_infoB *r)
930 : {
931 0 : ndr_print_secrets_domain_infoB(ndr, name, r);
932 0 : }
933 :
934 3 : _PUBLIC_ void ndr_print_secrets_domain_infoB(struct ndr_print *ndr, const char *name, const struct secrets_domain_infoB *r)
935 : {
936 3 : ndr_print_struct(ndr, name, "secrets_domain_infoB");
937 3 : if (r == NULL) { ndr_print_null(ndr); return; }
938 3 : ndr->depth++;
939 3 : ndr_print_secrets_domain_info_version(ndr, "version", r->version);
940 3 : ndr_print_uint32(ndr, "reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved);
941 3 : ndr_print_set_switch_value(ndr, &r->info, r->version);
942 3 : ndr_print_secrets_domain_infoU(ndr, "info", &r->info);
943 3 : 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 */
|