Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/librpc/gen_ndr/ndr_gkdi.h"
5 :
6 : #include "librpc/gen_ndr/ndr_misc.h"
7 68 : static enum ndr_err_code ndr_push_EnvelopeFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
8 : {
9 68 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10 66 : return NDR_ERR_SUCCESS;
11 : }
12 :
13 77 : static enum ndr_err_code ndr_pull_EnvelopeFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
14 : {
15 2 : uint32_t v;
16 77 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17 77 : *r = v;
18 77 : return NDR_ERR_SUCCESS;
19 : }
20 :
21 0 : _PUBLIC_ void ndr_print_EnvelopeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
22 : {
23 0 : ndr_print_uint32(ndr, name, r);
24 0 : ndr->depth++;
25 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENVELOPE_FLAG_TRANSPORTING_PUBLIC_KEY", ENVELOPE_FLAG_TRANSPORTING_PUBLIC_KEY, r);
26 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENVELOPE_FLAG_KEY_MAY_ENCRYPT_NEW_DATA", ENVELOPE_FLAG_KEY_MAY_ENCRYPT_NEW_DATA, r);
27 0 : ndr->depth--;
28 0 : }
29 :
30 67 : _PUBLIC_ enum ndr_err_code ndr_push_KeyEnvelope(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct KeyEnvelope *r)
31 : {
32 67 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
33 67 : if (ndr_flags & NDR_SCALARS) {
34 67 : NDR_CHECK(ndr_push_align(ndr, 4));
35 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
36 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x4b53444b));
37 68 : NDR_CHECK(ndr_push_EnvelopeFlags(ndr, NDR_SCALARS, r->flags));
38 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l0_index));
39 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l1_index));
40 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l2_index));
41 67 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->root_key_id));
42 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->additional_info_len));
43 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_charset_length(r->domain_name, CH_UTF16)));
44 67 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_charset_length(r->forest_name, CH_UTF16)));
45 : {
46 67 : libndr_flags _flags_save_uint8 = ndr->flags;
47 67 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
48 67 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->additional_info, r->additional_info_len));
49 67 : ndr->flags = _flags_save_uint8;
50 : }
51 : {
52 67 : libndr_flags _flags_save_string = ndr->flags;
53 67 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
54 67 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
55 67 : ndr->flags = _flags_save_string;
56 : }
57 : {
58 67 : libndr_flags _flags_save_string = ndr->flags;
59 67 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
60 67 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->forest_name));
61 67 : ndr->flags = _flags_save_string;
62 : }
63 67 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
64 : }
65 67 : if (ndr_flags & NDR_BUFFERS) {
66 1 : }
67 67 : return NDR_ERR_SUCCESS;
68 : }
69 :
70 76 : _PUBLIC_ enum ndr_err_code ndr_pull_KeyEnvelope(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct KeyEnvelope *r)
71 : {
72 76 : uint32_t size_additional_info_0 = 0;
73 76 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
74 76 : if (ndr_flags & NDR_SCALARS) {
75 76 : NDR_CHECK(ndr_pull_align(ndr, 4));
76 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
77 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->magic));
78 76 : if (r->magic < 1263748171 || r->magic > 1263748171) {
79 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->magic), (uint32_t)(1263748171), (uint32_t)(1263748171));
80 : }
81 77 : NDR_CHECK(ndr_pull_EnvelopeFlags(ndr, NDR_SCALARS, &r->flags));
82 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l0_index));
83 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l1_index));
84 76 : if (r->l1_index > 31) {
85 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->l1_index), (uint32_t)(0), (uint32_t)(31));
86 : }
87 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l2_index));
88 76 : if (r->l2_index > 31) {
89 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->l2_index), (uint32_t)(0), (uint32_t)(31));
90 : }
91 76 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->root_key_id));
92 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->additional_info_len));
93 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->domain_name_len));
94 76 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->forest_name_len));
95 : {
96 76 : libndr_flags _flags_save_uint8 = ndr->flags;
97 76 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
98 76 : size_additional_info_0 = r->additional_info_len;
99 76 : NDR_PULL_ALLOC_N(ndr, r->additional_info, size_additional_info_0);
100 76 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->additional_info, size_additional_info_0));
101 76 : ndr->flags = _flags_save_uint8;
102 : }
103 : {
104 76 : libndr_flags _flags_save_string = ndr->flags;
105 76 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
106 76 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
107 76 : ndr->flags = _flags_save_string;
108 : }
109 : {
110 76 : libndr_flags _flags_save_string = ndr->flags;
111 76 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
112 76 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->forest_name));
113 76 : ndr->flags = _flags_save_string;
114 : }
115 76 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
116 : }
117 76 : if (ndr_flags & NDR_BUFFERS) {
118 1 : }
119 76 : return NDR_ERR_SUCCESS;
120 : }
121 :
122 0 : static void ndr_print_flags_KeyEnvelope(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct KeyEnvelope *r)
123 : {
124 0 : ndr_print_KeyEnvelope(ndr, name, r);
125 0 : }
126 :
127 0 : _PUBLIC_ void ndr_print_KeyEnvelope(struct ndr_print *ndr, const char *name, const struct KeyEnvelope *r)
128 : {
129 0 : ndr_print_struct(ndr, name, "KeyEnvelope");
130 0 : if (r == NULL) { ndr_print_null(ndr); return; }
131 0 : ndr->depth++;
132 0 : ndr_print_uint32(ndr, "version", r->version);
133 0 : ndr_print_uint32(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x4b53444b:r->magic);
134 0 : ndr_print_EnvelopeFlags(ndr, "flags", r->flags);
135 0 : ndr_print_uint32(ndr, "l0_index", r->l0_index);
136 0 : ndr_print_uint32(ndr, "l1_index", r->l1_index);
137 0 : ndr_print_uint32(ndr, "l2_index", r->l2_index);
138 0 : ndr_print_GUID(ndr, "root_key_id", &r->root_key_id);
139 0 : ndr_print_uint32(ndr, "additional_info_len", r->additional_info_len);
140 0 : ndr_print_uint32(ndr, "domain_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * ndr_charset_length(r->domain_name, CH_UTF16):r->domain_name_len);
141 0 : ndr_print_uint32(ndr, "forest_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * ndr_charset_length(r->forest_name, CH_UTF16):r->forest_name_len);
142 : {
143 0 : libndr_flags _flags_save_uint8 = ndr->flags;
144 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
145 0 : ndr_print_array_uint8(ndr, "additional_info", r->additional_info, r->additional_info_len);
146 0 : ndr->flags = _flags_save_uint8;
147 : }
148 : {
149 0 : libndr_flags _flags_save_string = ndr->flags;
150 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
151 0 : ndr_print_string(ndr, "domain_name", r->domain_name);
152 0 : ndr->flags = _flags_save_string;
153 : }
154 : {
155 0 : libndr_flags _flags_save_string = ndr->flags;
156 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
157 0 : ndr_print_string(ndr, "forest_name", r->forest_name);
158 0 : ndr->flags = _flags_save_string;
159 : }
160 0 : ndr->depth--;
161 : }
162 :
163 1 : _PUBLIC_ enum ndr_err_code ndr_push_GroupKeyEnvelope(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct GroupKeyEnvelope *r)
164 : {
165 1 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
166 1 : if (ndr_flags & NDR_SCALARS) {
167 1 : NDR_CHECK(ndr_push_align(ndr, 4));
168 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
169 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x4b53444b));
170 2 : NDR_CHECK(ndr_push_EnvelopeFlags(ndr, NDR_SCALARS, r->flags));
171 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l0_index));
172 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l1_index));
173 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l2_index));
174 1 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->root_key_id));
175 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_charset_length(r->kdf_algorithm, CH_UTF16)));
176 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->kdf_parameters_len));
177 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_charset_length(r->secret_agreement_algorithm, CH_UTF16)));
178 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secret_agreement_parameters_len));
179 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->private_key_len));
180 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->public_key_len));
181 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l1_key_len));
182 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->l2_key_len));
183 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_charset_length(r->domain_name, CH_UTF16)));
184 1 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_charset_length(r->forest_name, CH_UTF16)));
185 : {
186 1 : libndr_flags _flags_save_string = ndr->flags;
187 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
188 1 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->kdf_algorithm));
189 1 : ndr->flags = _flags_save_string;
190 : }
191 1 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->kdf_parameters, r->kdf_parameters_len));
192 : {
193 1 : libndr_flags _flags_save_string = ndr->flags;
194 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
195 1 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->secret_agreement_algorithm));
196 1 : ndr->flags = _flags_save_string;
197 : }
198 1 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->secret_agreement_parameters, r->secret_agreement_parameters_len));
199 : {
200 1 : libndr_flags _flags_save_string = ndr->flags;
201 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
202 1 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
203 1 : ndr->flags = _flags_save_string;
204 : }
205 : {
206 1 : libndr_flags _flags_save_string = ndr->flags;
207 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
208 1 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->forest_name));
209 1 : ndr->flags = _flags_save_string;
210 : }
211 : {
212 1 : libndr_flags _flags_save_uint8 = ndr->flags;
213 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
214 1 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->l1_key, r->l1_key_len));
215 1 : ndr->flags = _flags_save_uint8;
216 : }
217 : {
218 1 : libndr_flags _flags_save_uint8 = ndr->flags;
219 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
220 1 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->l2_key, r->l2_key_len));
221 1 : ndr->flags = _flags_save_uint8;
222 : }
223 1 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
224 : }
225 1 : if (ndr_flags & NDR_BUFFERS) {
226 1 : }
227 1 : return NDR_ERR_SUCCESS;
228 : }
229 :
230 1 : _PUBLIC_ enum ndr_err_code ndr_pull_GroupKeyEnvelope(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct GroupKeyEnvelope *r)
231 : {
232 1 : uint32_t size_kdf_parameters_0 = 0;
233 1 : uint32_t size_secret_agreement_parameters_0 = 0;
234 1 : uint32_t size_l1_key_0 = 0;
235 1 : uint32_t size_l2_key_0 = 0;
236 1 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
237 1 : if (ndr_flags & NDR_SCALARS) {
238 1 : NDR_CHECK(ndr_pull_align(ndr, 4));
239 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
240 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->magic));
241 1 : if (r->magic < 1263748171 || r->magic > 1263748171) {
242 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->magic), (uint32_t)(1263748171), (uint32_t)(1263748171));
243 : }
244 2 : NDR_CHECK(ndr_pull_EnvelopeFlags(ndr, NDR_SCALARS, &r->flags));
245 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l0_index));
246 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l1_index));
247 1 : if (r->l1_index > 31) {
248 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->l1_index), (uint32_t)(0), (uint32_t)(31));
249 : }
250 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l2_index));
251 1 : if (r->l2_index > 31) {
252 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->l2_index), (uint32_t)(0), (uint32_t)(31));
253 : }
254 1 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->root_key_id));
255 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->kdf_algorithm_len));
256 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->kdf_parameters_len));
257 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secret_agreement_algorithm_len));
258 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secret_agreement_parameters_len));
259 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->private_key_len));
260 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->public_key_len));
261 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l1_key_len));
262 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->l2_key_len));
263 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->domain_name_len));
264 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->forest_name_len));
265 : {
266 1 : libndr_flags _flags_save_string = ndr->flags;
267 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
268 1 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->kdf_algorithm));
269 1 : ndr->flags = _flags_save_string;
270 : }
271 1 : size_kdf_parameters_0 = r->kdf_parameters_len;
272 1 : NDR_PULL_ALLOC_N(ndr, r->kdf_parameters, size_kdf_parameters_0);
273 1 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->kdf_parameters, size_kdf_parameters_0));
274 : {
275 1 : libndr_flags _flags_save_string = ndr->flags;
276 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
277 1 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->secret_agreement_algorithm));
278 1 : ndr->flags = _flags_save_string;
279 : }
280 1 : size_secret_agreement_parameters_0 = r->secret_agreement_parameters_len;
281 1 : NDR_PULL_ALLOC_N(ndr, r->secret_agreement_parameters, size_secret_agreement_parameters_0);
282 1 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->secret_agreement_parameters, size_secret_agreement_parameters_0));
283 : {
284 1 : libndr_flags _flags_save_string = ndr->flags;
285 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
286 1 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
287 1 : ndr->flags = _flags_save_string;
288 : }
289 : {
290 1 : libndr_flags _flags_save_string = ndr->flags;
291 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
292 1 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->forest_name));
293 1 : ndr->flags = _flags_save_string;
294 : }
295 : {
296 1 : libndr_flags _flags_save_uint8 = ndr->flags;
297 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
298 1 : size_l1_key_0 = r->l1_key_len;
299 1 : NDR_PULL_ALLOC_N(ndr, r->l1_key, size_l1_key_0);
300 1 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->l1_key, size_l1_key_0));
301 1 : ndr->flags = _flags_save_uint8;
302 : }
303 : {
304 1 : libndr_flags _flags_save_uint8 = ndr->flags;
305 1 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
306 1 : size_l2_key_0 = r->l2_key_len;
307 1 : NDR_PULL_ALLOC_N(ndr, r->l2_key, size_l2_key_0);
308 1 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->l2_key, size_l2_key_0));
309 1 : ndr->flags = _flags_save_uint8;
310 : }
311 1 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
312 : }
313 1 : if (ndr_flags & NDR_BUFFERS) {
314 1 : }
315 1 : return NDR_ERR_SUCCESS;
316 : }
317 :
318 0 : static void ndr_print_flags_GroupKeyEnvelope(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct GroupKeyEnvelope *r)
319 : {
320 0 : ndr_print_GroupKeyEnvelope(ndr, name, r);
321 0 : }
322 :
323 0 : _PUBLIC_ void ndr_print_GroupKeyEnvelope(struct ndr_print *ndr, const char *name, const struct GroupKeyEnvelope *r)
324 : {
325 0 : ndr_print_struct(ndr, name, "GroupKeyEnvelope");
326 0 : if (r == NULL) { ndr_print_null(ndr); return; }
327 0 : ndr->depth++;
328 0 : ndr_print_uint32(ndr, "version", r->version);
329 0 : ndr_print_uint32(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x4b53444b:r->magic);
330 0 : ndr_print_EnvelopeFlags(ndr, "flags", r->flags);
331 0 : ndr_print_uint32(ndr, "l0_index", r->l0_index);
332 0 : ndr_print_uint32(ndr, "l1_index", r->l1_index);
333 0 : ndr_print_uint32(ndr, "l2_index", r->l2_index);
334 0 : ndr_print_GUID(ndr, "root_key_id", &r->root_key_id);
335 0 : ndr_print_uint32(ndr, "kdf_algorithm_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * ndr_charset_length(r->kdf_algorithm, CH_UTF16):r->kdf_algorithm_len);
336 0 : ndr_print_uint32(ndr, "kdf_parameters_len", r->kdf_parameters_len);
337 0 : ndr_print_uint32(ndr, "secret_agreement_algorithm_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * ndr_charset_length(r->secret_agreement_algorithm, CH_UTF16):r->secret_agreement_algorithm_len);
338 0 : ndr_print_uint32(ndr, "secret_agreement_parameters_len", r->secret_agreement_parameters_len);
339 0 : ndr_print_uint32(ndr, "private_key_len", r->private_key_len);
340 0 : ndr_print_uint32(ndr, "public_key_len", r->public_key_len);
341 0 : ndr_print_uint32(ndr, "l1_key_len", r->l1_key_len);
342 0 : ndr_print_uint32(ndr, "l2_key_len", r->l2_key_len);
343 0 : ndr_print_uint32(ndr, "domain_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * ndr_charset_length(r->domain_name, CH_UTF16):r->domain_name_len);
344 0 : ndr_print_uint32(ndr, "forest_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * ndr_charset_length(r->forest_name, CH_UTF16):r->forest_name_len);
345 : {
346 0 : libndr_flags _flags_save_string = ndr->flags;
347 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
348 0 : ndr_print_string(ndr, "kdf_algorithm", r->kdf_algorithm);
349 0 : ndr->flags = _flags_save_string;
350 : }
351 0 : ndr_print_array_uint8(ndr, "kdf_parameters", r->kdf_parameters, r->kdf_parameters_len);
352 : {
353 0 : libndr_flags _flags_save_string = ndr->flags;
354 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
355 0 : ndr_print_string(ndr, "secret_agreement_algorithm", r->secret_agreement_algorithm);
356 0 : ndr->flags = _flags_save_string;
357 : }
358 0 : ndr_print_array_uint8(ndr, "secret_agreement_parameters", r->secret_agreement_parameters, r->secret_agreement_parameters_len);
359 : {
360 0 : libndr_flags _flags_save_string = ndr->flags;
361 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
362 0 : ndr_print_string(ndr, "domain_name", r->domain_name);
363 0 : ndr->flags = _flags_save_string;
364 : }
365 : {
366 0 : libndr_flags _flags_save_string = ndr->flags;
367 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
368 0 : ndr_print_string(ndr, "forest_name", r->forest_name);
369 0 : ndr->flags = _flags_save_string;
370 : }
371 : {
372 0 : libndr_flags _flags_save_uint8 = ndr->flags;
373 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
374 0 : ndr_print_array_uint8(ndr, "l1_key", r->l1_key, r->l1_key_len);
375 0 : ndr->flags = _flags_save_uint8;
376 : }
377 : {
378 0 : libndr_flags _flags_save_uint8 = ndr->flags;
379 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_IS_SECRET);
380 0 : ndr_print_array_uint8(ndr, "l2_key", r->l2_key, r->l2_key_len);
381 0 : ndr->flags = _flags_save_uint8;
382 : }
383 0 : ndr->depth--;
384 : }
385 :
386 155 : _PUBLIC_ enum ndr_err_code ndr_push_KdfParameters(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct KdfParameters *r)
387 : {
388 155 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
389 155 : if (ndr_flags & NDR_SCALARS) {
390 155 : NDR_CHECK(ndr_push_align(ndr, 4));
391 155 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
392 155 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
393 155 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * ndr_charset_length(r->hash_algorithm, CH_UTF16)));
394 155 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
395 : {
396 155 : libndr_flags _flags_save_string = ndr->flags;
397 155 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
398 155 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hash_algorithm));
399 155 : ndr->flags = _flags_save_string;
400 : }
401 155 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
402 : }
403 155 : if (ndr_flags & NDR_BUFFERS) {
404 23 : }
405 155 : return NDR_ERR_SUCCESS;
406 : }
407 :
408 295 : _PUBLIC_ enum ndr_err_code ndr_pull_KdfParameters(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct KdfParameters *r)
409 : {
410 295 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
411 295 : if (ndr_flags & NDR_SCALARS) {
412 295 : NDR_CHECK(ndr_pull_align(ndr, 4));
413 295 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->padding_0));
414 295 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->padding_1));
415 295 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->hash_algorithm_len));
416 295 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->padding_2));
417 : {
418 295 : libndr_flags _flags_save_string = ndr->flags;
419 295 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
420 295 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hash_algorithm));
421 295 : ndr->flags = _flags_save_string;
422 : }
423 295 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
424 : }
425 295 : if (ndr_flags & NDR_BUFFERS) {
426 23 : }
427 295 : return NDR_ERR_SUCCESS;
428 : }
429 :
430 0 : static void ndr_print_flags_KdfParameters(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct KdfParameters *r)
431 : {
432 0 : ndr_print_KdfParameters(ndr, name, r);
433 0 : }
434 :
435 0 : _PUBLIC_ void ndr_print_KdfParameters(struct ndr_print *ndr, const char *name, const struct KdfParameters *r)
436 : {
437 0 : ndr_print_struct(ndr, name, "KdfParameters");
438 0 : if (r == NULL) { ndr_print_null(ndr); return; }
439 0 : ndr->depth++;
440 0 : ndr_print_uint32(ndr, "padding_0", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->padding_0);
441 0 : ndr_print_uint32(ndr, "padding_1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->padding_1);
442 0 : ndr_print_uint32(ndr, "hash_algorithm_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * ndr_charset_length(r->hash_algorithm, CH_UTF16):r->hash_algorithm_len);
443 0 : ndr_print_uint32(ndr, "padding_2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->padding_2);
444 : {
445 0 : libndr_flags _flags_save_string = ndr->flags;
446 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
447 0 : ndr_print_string(ndr, "hash_algorithm", r->hash_algorithm);
448 0 : ndr->flags = _flags_save_string;
449 : }
450 0 : ndr->depth--;
451 : }
452 :
453 59 : _PUBLIC_ enum ndr_err_code ndr_push_FfcDhParameters(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct FfcDhParameters *r)
454 : {
455 59 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
456 59 : if (ndr_flags & NDR_SCALARS) {
457 59 : NDR_CHECK(ndr_push_align(ndr, 4));
458 59 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 12 + 2 * r->key_length));
459 59 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x4d504844));
460 59 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->key_length));
461 59 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->field_order, r->key_length));
462 59 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->generator, r->key_length));
463 59 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
464 : }
465 59 : if (ndr_flags & NDR_BUFFERS) {
466 1 : }
467 59 : return NDR_ERR_SUCCESS;
468 : }
469 :
470 1 : _PUBLIC_ enum ndr_err_code ndr_pull_FfcDhParameters(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct FfcDhParameters *r)
471 : {
472 1 : uint32_t size_field_order_0 = 0;
473 1 : uint32_t size_generator_0 = 0;
474 1 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
475 1 : if (ndr_flags & NDR_SCALARS) {
476 1 : NDR_CHECK(ndr_pull_align(ndr, 4));
477 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
478 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->magic));
479 1 : if (r->magic < 1297107012 || r->magic > 1297107012) {
480 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->magic), (uint32_t)(1297107012), (uint32_t)(1297107012));
481 : }
482 1 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->key_length));
483 1 : size_field_order_0 = r->key_length;
484 1 : NDR_PULL_ALLOC_N(ndr, r->field_order, size_field_order_0);
485 1 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->field_order, size_field_order_0));
486 1 : size_generator_0 = r->key_length;
487 1 : NDR_PULL_ALLOC_N(ndr, r->generator, size_generator_0);
488 1 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->generator, size_generator_0));
489 1 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
490 : }
491 1 : if (ndr_flags & NDR_BUFFERS) {
492 1 : }
493 1 : return NDR_ERR_SUCCESS;
494 : }
495 :
496 0 : static void ndr_print_flags_FfcDhParameters(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct FfcDhParameters *r)
497 : {
498 0 : ndr_print_FfcDhParameters(ndr, name, r);
499 0 : }
500 :
501 0 : _PUBLIC_ void ndr_print_FfcDhParameters(struct ndr_print *ndr, const char *name, const struct FfcDhParameters *r)
502 : {
503 0 : ndr_print_struct(ndr, name, "FfcDhParameters");
504 0 : if (r == NULL) { ndr_print_null(ndr); return; }
505 0 : ndr->depth++;
506 0 : ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?12 + 2 * r->key_length:r->length);
507 0 : ndr_print_uint32(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x4d504844:r->magic);
508 0 : ndr_print_uint32(ndr, "key_length", r->key_length);
509 0 : ndr_print_array_uint8(ndr, "field_order", r->field_order, r->key_length);
510 0 : ndr_print_array_uint8(ndr, "generator", r->generator, r->key_length);
511 0 : ndr->depth--;
512 : }
513 :
514 3672 : _PUBLIC_ enum ndr_err_code ndr_push_GkdiDerivationCtx(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct GkdiDerivationCtx *r)
515 : {
516 3672 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
517 3672 : if (ndr_flags & NDR_SCALARS) {
518 3672 : NDR_CHECK(ndr_push_align(ndr, 4));
519 3672 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
520 3672 : NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->l0_idx));
521 3672 : NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->l1_idx));
522 3672 : NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->l2_idx));
523 : {
524 3672 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
525 3672 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
526 3672 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->target_security_descriptor));
527 3672 : ndr->flags = _flags_save_DATA_BLOB;
528 : }
529 3672 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
530 : }
531 3672 : if (ndr_flags & NDR_BUFFERS) {
532 336 : }
533 3672 : return NDR_ERR_SUCCESS;
534 : }
535 :
536 0 : _PUBLIC_ enum ndr_err_code ndr_pull_GkdiDerivationCtx(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct GkdiDerivationCtx *r)
537 : {
538 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
539 0 : if (ndr_flags & NDR_SCALARS) {
540 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
541 0 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
542 0 : NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->l0_idx));
543 0 : NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->l1_idx));
544 0 : NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->l2_idx));
545 : {
546 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
547 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
548 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->target_security_descriptor));
549 0 : ndr->flags = _flags_save_DATA_BLOB;
550 : }
551 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
552 : }
553 0 : if (ndr_flags & NDR_BUFFERS) {
554 0 : }
555 0 : return NDR_ERR_SUCCESS;
556 : }
557 :
558 0 : static void ndr_print_flags_GkdiDerivationCtx(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct GkdiDerivationCtx *r)
559 : {
560 0 : ndr_print_GkdiDerivationCtx(ndr, name, r);
561 0 : }
562 :
563 0 : _PUBLIC_ void ndr_print_GkdiDerivationCtx(struct ndr_print *ndr, const char *name, const struct GkdiDerivationCtx *r)
564 : {
565 0 : ndr_print_struct(ndr, name, "GkdiDerivationCtx");
566 0 : if (r == NULL) { ndr_print_null(ndr); return; }
567 0 : ndr->depth++;
568 0 : ndr_print_GUID(ndr, "guid", &r->guid);
569 0 : ndr_print_int32(ndr, "l0_idx", r->l0_idx);
570 0 : ndr_print_int32(ndr, "l1_idx", r->l1_idx);
571 0 : ndr_print_int32(ndr, "l2_idx", r->l2_idx);
572 : {
573 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
574 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
575 0 : ndr_print_DATA_BLOB(ndr, "target_security_descriptor", r->target_security_descriptor);
576 0 : ndr->flags = _flags_save_DATA_BLOB;
577 : }
578 0 : ndr->depth--;
579 : }
580 :
581 0 : static enum ndr_err_code ndr_push_gkdi_GetKey(struct ndr_push *ndr, ndr_flags_type flags, const struct gkdi_GetKey *r)
582 : {
583 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
584 0 : if (flags & NDR_IN) {
585 0 : if (r->in.target_sd == NULL) {
586 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
587 : }
588 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.target_sd_len));
589 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.target_sd_len));
590 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.target_sd, r->in.target_sd_len));
591 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.root_key_id));
592 0 : if (r->in.root_key_id) {
593 0 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.root_key_id));
594 : }
595 0 : NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.l0_key_id));
596 0 : NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.l1_key_id));
597 0 : NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.l2_key_id));
598 : }
599 0 : if (flags & NDR_OUT) {
600 0 : if (r->out.out_len == NULL) {
601 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
602 : }
603 0 : if (r->out.out == NULL) {
604 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
605 : }
606 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.out_len));
607 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.out));
608 0 : if (*r->out.out) {
609 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.out_len));
610 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, *r->out.out, *r->out.out_len));
611 : }
612 0 : NDR_CHECK(ndr_push_HRESULT(ndr, NDR_SCALARS, r->out.result));
613 : }
614 0 : return NDR_ERR_SUCCESS;
615 : }
616 :
617 0 : static enum ndr_err_code ndr_pull_gkdi_GetKey(struct ndr_pull *ndr, ndr_flags_type flags, struct gkdi_GetKey *r)
618 : {
619 0 : uint32_t size_target_sd_1 = 0;
620 0 : uint32_t _ptr_root_key_id;
621 0 : uint32_t _ptr_out;
622 0 : uint32_t size_out_2 = 0;
623 0 : TALLOC_CTX *_mem_save_root_key_id_0 = NULL;
624 0 : TALLOC_CTX *_mem_save_out_len_0 = NULL;
625 0 : TALLOC_CTX *_mem_save_out_0 = NULL;
626 0 : TALLOC_CTX *_mem_save_out_1 = NULL;
627 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
628 0 : if (flags & NDR_IN) {
629 0 : NDR_ZERO_STRUCT(r->out);
630 :
631 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.target_sd_len));
632 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.target_sd));
633 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.target_sd, &size_target_sd_1));
634 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
635 0 : NDR_PULL_ALLOC_N(ndr, r->in.target_sd, size_target_sd_1);
636 : }
637 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.target_sd, size_target_sd_1));
638 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_root_key_id));
639 0 : if (_ptr_root_key_id) {
640 0 : NDR_PULL_ALLOC(ndr, r->in.root_key_id);
641 : } else {
642 0 : r->in.root_key_id = NULL;
643 : }
644 0 : if (r->in.root_key_id) {
645 0 : _mem_save_root_key_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
646 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.root_key_id, 0);
647 0 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.root_key_id));
648 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_root_key_id_0, 0);
649 : }
650 0 : NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.l0_key_id));
651 0 : NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.l1_key_id));
652 0 : NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.l2_key_id));
653 0 : NDR_PULL_ALLOC(ndr, r->out.out_len);
654 0 : NDR_ZERO_STRUCTP(r->out.out_len);
655 0 : NDR_PULL_ALLOC(ndr, r->out.out);
656 0 : NDR_ZERO_STRUCTP(r->out.out);
657 0 : if (r->in.target_sd) {
658 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.target_sd, r->in.target_sd_len));
659 : }
660 : }
661 0 : if (flags & NDR_OUT) {
662 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
663 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
664 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
665 0 : NDR_PULL_ALLOC(ndr, r->out.out_len);
666 : }
667 0 : _mem_save_out_len_0 = NDR_PULL_GET_MEM_CTX(ndr);
668 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.out_len, LIBNDR_FLAG_REF_ALLOC);
669 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.out_len));
670 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_len_0, LIBNDR_FLAG_REF_ALLOC);
671 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
672 0 : NDR_PULL_ALLOC(ndr, r->out.out);
673 : }
674 0 : _mem_save_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
675 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.out, LIBNDR_FLAG_REF_ALLOC);
676 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_out));
677 0 : if (_ptr_out) {
678 0 : NDR_PULL_ALLOC(ndr, *r->out.out);
679 : } else {
680 0 : *r->out.out = NULL;
681 : }
682 0 : if (*r->out.out) {
683 0 : _mem_save_out_1 = NDR_PULL_GET_MEM_CTX(ndr);
684 0 : NDR_PULL_SET_MEM_CTX(ndr, *r->out.out, 0);
685 0 : NDR_CHECK(ndr_pull_array_size(ndr, r->out.out));
686 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)r->out.out, &size_out_2));
687 0 : NDR_PULL_ALLOC_N(ndr, *r->out.out, size_out_2);
688 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, *r->out.out, size_out_2));
689 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_1, 0);
690 : }
691 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_0, LIBNDR_FLAG_REF_ALLOC);
692 0 : NDR_CHECK(ndr_pull_HRESULT(ndr, NDR_SCALARS, &r->out.result));
693 0 : if (*r->out.out) {
694 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)r->out.out, *r->out.out_len));
695 : }
696 : }
697 0 : return NDR_ERR_SUCCESS;
698 : }
699 :
700 0 : _PUBLIC_ void ndr_print_gkdi_GetKey(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct gkdi_GetKey *r)
701 : {
702 0 : ndr_print_struct(ndr, name, "gkdi_GetKey");
703 0 : if (r == NULL) { ndr_print_null(ndr); return; }
704 0 : ndr->depth++;
705 0 : if (flags & NDR_SET_VALUES) {
706 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
707 : }
708 0 : if (flags & NDR_IN) {
709 0 : ndr_print_struct(ndr, "in", "gkdi_GetKey");
710 0 : ndr->depth++;
711 0 : ndr_print_uint32(ndr, "target_sd_len", r->in.target_sd_len);
712 0 : ndr_print_ptr(ndr, "target_sd", r->in.target_sd);
713 0 : ndr->depth++;
714 0 : ndr_print_array_uint8(ndr, "target_sd", r->in.target_sd, r->in.target_sd_len);
715 0 : ndr->depth--;
716 0 : ndr_print_ptr(ndr, "root_key_id", r->in.root_key_id);
717 0 : ndr->depth++;
718 0 : if (r->in.root_key_id) {
719 0 : ndr_print_GUID(ndr, "root_key_id", r->in.root_key_id);
720 : }
721 0 : ndr->depth--;
722 0 : ndr_print_int32(ndr, "l0_key_id", r->in.l0_key_id);
723 0 : ndr_print_int32(ndr, "l1_key_id", r->in.l1_key_id);
724 0 : ndr_print_int32(ndr, "l2_key_id", r->in.l2_key_id);
725 0 : ndr->depth--;
726 : }
727 0 : if (flags & NDR_OUT) {
728 0 : ndr_print_struct(ndr, "out", "gkdi_GetKey");
729 0 : ndr->depth++;
730 0 : ndr_print_ptr(ndr, "out_len", r->out.out_len);
731 0 : ndr->depth++;
732 0 : ndr_print_uint32(ndr, "out_len", *r->out.out_len);
733 0 : ndr->depth--;
734 0 : ndr_print_ptr(ndr, "out", r->out.out);
735 0 : ndr->depth++;
736 0 : ndr_print_ptr(ndr, "out", *r->out.out);
737 0 : ndr->depth++;
738 0 : if (*r->out.out) {
739 0 : ndr_print_array_uint8(ndr, "out", *r->out.out, *r->out.out_len);
740 : }
741 0 : ndr->depth--;
742 0 : ndr->depth--;
743 0 : ndr_print_HRESULT(ndr, "result", r->out.result);
744 0 : ndr->depth--;
745 : }
746 0 : ndr->depth--;
747 : }
748 :
749 : #ifndef SKIP_NDR_TABLE_gkdi
750 : static const struct ndr_interface_public_struct gkdi_public_structs[] = {
751 : {
752 : .name = "KeyEnvelope",
753 : .struct_size = sizeof(struct KeyEnvelope ),
754 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_KeyEnvelope,
755 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_KeyEnvelope,
756 : .ndr_print = (ndr_print_function_t) ndr_print_flags_KeyEnvelope,
757 : },
758 : {
759 : .name = "GroupKeyEnvelope",
760 : .struct_size = sizeof(struct GroupKeyEnvelope ),
761 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_GroupKeyEnvelope,
762 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_GroupKeyEnvelope,
763 : .ndr_print = (ndr_print_function_t) ndr_print_flags_GroupKeyEnvelope,
764 : },
765 : {
766 : .name = "KdfParameters",
767 : .struct_size = sizeof(struct KdfParameters ),
768 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_KdfParameters,
769 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_KdfParameters,
770 : .ndr_print = (ndr_print_function_t) ndr_print_flags_KdfParameters,
771 : },
772 : {
773 : .name = "FfcDhParameters",
774 : .struct_size = sizeof(struct FfcDhParameters ),
775 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_FfcDhParameters,
776 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_FfcDhParameters,
777 : .ndr_print = (ndr_print_function_t) ndr_print_flags_FfcDhParameters,
778 : },
779 : {
780 : .name = "GkdiDerivationCtx",
781 : .struct_size = sizeof(struct GkdiDerivationCtx ),
782 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_GkdiDerivationCtx,
783 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_GkdiDerivationCtx,
784 : .ndr_print = (ndr_print_function_t) ndr_print_flags_GkdiDerivationCtx,
785 : },
786 : { .name = NULL }
787 : };
788 :
789 : static const struct ndr_interface_call gkdi_calls[] = {
790 : {
791 : "gkdi_GetKey",
792 : sizeof(struct gkdi_GetKey),
793 : (ndr_push_flags_fn_t) ndr_push_gkdi_GetKey,
794 : (ndr_pull_flags_fn_t) ndr_pull_gkdi_GetKey,
795 : (ndr_print_function_t) ndr_print_gkdi_GetKey,
796 : { 0, NULL },
797 : { 0, NULL },
798 : },
799 : { .name = NULL }
800 : };
801 :
802 : static const char * const gkdi_endpoint_strings[] = {
803 : "ncacn_np:[\\pipe\\lsass]",
804 : "ncacn_ip_tcp:",
805 : "ncalrpc:",
806 : };
807 :
808 : static const struct ndr_interface_string_array gkdi_endpoints = {
809 : .count = 3,
810 : .names = gkdi_endpoint_strings
811 : };
812 :
813 : static const char * const gkdi_authservice_strings[] = {
814 : "host",
815 : };
816 :
817 : static const struct ndr_interface_string_array gkdi_authservices = {
818 : .count = 1,
819 : .names = gkdi_authservice_strings
820 : };
821 :
822 :
823 : const struct ndr_interface_table ndr_table_gkdi = {
824 : .name = "gkdi",
825 : .syntax_id = {
826 : {0xb9785960,0x524f,0x11df,{0x8b,0x6d},{0x83,0xdc,0xde,0xd7,0x20,0x85}},
827 : NDR_GKDI_VERSION
828 : },
829 : .helpstring = NDR_GKDI_HELPSTRING,
830 : .num_calls = 1,
831 : .calls = gkdi_calls,
832 : .num_public_structs = 5,
833 : .public_structs = gkdi_public_structs,
834 : .endpoints = &gkdi_endpoints,
835 : .authservices = &gkdi_authservices
836 : };
837 :
838 : #endif /* SKIP_NDR_TABLE_gkdi */
|