1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_krb5pac.h"
6 #include "librpc/gen_ndr/ndr_security.h"
7 #include "librpc/gen_ndr/ndr_netlogon.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 static enum ndr_err_code
ndr_push_PAC_LOGON_NAME(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_LOGON_NAME
*r
)
11 if (ndr_flags
& NDR_SCALARS
) {
12 NDR_CHECK(ndr_push_align(ndr
, 4));
13 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->logon_time
));
14 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, 2 * strlen_m(r
->account_name
)));
15 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, 2 * strlen_m(r
->account_name
), sizeof(uint8_t), CH_UTF16
));
17 if (ndr_flags
& NDR_BUFFERS
) {
19 return NDR_ERR_SUCCESS
;
22 static enum ndr_err_code
ndr_pull_PAC_LOGON_NAME(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_LOGON_NAME
*r
)
24 uint32_t size_account_name_0
= 0;
25 if (ndr_flags
& NDR_SCALARS
) {
26 NDR_CHECK(ndr_pull_align(ndr
, 4));
27 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->logon_time
));
28 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
29 size_account_name_0
= r
->size
;
30 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, size_account_name_0
, sizeof(uint8_t), CH_UTF16
));
32 if (ndr_flags
& NDR_BUFFERS
) {
34 return NDR_ERR_SUCCESS
;
37 _PUBLIC_
void ndr_print_PAC_LOGON_NAME(struct ndr_print
*ndr
, const char *name
, const struct PAC_LOGON_NAME
*r
)
39 ndr_print_struct(ndr
, name
, "PAC_LOGON_NAME");
41 ndr_print_NTTIME(ndr
, "logon_time", r
->logon_time
);
42 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m(r
->account_name
):r
->size
);
43 ndr_print_string(ndr
, "account_name", r
->account_name
);
47 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_SIGNATURE_DATA(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_SIGNATURE_DATA
*r
)
50 uint32_t _flags_save_STRUCT
= ndr
->flags
;
51 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
52 if (ndr_flags
& NDR_SCALARS
) {
53 NDR_CHECK(ndr_push_align(ndr
, 4));
54 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->type
));
56 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
57 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
58 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->signature
));
59 ndr
->flags
= _flags_save_DATA_BLOB
;
62 if (ndr_flags
& NDR_BUFFERS
) {
64 ndr
->flags
= _flags_save_STRUCT
;
66 return NDR_ERR_SUCCESS
;
69 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_SIGNATURE_DATA(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_SIGNATURE_DATA
*r
)
72 uint32_t _flags_save_STRUCT
= ndr
->flags
;
73 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
74 if (ndr_flags
& NDR_SCALARS
) {
75 NDR_CHECK(ndr_pull_align(ndr
, 4));
76 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->type
));
78 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
79 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
80 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->signature
));
81 ndr
->flags
= _flags_save_DATA_BLOB
;
84 if (ndr_flags
& NDR_BUFFERS
) {
86 ndr
->flags
= _flags_save_STRUCT
;
88 return NDR_ERR_SUCCESS
;
91 _PUBLIC_
void ndr_print_PAC_SIGNATURE_DATA(struct ndr_print
*ndr
, const char *name
, const struct PAC_SIGNATURE_DATA
*r
)
93 ndr_print_struct(ndr
, name
, "PAC_SIGNATURE_DATA");
95 uint32_t _flags_save_STRUCT
= ndr
->flags
;
96 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
98 ndr_print_uint32(ndr
, "type", r
->type
);
99 ndr_print_DATA_BLOB(ndr
, "signature", r
->signature
);
101 ndr
->flags
= _flags_save_STRUCT
;
105 static enum ndr_err_code
ndr_push_PAC_LOGON_INFO(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_LOGON_INFO
*r
)
107 if (ndr_flags
& NDR_SCALARS
) {
108 NDR_CHECK(ndr_push_align(ndr
, 4));
109 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
110 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->res_group_dom_sid
));
111 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->res_groups
));
113 if (ndr_flags
& NDR_BUFFERS
) {
114 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
115 if (r
->res_group_dom_sid
) {
116 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->res_group_dom_sid
));
118 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->res_groups
));
120 return NDR_ERR_SUCCESS
;
123 static enum ndr_err_code
ndr_pull_PAC_LOGON_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_LOGON_INFO
*r
)
125 uint32_t _ptr_res_group_dom_sid
;
126 TALLOC_CTX
*_mem_save_res_group_dom_sid_0
;
127 if (ndr_flags
& NDR_SCALARS
) {
128 NDR_CHECK(ndr_pull_align(ndr
, 4));
129 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
130 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_res_group_dom_sid
));
131 if (_ptr_res_group_dom_sid
) {
132 NDR_PULL_ALLOC(ndr
, r
->res_group_dom_sid
);
134 r
->res_group_dom_sid
= NULL
;
136 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->res_groups
));
138 if (ndr_flags
& NDR_BUFFERS
) {
139 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
140 if (r
->res_group_dom_sid
) {
141 _mem_save_res_group_dom_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
142 NDR_PULL_SET_MEM_CTX(ndr
, r
->res_group_dom_sid
, 0);
143 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->res_group_dom_sid
));
144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_res_group_dom_sid_0
, 0);
146 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->res_groups
));
148 return NDR_ERR_SUCCESS
;
151 _PUBLIC_
void ndr_print_PAC_LOGON_INFO(struct ndr_print
*ndr
, const char *name
, const struct PAC_LOGON_INFO
*r
)
153 ndr_print_struct(ndr
, name
, "PAC_LOGON_INFO");
155 ndr_print_netr_SamInfo3(ndr
, "info3", &r
->info3
);
156 ndr_print_ptr(ndr
, "res_group_dom_sid", r
->res_group_dom_sid
);
158 if (r
->res_group_dom_sid
) {
159 ndr_print_dom_sid2(ndr
, "res_group_dom_sid", r
->res_group_dom_sid
);
162 ndr_print_samr_RidWithAttributeArray(ndr
, "res_groups", &r
->res_groups
);
166 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_LOGON_INFO_CTR(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_LOGON_INFO_CTR
*r
)
168 if (ndr_flags
& NDR_SCALARS
) {
169 NDR_CHECK(ndr_push_align(ndr
, 4));
170 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
172 if (ndr_flags
& NDR_BUFFERS
) {
174 NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info
));
177 return NDR_ERR_SUCCESS
;
180 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_LOGON_INFO_CTR(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_LOGON_INFO_CTR
*r
)
183 TALLOC_CTX
*_mem_save_info_0
;
184 if (ndr_flags
& NDR_SCALARS
) {
185 NDR_CHECK(ndr_pull_align(ndr
, 4));
186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
188 NDR_PULL_ALLOC(ndr
, r
->info
);
193 if (ndr_flags
& NDR_BUFFERS
) {
195 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
196 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
197 NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info
));
198 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
201 return NDR_ERR_SUCCESS
;
204 _PUBLIC_
void ndr_print_PAC_LOGON_INFO_CTR(struct ndr_print
*ndr
, const char *name
, const struct PAC_LOGON_INFO_CTR
*r
)
206 ndr_print_struct(ndr
, name
, "PAC_LOGON_INFO_CTR");
208 ndr_print_ptr(ndr
, "info", r
->info
);
211 ndr_print_PAC_LOGON_INFO(ndr
, "info", r
->info
);
217 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_TYPE(struct ndr_push
*ndr
, int ndr_flags
, enum PAC_TYPE r
)
219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
220 return NDR_ERR_SUCCESS
;
223 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_TYPE(struct ndr_pull
*ndr
, int ndr_flags
, enum PAC_TYPE
*r
)
226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
228 return NDR_ERR_SUCCESS
;
231 _PUBLIC_
void ndr_print_PAC_TYPE(struct ndr_print
*ndr
, const char *name
, enum PAC_TYPE r
)
233 const char *val
= NULL
;
236 case PAC_TYPE_LOGON_INFO
: val
= "PAC_TYPE_LOGON_INFO"; break;
237 case PAC_TYPE_SRV_CHECKSUM
: val
= "PAC_TYPE_SRV_CHECKSUM"; break;
238 case PAC_TYPE_KDC_CHECKSUM
: val
= "PAC_TYPE_KDC_CHECKSUM"; break;
239 case PAC_TYPE_LOGON_NAME
: val
= "PAC_TYPE_LOGON_NAME"; break;
240 case PAC_TYPE_CONSTRAINED_DELEGATION
: val
= "PAC_TYPE_CONSTRAINED_DELEGATION"; break;
241 case PAC_TYPE_UNKNOWN_12
: val
= "PAC_TYPE_UNKNOWN_12"; break;
243 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
246 static enum ndr_err_code
ndr_push_DATA_BLOB_REM(struct ndr_push
*ndr
, int ndr_flags
, const struct DATA_BLOB_REM
*r
)
248 if (ndr_flags
& NDR_SCALARS
) {
249 NDR_CHECK(ndr_push_align(ndr
, 4));
251 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
253 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->remaining
));
254 ndr
->flags
= _flags_save_DATA_BLOB
;
257 if (ndr_flags
& NDR_BUFFERS
) {
259 return NDR_ERR_SUCCESS
;
262 static enum ndr_err_code
ndr_pull_DATA_BLOB_REM(struct ndr_pull
*ndr
, int ndr_flags
, struct DATA_BLOB_REM
*r
)
264 if (ndr_flags
& NDR_SCALARS
) {
265 NDR_CHECK(ndr_pull_align(ndr
, 4));
267 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
268 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
269 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->remaining
));
270 ndr
->flags
= _flags_save_DATA_BLOB
;
273 if (ndr_flags
& NDR_BUFFERS
) {
275 return NDR_ERR_SUCCESS
;
278 _PUBLIC_
void ndr_print_DATA_BLOB_REM(struct ndr_print
*ndr
, const char *name
, const struct DATA_BLOB_REM
*r
)
280 ndr_print_struct(ndr
, name
, "DATA_BLOB_REM");
282 ndr_print_DATA_BLOB(ndr
, "remaining", r
->remaining
);
286 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_INFO(struct ndr_push
*ndr
, int ndr_flags
, const union PAC_INFO
*r
)
288 if (ndr_flags
& NDR_SCALARS
) {
289 int level
= ndr_push_get_switch_value(ndr
, r
);
291 case PAC_TYPE_LOGON_INFO
: {
293 struct ndr_push
*_ndr_logon_info
;
294 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_logon_info
, 0xFFFFFC01, -1));
295 NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info
, NDR_SCALARS
|NDR_BUFFERS
, &r
->logon_info
));
296 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_logon_info
, 0xFFFFFC01, -1));
300 case PAC_TYPE_SRV_CHECKSUM
: {
301 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr
, NDR_SCALARS
, &r
->srv_cksum
));
304 case PAC_TYPE_KDC_CHECKSUM
: {
305 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr
, NDR_SCALARS
, &r
->kdc_cksum
));
308 case PAC_TYPE_LOGON_NAME
: {
309 NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr
, NDR_SCALARS
, &r
->logon_name
));
314 struct ndr_push
*_ndr_unknown
;
315 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_unknown
, 0, -1));
316 NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_unknown
, NDR_SCALARS
, &r
->unknown
));
317 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_unknown
, 0, -1));
323 if (ndr_flags
& NDR_BUFFERS
) {
324 int level
= ndr_push_get_switch_value(ndr
, r
);
326 case PAC_TYPE_LOGON_INFO
:
329 case PAC_TYPE_SRV_CHECKSUM
:
332 case PAC_TYPE_KDC_CHECKSUM
:
335 case PAC_TYPE_LOGON_NAME
:
343 return NDR_ERR_SUCCESS
;
346 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_INFO(struct ndr_pull
*ndr
, int ndr_flags
, union PAC_INFO
*r
)
349 level
= ndr_pull_get_switch_value(ndr
, r
);
350 if (ndr_flags
& NDR_SCALARS
) {
352 case PAC_TYPE_LOGON_INFO
: {
354 struct ndr_pull
*_ndr_logon_info
;
355 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_logon_info
, 0xFFFFFC01, -1));
356 NDR_CHECK(ndr_pull_PAC_LOGON_INFO_CTR(_ndr_logon_info
, NDR_SCALARS
|NDR_BUFFERS
, &r
->logon_info
));
357 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_logon_info
, 0xFFFFFC01, -1));
361 case PAC_TYPE_SRV_CHECKSUM
: {
362 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr
, NDR_SCALARS
, &r
->srv_cksum
));
365 case PAC_TYPE_KDC_CHECKSUM
: {
366 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr
, NDR_SCALARS
, &r
->kdc_cksum
));
369 case PAC_TYPE_LOGON_NAME
: {
370 NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr
, NDR_SCALARS
, &r
->logon_name
));
375 struct ndr_pull
*_ndr_unknown
;
376 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_unknown
, 0, -1));
377 NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_unknown
, NDR_SCALARS
, &r
->unknown
));
378 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_unknown
, 0, -1));
384 if (ndr_flags
& NDR_BUFFERS
) {
386 case PAC_TYPE_LOGON_INFO
:
389 case PAC_TYPE_SRV_CHECKSUM
:
392 case PAC_TYPE_KDC_CHECKSUM
:
395 case PAC_TYPE_LOGON_NAME
:
403 return NDR_ERR_SUCCESS
;
406 _PUBLIC_
void ndr_print_PAC_INFO(struct ndr_print
*ndr
, const char *name
, const union PAC_INFO
*r
)
409 level
= ndr_print_get_switch_value(ndr
, r
);
410 ndr_print_union(ndr
, name
, level
, "PAC_INFO");
412 case PAC_TYPE_LOGON_INFO
:
413 ndr_print_PAC_LOGON_INFO_CTR(ndr
, "logon_info", &r
->logon_info
);
416 case PAC_TYPE_SRV_CHECKSUM
:
417 ndr_print_PAC_SIGNATURE_DATA(ndr
, "srv_cksum", &r
->srv_cksum
);
420 case PAC_TYPE_KDC_CHECKSUM
:
421 ndr_print_PAC_SIGNATURE_DATA(ndr
, "kdc_cksum", &r
->kdc_cksum
);
424 case PAC_TYPE_LOGON_NAME
:
425 ndr_print_PAC_LOGON_NAME(ndr
, "logon_name", &r
->logon_name
);
429 ndr_print_DATA_BLOB_REM(ndr
, "unknown", &r
->unknown
);
435 _PUBLIC_
size_t ndr_size_PAC_INFO(const union PAC_INFO
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
437 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_PAC_INFO
, ic
);
440 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_DATA(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_DATA
*r
)
442 uint32_t cntr_buffers_0
;
443 if (ndr_flags
& NDR_SCALARS
) {
444 NDR_CHECK(ndr_push_align(ndr
, 4));
445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_buffers
));
446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
447 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
448 NDR_CHECK(ndr_push_PAC_BUFFER(ndr
, NDR_SCALARS
, &r
->buffers
[cntr_buffers_0
]));
451 if (ndr_flags
& NDR_BUFFERS
) {
452 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
453 NDR_CHECK(ndr_push_PAC_BUFFER(ndr
, NDR_BUFFERS
, &r
->buffers
[cntr_buffers_0
]));
456 return NDR_ERR_SUCCESS
;
459 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_DATA(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_DATA
*r
)
461 uint32_t size_buffers_0
= 0;
462 uint32_t cntr_buffers_0
;
463 TALLOC_CTX
*_mem_save_buffers_0
;
464 if (ndr_flags
& NDR_SCALARS
) {
465 NDR_CHECK(ndr_pull_align(ndr
, 4));
466 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_buffers
));
467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
468 size_buffers_0
= r
->num_buffers
;
469 NDR_PULL_ALLOC_N(ndr
, r
->buffers
, size_buffers_0
);
470 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
471 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
472 for (cntr_buffers_0
= 0; cntr_buffers_0
< size_buffers_0
; cntr_buffers_0
++) {
473 NDR_CHECK(ndr_pull_PAC_BUFFER(ndr
, NDR_SCALARS
, &r
->buffers
[cntr_buffers_0
]));
475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
477 if (ndr_flags
& NDR_BUFFERS
) {
478 size_buffers_0
= r
->num_buffers
;
479 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
480 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
481 for (cntr_buffers_0
= 0; cntr_buffers_0
< size_buffers_0
; cntr_buffers_0
++) {
482 NDR_CHECK(ndr_pull_PAC_BUFFER(ndr
, NDR_BUFFERS
, &r
->buffers
[cntr_buffers_0
]));
484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
486 return NDR_ERR_SUCCESS
;
489 _PUBLIC_
void ndr_print_PAC_DATA(struct ndr_print
*ndr
, const char *name
, const struct PAC_DATA
*r
)
491 uint32_t cntr_buffers_0
;
492 ndr_print_struct(ndr
, name
, "PAC_DATA");
494 ndr_print_uint32(ndr
, "num_buffers", r
->num_buffers
);
495 ndr_print_uint32(ndr
, "version", r
->version
);
496 ndr
->print(ndr
, "%s: ARRAY(%d)", "buffers", (int)r
->num_buffers
);
498 for (cntr_buffers_0
=0;cntr_buffers_0
<r
->num_buffers
;cntr_buffers_0
++) {
500 if (asprintf(&idx_0
, "[%d]", cntr_buffers_0
) != -1) {
501 ndr_print_PAC_BUFFER(ndr
, "buffers", &r
->buffers
[cntr_buffers_0
]);
509 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_BUFFER_RAW(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_BUFFER_RAW
*r
)
511 if (ndr_flags
& NDR_SCALARS
) {
512 NDR_CHECK(ndr_push_align(ndr
, 4));
513 NDR_CHECK(ndr_push_PAC_TYPE(ndr
, NDR_SCALARS
, r
->type
));
514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ndr_size
));
516 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
517 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
518 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->info
));
519 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
523 if (ndr_flags
& NDR_BUFFERS
) {
525 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
526 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
528 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->info
));
530 struct ndr_push
*_ndr_info
;
531 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
532 NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info
, NDR_SCALARS
, r
->info
));
533 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
535 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->info
));
537 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
540 return NDR_ERR_SUCCESS
;
543 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_BUFFER_RAW(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_BUFFER_RAW
*r
)
546 TALLOC_CTX
*_mem_save_info_0
;
547 if (ndr_flags
& NDR_SCALARS
) {
548 NDR_CHECK(ndr_pull_align(ndr
, 4));
549 NDR_CHECK(ndr_pull_PAC_TYPE(ndr
, NDR_SCALARS
, &r
->type
));
550 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ndr_size
));
552 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
554 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
556 NDR_PULL_ALLOC(ndr
, r
->info
);
557 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->info
, _ptr_info
));
561 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
563 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_pad
));
565 if (ndr_flags
& NDR_BUFFERS
) {
567 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
570 uint32_t _relative_save_offset
;
571 _relative_save_offset
= ndr
->offset
;
572 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->info
));
573 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
574 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
576 struct ndr_pull
*_ndr_info
;
577 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
578 NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info
, NDR_SCALARS
, r
->info
));
579 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
582 ndr
->offset
= _relative_save_offset
;
584 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
587 return NDR_ERR_SUCCESS
;
590 _PUBLIC_
void ndr_print_PAC_BUFFER_RAW(struct ndr_print
*ndr
, const char *name
, const struct PAC_BUFFER_RAW
*r
)
592 ndr_print_struct(ndr
, name
, "PAC_BUFFER_RAW");
594 ndr_print_PAC_TYPE(ndr
, "type", r
->type
);
595 ndr_print_uint32(ndr
, "ndr_size", r
->ndr_size
);
596 ndr_print_ptr(ndr
, "info", r
->info
);
599 ndr_print_DATA_BLOB_REM(ndr
, "info", r
->info
);
602 ndr_print_uint32(ndr
, "_pad", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->_pad
);
606 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_DATA_RAW(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_DATA_RAW
*r
)
608 uint32_t cntr_buffers_0
;
609 if (ndr_flags
& NDR_SCALARS
) {
610 NDR_CHECK(ndr_push_align(ndr
, 4));
611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_buffers
));
612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
613 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
614 NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr
, NDR_SCALARS
, &r
->buffers
[cntr_buffers_0
]));
617 if (ndr_flags
& NDR_BUFFERS
) {
618 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
619 NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr
, NDR_BUFFERS
, &r
->buffers
[cntr_buffers_0
]));
622 return NDR_ERR_SUCCESS
;
625 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_DATA_RAW(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_DATA_RAW
*r
)
627 uint32_t size_buffers_0
= 0;
628 uint32_t cntr_buffers_0
;
629 TALLOC_CTX
*_mem_save_buffers_0
;
630 if (ndr_flags
& NDR_SCALARS
) {
631 NDR_CHECK(ndr_pull_align(ndr
, 4));
632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_buffers
));
633 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
634 size_buffers_0
= r
->num_buffers
;
635 NDR_PULL_ALLOC_N(ndr
, r
->buffers
, size_buffers_0
);
636 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
637 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
638 for (cntr_buffers_0
= 0; cntr_buffers_0
< size_buffers_0
; cntr_buffers_0
++) {
639 NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr
, NDR_SCALARS
, &r
->buffers
[cntr_buffers_0
]));
641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
643 if (ndr_flags
& NDR_BUFFERS
) {
644 size_buffers_0
= r
->num_buffers
;
645 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
646 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
647 for (cntr_buffers_0
= 0; cntr_buffers_0
< size_buffers_0
; cntr_buffers_0
++) {
648 NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr
, NDR_BUFFERS
, &r
->buffers
[cntr_buffers_0
]));
650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
652 return NDR_ERR_SUCCESS
;
655 _PUBLIC_
void ndr_print_PAC_DATA_RAW(struct ndr_print
*ndr
, const char *name
, const struct PAC_DATA_RAW
*r
)
657 uint32_t cntr_buffers_0
;
658 ndr_print_struct(ndr
, name
, "PAC_DATA_RAW");
660 ndr_print_uint32(ndr
, "num_buffers", r
->num_buffers
);
661 ndr_print_uint32(ndr
, "version", r
->version
);
662 ndr
->print(ndr
, "%s: ARRAY(%d)", "buffers", (int)r
->num_buffers
);
664 for (cntr_buffers_0
=0;cntr_buffers_0
<r
->num_buffers
;cntr_buffers_0
++) {
666 if (asprintf(&idx_0
, "[%d]", cntr_buffers_0
) != -1) {
667 ndr_print_PAC_BUFFER_RAW(ndr
, "buffers", &r
->buffers
[cntr_buffers_0
]);
675 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_Validate(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_Validate
*r
)
677 if (ndr_flags
& NDR_SCALARS
) {
678 NDR_CHECK(ndr_push_align(ndr
, 4));
679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, NETLOGON_GENERIC_KRB5_PAC_VALIDATE
));
680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ChecksumLength
));
681 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->SignatureType
));
682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SignatureLength
));
684 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
686 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->ChecksumAndSignature
));
687 ndr
->flags
= _flags_save_DATA_BLOB
;
690 if (ndr_flags
& NDR_BUFFERS
) {
692 return NDR_ERR_SUCCESS
;
695 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_Validate(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_Validate
*r
)
697 if (ndr_flags
& NDR_SCALARS
) {
698 NDR_CHECK(ndr_pull_align(ndr
, 4));
699 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MessageType
));
700 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ChecksumLength
));
701 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->SignatureType
));
702 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SignatureLength
));
704 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
705 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
706 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->ChecksumAndSignature
));
707 ndr
->flags
= _flags_save_DATA_BLOB
;
710 if (ndr_flags
& NDR_BUFFERS
) {
712 return NDR_ERR_SUCCESS
;
715 _PUBLIC_
void ndr_print_PAC_Validate(struct ndr_print
*ndr
, const char *name
, const struct PAC_Validate
*r
)
717 ndr_print_struct(ndr
, name
, "PAC_Validate");
719 ndr_print_uint32(ndr
, "MessageType", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?NETLOGON_GENERIC_KRB5_PAC_VALIDATE
:r
->MessageType
);
720 ndr_print_uint32(ndr
, "ChecksumLength", r
->ChecksumLength
);
721 ndr_print_int32(ndr
, "SignatureType", r
->SignatureType
);
722 ndr_print_uint32(ndr
, "SignatureLength", r
->SignatureLength
);
723 ndr_print_DATA_BLOB(ndr
, "ChecksumAndSignature", r
->ChecksumAndSignature
);
727 _PUBLIC_
enum ndr_err_code
ndr_push_netsamlogoncache_entry(struct ndr_push
*ndr
, int ndr_flags
, const struct netsamlogoncache_entry
*r
)
729 if (ndr_flags
& NDR_SCALARS
) {
730 NDR_CHECK(ndr_push_align(ndr
, 4));
731 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
732 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
734 if (ndr_flags
& NDR_BUFFERS
) {
735 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
737 return NDR_ERR_SUCCESS
;
740 _PUBLIC_
enum ndr_err_code
ndr_pull_netsamlogoncache_entry(struct ndr_pull
*ndr
, int ndr_flags
, struct netsamlogoncache_entry
*r
)
742 if (ndr_flags
& NDR_SCALARS
) {
743 NDR_CHECK(ndr_pull_align(ndr
, 4));
744 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
745 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
747 if (ndr_flags
& NDR_BUFFERS
) {
748 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
750 return NDR_ERR_SUCCESS
;
753 _PUBLIC_
void ndr_print_netsamlogoncache_entry(struct ndr_print
*ndr
, const char *name
, const struct netsamlogoncache_entry
*r
)
755 ndr_print_struct(ndr
, name
, "netsamlogoncache_entry");
757 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
758 ndr_print_netr_SamInfo3(ndr
, "info3", &r
->info3
);
762 static enum ndr_err_code
ndr_push_decode_pac(struct ndr_push
*ndr
, int flags
, const struct decode_pac
*r
)
764 if (flags
& NDR_IN
) {
765 NDR_CHECK(ndr_push_PAC_DATA(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
767 if (flags
& NDR_OUT
) {
769 return NDR_ERR_SUCCESS
;
772 static enum ndr_err_code
ndr_pull_decode_pac(struct ndr_pull
*ndr
, int flags
, struct decode_pac
*r
)
774 if (flags
& NDR_IN
) {
775 NDR_CHECK(ndr_pull_PAC_DATA(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
777 if (flags
& NDR_OUT
) {
779 return NDR_ERR_SUCCESS
;
782 _PUBLIC_
void ndr_print_decode_pac(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_pac
*r
)
784 ndr_print_struct(ndr
, name
, "decode_pac");
786 if (flags
& NDR_SET_VALUES
) {
787 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
789 if (flags
& NDR_IN
) {
790 ndr_print_struct(ndr
, "in", "decode_pac");
792 ndr_print_PAC_DATA(ndr
, "pac", &r
->in
.pac
);
795 if (flags
& NDR_OUT
) {
796 ndr_print_struct(ndr
, "out", "decode_pac");
803 static enum ndr_err_code
ndr_push_decode_pac_raw(struct ndr_push
*ndr
, int flags
, const struct decode_pac_raw
*r
)
805 if (flags
& NDR_IN
) {
806 NDR_CHECK(ndr_push_PAC_DATA_RAW(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
808 if (flags
& NDR_OUT
) {
810 return NDR_ERR_SUCCESS
;
813 static enum ndr_err_code
ndr_pull_decode_pac_raw(struct ndr_pull
*ndr
, int flags
, struct decode_pac_raw
*r
)
815 if (flags
& NDR_IN
) {
816 NDR_CHECK(ndr_pull_PAC_DATA_RAW(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
818 if (flags
& NDR_OUT
) {
820 return NDR_ERR_SUCCESS
;
823 _PUBLIC_
void ndr_print_decode_pac_raw(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_pac_raw
*r
)
825 ndr_print_struct(ndr
, name
, "decode_pac_raw");
827 if (flags
& NDR_SET_VALUES
) {
828 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
830 if (flags
& NDR_IN
) {
831 ndr_print_struct(ndr
, "in", "decode_pac_raw");
833 ndr_print_PAC_DATA_RAW(ndr
, "pac", &r
->in
.pac
);
836 if (flags
& NDR_OUT
) {
837 ndr_print_struct(ndr
, "out", "decode_pac_raw");
844 static enum ndr_err_code
ndr_push_decode_login_info(struct ndr_push
*ndr
, int flags
, const struct decode_login_info
*r
)
846 if (flags
& NDR_IN
) {
847 NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon_info
));
849 if (flags
& NDR_OUT
) {
851 return NDR_ERR_SUCCESS
;
854 static enum ndr_err_code
ndr_pull_decode_login_info(struct ndr_pull
*ndr
, int flags
, struct decode_login_info
*r
)
856 if (flags
& NDR_IN
) {
857 NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon_info
));
859 if (flags
& NDR_OUT
) {
861 return NDR_ERR_SUCCESS
;
864 _PUBLIC_
void ndr_print_decode_login_info(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_login_info
*r
)
866 ndr_print_struct(ndr
, name
, "decode_login_info");
868 if (flags
& NDR_SET_VALUES
) {
869 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
871 if (flags
& NDR_IN
) {
872 ndr_print_struct(ndr
, "in", "decode_login_info");
874 ndr_print_PAC_LOGON_INFO(ndr
, "logon_info", &r
->in
.logon_info
);
877 if (flags
& NDR_OUT
) {
878 ndr_print_struct(ndr
, "out", "decode_login_info");
885 static enum ndr_err_code
ndr_push_decode_pac_validate(struct ndr_push
*ndr
, int flags
, const struct decode_pac_validate
*r
)
887 if (flags
& NDR_IN
) {
888 NDR_CHECK(ndr_push_PAC_Validate(ndr
, NDR_SCALARS
, &r
->in
.pac_validate
));
890 if (flags
& NDR_OUT
) {
892 return NDR_ERR_SUCCESS
;
895 static enum ndr_err_code
ndr_pull_decode_pac_validate(struct ndr_pull
*ndr
, int flags
, struct decode_pac_validate
*r
)
897 if (flags
& NDR_IN
) {
898 NDR_CHECK(ndr_pull_PAC_Validate(ndr
, NDR_SCALARS
, &r
->in
.pac_validate
));
900 if (flags
& NDR_OUT
) {
902 return NDR_ERR_SUCCESS
;
905 _PUBLIC_
void ndr_print_decode_pac_validate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_pac_validate
*r
)
907 ndr_print_struct(ndr
, name
, "decode_pac_validate");
909 if (flags
& NDR_SET_VALUES
) {
910 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
912 if (flags
& NDR_IN
) {
913 ndr_print_struct(ndr
, "in", "decode_pac_validate");
915 ndr_print_PAC_Validate(ndr
, "pac_validate", &r
->in
.pac_validate
);
918 if (flags
& NDR_OUT
) {
919 ndr_print_struct(ndr
, "out", "decode_pac_validate");
926 static const struct ndr_interface_call krb5pac_calls
[] = {
929 sizeof(struct decode_pac
),
930 (ndr_push_flags_fn_t
) ndr_push_decode_pac
,
931 (ndr_pull_flags_fn_t
) ndr_pull_decode_pac
,
932 (ndr_print_function_t
) ndr_print_decode_pac
,
937 sizeof(struct decode_pac_raw
),
938 (ndr_push_flags_fn_t
) ndr_push_decode_pac_raw
,
939 (ndr_pull_flags_fn_t
) ndr_pull_decode_pac_raw
,
940 (ndr_print_function_t
) ndr_print_decode_pac_raw
,
945 sizeof(struct decode_login_info
),
946 (ndr_push_flags_fn_t
) ndr_push_decode_login_info
,
947 (ndr_pull_flags_fn_t
) ndr_pull_decode_login_info
,
948 (ndr_print_function_t
) ndr_print_decode_login_info
,
952 "decode_pac_validate",
953 sizeof(struct decode_pac_validate
),
954 (ndr_push_flags_fn_t
) ndr_push_decode_pac_validate
,
955 (ndr_pull_flags_fn_t
) ndr_pull_decode_pac_validate
,
956 (ndr_print_function_t
) ndr_print_decode_pac_validate
,
959 { NULL
, 0, NULL
, NULL
, NULL
, false }
962 static const char * const krb5pac_endpoint_strings
[] = {
963 "ncacn_np:[\\pipe\\krb5pac]",
966 static const struct ndr_interface_string_array krb5pac_endpoints
= {
968 .names
= krb5pac_endpoint_strings
971 static const char * const krb5pac_authservice_strings
[] = {
975 static const struct ndr_interface_string_array krb5pac_authservices
= {
977 .names
= krb5pac_authservice_strings
981 const struct ndr_interface_table ndr_table_krb5pac
= {
984 {0x12345778,0x1234,0xabcd,{0x00,0x00},{0x00,0x00,0x00,0x00}},
987 .helpstring
= NDR_KRB5PAC_HELPSTRING
,
989 .calls
= krb5pac_calls
,
990 .endpoints
= &krb5pac_endpoints
,
991 .authservices
= &krb5pac_authservices