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 if (ndr_flags
& NDR_SCALARS
) {
25 NDR_CHECK(ndr_pull_align(ndr
, 4));
26 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->logon_time
));
27 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
28 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, r
->size
, sizeof(uint8_t), CH_UTF16
));
30 if (ndr_flags
& NDR_BUFFERS
) {
32 return NDR_ERR_SUCCESS
;
35 _PUBLIC_
void ndr_print_PAC_LOGON_NAME(struct ndr_print
*ndr
, const char *name
, const struct PAC_LOGON_NAME
*r
)
37 ndr_print_struct(ndr
, name
, "PAC_LOGON_NAME");
39 ndr_print_NTTIME(ndr
, "logon_time", r
->logon_time
);
40 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m(r
->account_name
):r
->size
);
41 ndr_print_string(ndr
, "account_name", r
->account_name
);
45 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_SIGNATURE_DATA(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_SIGNATURE_DATA
*r
)
48 uint32_t _flags_save_STRUCT
= ndr
->flags
;
49 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
50 if (ndr_flags
& NDR_SCALARS
) {
51 NDR_CHECK(ndr_push_align(ndr
, 4));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->type
));
54 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
55 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
56 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->signature
));
57 ndr
->flags
= _flags_save_DATA_BLOB
;
60 if (ndr_flags
& NDR_BUFFERS
) {
62 ndr
->flags
= _flags_save_STRUCT
;
64 return NDR_ERR_SUCCESS
;
67 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_SIGNATURE_DATA(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_SIGNATURE_DATA
*r
)
70 uint32_t _flags_save_STRUCT
= ndr
->flags
;
71 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
72 if (ndr_flags
& NDR_SCALARS
) {
73 NDR_CHECK(ndr_pull_align(ndr
, 4));
74 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->type
));
76 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
77 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
78 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->signature
));
79 ndr
->flags
= _flags_save_DATA_BLOB
;
82 if (ndr_flags
& NDR_BUFFERS
) {
84 ndr
->flags
= _flags_save_STRUCT
;
86 return NDR_ERR_SUCCESS
;
89 _PUBLIC_
void ndr_print_PAC_SIGNATURE_DATA(struct ndr_print
*ndr
, const char *name
, const struct PAC_SIGNATURE_DATA
*r
)
91 ndr_print_struct(ndr
, name
, "PAC_SIGNATURE_DATA");
93 uint32_t _flags_save_STRUCT
= ndr
->flags
;
94 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
96 ndr_print_uint32(ndr
, "type", r
->type
);
97 ndr_print_DATA_BLOB(ndr
, "signature", r
->signature
);
99 ndr
->flags
= _flags_save_STRUCT
;
103 static enum ndr_err_code
ndr_push_PAC_LOGON_INFO(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_LOGON_INFO
*r
)
105 if (ndr_flags
& NDR_SCALARS
) {
106 NDR_CHECK(ndr_push_align(ndr
, 5));
107 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
108 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->res_group_dom_sid
));
109 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->res_groups
));
111 if (ndr_flags
& NDR_BUFFERS
) {
112 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
113 if (r
->res_group_dom_sid
) {
114 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->res_group_dom_sid
));
116 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->res_groups
));
118 return NDR_ERR_SUCCESS
;
121 static enum ndr_err_code
ndr_pull_PAC_LOGON_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_LOGON_INFO
*r
)
123 uint32_t _ptr_res_group_dom_sid
;
124 TALLOC_CTX
*_mem_save_res_group_dom_sid_0
;
125 if (ndr_flags
& NDR_SCALARS
) {
126 NDR_CHECK(ndr_pull_align(ndr
, 5));
127 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_res_group_dom_sid
));
129 if (_ptr_res_group_dom_sid
) {
130 NDR_PULL_ALLOC(ndr
, r
->res_group_dom_sid
);
132 r
->res_group_dom_sid
= NULL
;
134 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->res_groups
));
136 if (ndr_flags
& NDR_BUFFERS
) {
137 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
138 if (r
->res_group_dom_sid
) {
139 _mem_save_res_group_dom_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
140 NDR_PULL_SET_MEM_CTX(ndr
, r
->res_group_dom_sid
, 0);
141 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->res_group_dom_sid
));
142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_res_group_dom_sid_0
, 0);
144 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->res_groups
));
146 return NDR_ERR_SUCCESS
;
149 _PUBLIC_
void ndr_print_PAC_LOGON_INFO(struct ndr_print
*ndr
, const char *name
, const struct PAC_LOGON_INFO
*r
)
151 ndr_print_struct(ndr
, name
, "PAC_LOGON_INFO");
153 ndr_print_netr_SamInfo3(ndr
, "info3", &r
->info3
);
154 ndr_print_ptr(ndr
, "res_group_dom_sid", r
->res_group_dom_sid
);
156 if (r
->res_group_dom_sid
) {
157 ndr_print_dom_sid2(ndr
, "res_group_dom_sid", r
->res_group_dom_sid
);
160 ndr_print_samr_RidWithAttributeArray(ndr
, "res_groups", &r
->res_groups
);
164 _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
)
166 if (ndr_flags
& NDR_SCALARS
) {
167 NDR_CHECK(ndr_push_align(ndr
, 5));
168 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
170 if (ndr_flags
& NDR_BUFFERS
) {
172 NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info
));
175 return NDR_ERR_SUCCESS
;
178 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_LOGON_INFO_CTR(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_LOGON_INFO_CTR
*r
)
181 TALLOC_CTX
*_mem_save_info_0
;
182 if (ndr_flags
& NDR_SCALARS
) {
183 NDR_CHECK(ndr_pull_align(ndr
, 5));
184 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
186 NDR_PULL_ALLOC(ndr
, r
->info
);
191 if (ndr_flags
& NDR_BUFFERS
) {
193 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
194 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
195 NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info
));
196 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
199 return NDR_ERR_SUCCESS
;
202 _PUBLIC_
void ndr_print_PAC_LOGON_INFO_CTR(struct ndr_print
*ndr
, const char *name
, const struct PAC_LOGON_INFO_CTR
*r
)
204 ndr_print_struct(ndr
, name
, "PAC_LOGON_INFO_CTR");
206 ndr_print_ptr(ndr
, "info", r
->info
);
209 ndr_print_PAC_LOGON_INFO(ndr
, "info", r
->info
);
215 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_TYPE(struct ndr_push
*ndr
, int ndr_flags
, enum PAC_TYPE r
)
217 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
218 return NDR_ERR_SUCCESS
;
221 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_TYPE(struct ndr_pull
*ndr
, int ndr_flags
, enum PAC_TYPE
*r
)
224 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
226 return NDR_ERR_SUCCESS
;
229 _PUBLIC_
void ndr_print_PAC_TYPE(struct ndr_print
*ndr
, const char *name
, enum PAC_TYPE r
)
231 const char *val
= NULL
;
234 case PAC_TYPE_LOGON_INFO
: val
= "PAC_TYPE_LOGON_INFO"; break;
235 case PAC_TYPE_SRV_CHECKSUM
: val
= "PAC_TYPE_SRV_CHECKSUM"; break;
236 case PAC_TYPE_KDC_CHECKSUM
: val
= "PAC_TYPE_KDC_CHECKSUM"; break;
237 case PAC_TYPE_LOGON_NAME
: val
= "PAC_TYPE_LOGON_NAME"; break;
238 case PAC_TYPE_CONSTRAINED_DELEGATION
: val
= "PAC_TYPE_CONSTRAINED_DELEGATION"; break;
239 case PAC_TYPE_UNKNOWN_12
: val
= "PAC_TYPE_UNKNOWN_12"; break;
241 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
244 static enum ndr_err_code
ndr_push_DATA_BLOB_REM(struct ndr_push
*ndr
, int ndr_flags
, const struct DATA_BLOB_REM
*r
)
246 if (ndr_flags
& NDR_SCALARS
) {
247 NDR_CHECK(ndr_push_align(ndr
, 4));
249 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
250 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
251 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->remaining
));
252 ndr
->flags
= _flags_save_DATA_BLOB
;
255 if (ndr_flags
& NDR_BUFFERS
) {
257 return NDR_ERR_SUCCESS
;
260 static enum ndr_err_code
ndr_pull_DATA_BLOB_REM(struct ndr_pull
*ndr
, int ndr_flags
, struct DATA_BLOB_REM
*r
)
262 if (ndr_flags
& NDR_SCALARS
) {
263 NDR_CHECK(ndr_pull_align(ndr
, 4));
265 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
267 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->remaining
));
268 ndr
->flags
= _flags_save_DATA_BLOB
;
271 if (ndr_flags
& NDR_BUFFERS
) {
273 return NDR_ERR_SUCCESS
;
276 _PUBLIC_
void ndr_print_DATA_BLOB_REM(struct ndr_print
*ndr
, const char *name
, const struct DATA_BLOB_REM
*r
)
278 ndr_print_struct(ndr
, name
, "DATA_BLOB_REM");
280 ndr_print_DATA_BLOB(ndr
, "remaining", r
->remaining
);
284 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_INFO(struct ndr_push
*ndr
, int ndr_flags
, const union PAC_INFO
*r
)
286 if (ndr_flags
& NDR_SCALARS
) {
287 int level
= ndr_push_get_switch_value(ndr
, r
);
288 NDR_CHECK(ndr_push_union_align(ndr
, 4));
290 case PAC_TYPE_LOGON_INFO
: {
292 struct ndr_push
*_ndr_logon_info
;
293 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_logon_info
, 0xFFFFFC01, -1));
294 NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info
, NDR_SCALARS
|NDR_BUFFERS
, &r
->logon_info
));
295 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_logon_info
, 0xFFFFFC01, -1));
299 case PAC_TYPE_SRV_CHECKSUM
: {
300 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr
, NDR_SCALARS
, &r
->srv_cksum
));
303 case PAC_TYPE_KDC_CHECKSUM
: {
304 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr
, NDR_SCALARS
, &r
->kdc_cksum
));
307 case PAC_TYPE_LOGON_NAME
: {
308 NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr
, NDR_SCALARS
, &r
->logon_name
));
313 struct ndr_push
*_ndr_unknown
;
314 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_unknown
, 0, -1));
315 NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_unknown
, NDR_SCALARS
, &r
->unknown
));
316 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_unknown
, 0, -1));
322 if (ndr_flags
& NDR_BUFFERS
) {
323 int level
= ndr_push_get_switch_value(ndr
, r
);
325 case PAC_TYPE_LOGON_INFO
:
328 case PAC_TYPE_SRV_CHECKSUM
:
331 case PAC_TYPE_KDC_CHECKSUM
:
334 case PAC_TYPE_LOGON_NAME
:
342 return NDR_ERR_SUCCESS
;
345 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_INFO(struct ndr_pull
*ndr
, int ndr_flags
, union PAC_INFO
*r
)
348 level
= ndr_pull_get_switch_value(ndr
, r
);
349 if (ndr_flags
& NDR_SCALARS
) {
350 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
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
, 5));
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 cntr_buffers_0
;
462 TALLOC_CTX
*_mem_save_buffers_0
;
463 if (ndr_flags
& NDR_SCALARS
) {
464 NDR_CHECK(ndr_pull_align(ndr
, 5));
465 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_buffers
));
466 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
467 NDR_PULL_ALLOC_N(ndr
, r
->buffers
, r
->num_buffers
);
468 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
469 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
470 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
471 NDR_CHECK(ndr_pull_PAC_BUFFER(ndr
, NDR_SCALARS
, &r
->buffers
[cntr_buffers_0
]));
473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
475 if (ndr_flags
& NDR_BUFFERS
) {
476 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
477 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
478 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
479 NDR_CHECK(ndr_pull_PAC_BUFFER(ndr
, NDR_BUFFERS
, &r
->buffers
[cntr_buffers_0
]));
481 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
483 return NDR_ERR_SUCCESS
;
486 _PUBLIC_
void ndr_print_PAC_DATA(struct ndr_print
*ndr
, const char *name
, const struct PAC_DATA
*r
)
488 uint32_t cntr_buffers_0
;
489 ndr_print_struct(ndr
, name
, "PAC_DATA");
491 ndr_print_uint32(ndr
, "num_buffers", r
->num_buffers
);
492 ndr_print_uint32(ndr
, "version", r
->version
);
493 ndr
->print(ndr
, "%s: ARRAY(%d)", "buffers", (int)r
->num_buffers
);
495 for (cntr_buffers_0
=0;cntr_buffers_0
<r
->num_buffers
;cntr_buffers_0
++) {
497 if (asprintf(&idx_0
, "[%d]", cntr_buffers_0
) != -1) {
498 ndr_print_PAC_BUFFER(ndr
, "buffers", &r
->buffers
[cntr_buffers_0
]);
506 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_BUFFER_RAW(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_BUFFER_RAW
*r
)
508 if (ndr_flags
& NDR_SCALARS
) {
509 NDR_CHECK(ndr_push_align(ndr
, 5));
510 NDR_CHECK(ndr_push_PAC_TYPE(ndr
, NDR_SCALARS
, r
->type
));
511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ndr_size
));
513 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
514 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
515 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->info
));
516 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
520 if (ndr_flags
& NDR_BUFFERS
) {
522 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
523 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
525 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->info
));
527 struct ndr_push
*_ndr_info
;
528 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
529 NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info
, NDR_SCALARS
, r
->info
));
530 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
533 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
536 return NDR_ERR_SUCCESS
;
539 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_BUFFER_RAW(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_BUFFER_RAW
*r
)
542 TALLOC_CTX
*_mem_save_info_0
;
543 if (ndr_flags
& NDR_SCALARS
) {
544 NDR_CHECK(ndr_pull_align(ndr
, 5));
545 NDR_CHECK(ndr_pull_PAC_TYPE(ndr
, NDR_SCALARS
, &r
->type
));
546 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ndr_size
));
548 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
552 NDR_PULL_ALLOC(ndr
, r
->info
);
553 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->info
, _ptr_info
));
557 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
559 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_pad
));
561 if (ndr_flags
& NDR_BUFFERS
) {
563 uint32_t _flags_save_DATA_BLOB_REM
= ndr
->flags
;
564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
566 uint32_t _relative_save_offset
;
567 _relative_save_offset
= ndr
->offset
;
568 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->info
));
569 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
570 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
572 struct ndr_pull
*_ndr_info
;
573 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
574 NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info
, NDR_SCALARS
, r
->info
));
575 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 0, NDR_ROUND(r
->ndr_size
, 8)));
577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
578 ndr
->offset
= _relative_save_offset
;
580 ndr
->flags
= _flags_save_DATA_BLOB_REM
;
583 return NDR_ERR_SUCCESS
;
586 _PUBLIC_
void ndr_print_PAC_BUFFER_RAW(struct ndr_print
*ndr
, const char *name
, const struct PAC_BUFFER_RAW
*r
)
588 ndr_print_struct(ndr
, name
, "PAC_BUFFER_RAW");
590 ndr_print_PAC_TYPE(ndr
, "type", r
->type
);
591 ndr_print_uint32(ndr
, "ndr_size", r
->ndr_size
);
592 ndr_print_ptr(ndr
, "info", r
->info
);
595 ndr_print_DATA_BLOB_REM(ndr
, "info", r
->info
);
598 ndr_print_uint32(ndr
, "_pad", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->_pad
);
602 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_DATA_RAW(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_DATA_RAW
*r
)
604 uint32_t cntr_buffers_0
;
605 if (ndr_flags
& NDR_SCALARS
) {
606 NDR_CHECK(ndr_push_align(ndr
, 5));
607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_buffers
));
608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
609 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
610 NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr
, NDR_SCALARS
, &r
->buffers
[cntr_buffers_0
]));
613 if (ndr_flags
& NDR_BUFFERS
) {
614 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
615 NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr
, NDR_BUFFERS
, &r
->buffers
[cntr_buffers_0
]));
618 return NDR_ERR_SUCCESS
;
621 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_DATA_RAW(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_DATA_RAW
*r
)
623 uint32_t cntr_buffers_0
;
624 TALLOC_CTX
*_mem_save_buffers_0
;
625 if (ndr_flags
& NDR_SCALARS
) {
626 NDR_CHECK(ndr_pull_align(ndr
, 5));
627 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_buffers
));
628 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
629 NDR_PULL_ALLOC_N(ndr
, r
->buffers
, r
->num_buffers
);
630 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
631 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
632 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
633 NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr
, NDR_SCALARS
, &r
->buffers
[cntr_buffers_0
]));
635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
637 if (ndr_flags
& NDR_BUFFERS
) {
638 _mem_save_buffers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
639 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffers
, 0);
640 for (cntr_buffers_0
= 0; cntr_buffers_0
< r
->num_buffers
; cntr_buffers_0
++) {
641 NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr
, NDR_BUFFERS
, &r
->buffers
[cntr_buffers_0
]));
643 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffers_0
, 0);
645 return NDR_ERR_SUCCESS
;
648 _PUBLIC_
void ndr_print_PAC_DATA_RAW(struct ndr_print
*ndr
, const char *name
, const struct PAC_DATA_RAW
*r
)
650 uint32_t cntr_buffers_0
;
651 ndr_print_struct(ndr
, name
, "PAC_DATA_RAW");
653 ndr_print_uint32(ndr
, "num_buffers", r
->num_buffers
);
654 ndr_print_uint32(ndr
, "version", r
->version
);
655 ndr
->print(ndr
, "%s: ARRAY(%d)", "buffers", (int)r
->num_buffers
);
657 for (cntr_buffers_0
=0;cntr_buffers_0
<r
->num_buffers
;cntr_buffers_0
++) {
659 if (asprintf(&idx_0
, "[%d]", cntr_buffers_0
) != -1) {
660 ndr_print_PAC_BUFFER_RAW(ndr
, "buffers", &r
->buffers
[cntr_buffers_0
]);
668 _PUBLIC_
enum ndr_err_code
ndr_push_PAC_Validate(struct ndr_push
*ndr
, int ndr_flags
, const struct PAC_Validate
*r
)
670 if (ndr_flags
& NDR_SCALARS
) {
671 NDR_CHECK(ndr_push_align(ndr
, 4));
672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, NETLOGON_GENERIC_KRB5_PAC_VALIDATE
));
673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ChecksumLength
));
674 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->SignatureType
));
675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SignatureLength
));
677 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
679 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->ChecksumAndSignature
));
680 ndr
->flags
= _flags_save_DATA_BLOB
;
683 if (ndr_flags
& NDR_BUFFERS
) {
685 return NDR_ERR_SUCCESS
;
688 _PUBLIC_
enum ndr_err_code
ndr_pull_PAC_Validate(struct ndr_pull
*ndr
, int ndr_flags
, struct PAC_Validate
*r
)
690 if (ndr_flags
& NDR_SCALARS
) {
691 NDR_CHECK(ndr_pull_align(ndr
, 4));
692 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MessageType
));
693 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ChecksumLength
));
694 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->SignatureType
));
695 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SignatureLength
));
697 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
699 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->ChecksumAndSignature
));
700 ndr
->flags
= _flags_save_DATA_BLOB
;
703 if (ndr_flags
& NDR_BUFFERS
) {
705 return NDR_ERR_SUCCESS
;
708 _PUBLIC_
void ndr_print_PAC_Validate(struct ndr_print
*ndr
, const char *name
, const struct PAC_Validate
*r
)
710 ndr_print_struct(ndr
, name
, "PAC_Validate");
712 ndr_print_uint32(ndr
, "MessageType", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?NETLOGON_GENERIC_KRB5_PAC_VALIDATE
:r
->MessageType
);
713 ndr_print_uint32(ndr
, "ChecksumLength", r
->ChecksumLength
);
714 ndr_print_int32(ndr
, "SignatureType", r
->SignatureType
);
715 ndr_print_uint32(ndr
, "SignatureLength", r
->SignatureLength
);
716 ndr_print_DATA_BLOB(ndr
, "ChecksumAndSignature", r
->ChecksumAndSignature
);
720 _PUBLIC_
enum ndr_err_code
ndr_push_netsamlogoncache_entry(struct ndr_push
*ndr
, int ndr_flags
, const struct netsamlogoncache_entry
*r
)
722 if (ndr_flags
& NDR_SCALARS
) {
723 NDR_CHECK(ndr_push_align(ndr
, 5));
724 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
725 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
727 if (ndr_flags
& NDR_BUFFERS
) {
728 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
730 return NDR_ERR_SUCCESS
;
733 _PUBLIC_
enum ndr_err_code
ndr_pull_netsamlogoncache_entry(struct ndr_pull
*ndr
, int ndr_flags
, struct netsamlogoncache_entry
*r
)
735 if (ndr_flags
& NDR_SCALARS
) {
736 NDR_CHECK(ndr_pull_align(ndr
, 5));
737 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
738 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
740 if (ndr_flags
& NDR_BUFFERS
) {
741 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
743 return NDR_ERR_SUCCESS
;
746 _PUBLIC_
void ndr_print_netsamlogoncache_entry(struct ndr_print
*ndr
, const char *name
, const struct netsamlogoncache_entry
*r
)
748 ndr_print_struct(ndr
, name
, "netsamlogoncache_entry");
750 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
751 ndr_print_netr_SamInfo3(ndr
, "info3", &r
->info3
);
755 static enum ndr_err_code
ndr_push_decode_pac(struct ndr_push
*ndr
, int flags
, const struct decode_pac
*r
)
757 if (flags
& NDR_IN
) {
758 NDR_CHECK(ndr_push_PAC_DATA(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
760 if (flags
& NDR_OUT
) {
762 return NDR_ERR_SUCCESS
;
765 static enum ndr_err_code
ndr_pull_decode_pac(struct ndr_pull
*ndr
, int flags
, struct decode_pac
*r
)
767 if (flags
& NDR_IN
) {
768 NDR_CHECK(ndr_pull_PAC_DATA(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
770 if (flags
& NDR_OUT
) {
772 return NDR_ERR_SUCCESS
;
775 _PUBLIC_
void ndr_print_decode_pac(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_pac
*r
)
777 ndr_print_struct(ndr
, name
, "decode_pac");
779 if (flags
& NDR_SET_VALUES
) {
780 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
782 if (flags
& NDR_IN
) {
783 ndr_print_struct(ndr
, "in", "decode_pac");
785 ndr_print_PAC_DATA(ndr
, "pac", &r
->in
.pac
);
788 if (flags
& NDR_OUT
) {
789 ndr_print_struct(ndr
, "out", "decode_pac");
796 static enum ndr_err_code
ndr_push_decode_pac_raw(struct ndr_push
*ndr
, int flags
, const struct decode_pac_raw
*r
)
798 if (flags
& NDR_IN
) {
799 NDR_CHECK(ndr_push_PAC_DATA_RAW(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
801 if (flags
& NDR_OUT
) {
803 return NDR_ERR_SUCCESS
;
806 static enum ndr_err_code
ndr_pull_decode_pac_raw(struct ndr_pull
*ndr
, int flags
, struct decode_pac_raw
*r
)
808 if (flags
& NDR_IN
) {
809 NDR_CHECK(ndr_pull_PAC_DATA_RAW(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.pac
));
811 if (flags
& NDR_OUT
) {
813 return NDR_ERR_SUCCESS
;
816 _PUBLIC_
void ndr_print_decode_pac_raw(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_pac_raw
*r
)
818 ndr_print_struct(ndr
, name
, "decode_pac_raw");
820 if (flags
& NDR_SET_VALUES
) {
821 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
823 if (flags
& NDR_IN
) {
824 ndr_print_struct(ndr
, "in", "decode_pac_raw");
826 ndr_print_PAC_DATA_RAW(ndr
, "pac", &r
->in
.pac
);
829 if (flags
& NDR_OUT
) {
830 ndr_print_struct(ndr
, "out", "decode_pac_raw");
837 static enum ndr_err_code
ndr_push_decode_login_info(struct ndr_push
*ndr
, int flags
, const struct decode_login_info
*r
)
839 if (flags
& NDR_IN
) {
840 NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon_info
));
842 if (flags
& NDR_OUT
) {
844 return NDR_ERR_SUCCESS
;
847 static enum ndr_err_code
ndr_pull_decode_login_info(struct ndr_pull
*ndr
, int flags
, struct decode_login_info
*r
)
849 if (flags
& NDR_IN
) {
850 NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon_info
));
852 if (flags
& NDR_OUT
) {
854 return NDR_ERR_SUCCESS
;
857 _PUBLIC_
void ndr_print_decode_login_info(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_login_info
*r
)
859 ndr_print_struct(ndr
, name
, "decode_login_info");
861 if (flags
& NDR_SET_VALUES
) {
862 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
864 if (flags
& NDR_IN
) {
865 ndr_print_struct(ndr
, "in", "decode_login_info");
867 ndr_print_PAC_LOGON_INFO(ndr
, "logon_info", &r
->in
.logon_info
);
870 if (flags
& NDR_OUT
) {
871 ndr_print_struct(ndr
, "out", "decode_login_info");
878 static enum ndr_err_code
ndr_push_decode_pac_validate(struct ndr_push
*ndr
, int flags
, const struct decode_pac_validate
*r
)
880 if (flags
& NDR_IN
) {
881 NDR_CHECK(ndr_push_PAC_Validate(ndr
, NDR_SCALARS
, &r
->in
.pac_validate
));
883 if (flags
& NDR_OUT
) {
885 return NDR_ERR_SUCCESS
;
888 static enum ndr_err_code
ndr_pull_decode_pac_validate(struct ndr_pull
*ndr
, int flags
, struct decode_pac_validate
*r
)
890 if (flags
& NDR_IN
) {
891 NDR_CHECK(ndr_pull_PAC_Validate(ndr
, NDR_SCALARS
, &r
->in
.pac_validate
));
893 if (flags
& NDR_OUT
) {
895 return NDR_ERR_SUCCESS
;
898 _PUBLIC_
void ndr_print_decode_pac_validate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct decode_pac_validate
*r
)
900 ndr_print_struct(ndr
, name
, "decode_pac_validate");
902 if (flags
& NDR_SET_VALUES
) {
903 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
905 if (flags
& NDR_IN
) {
906 ndr_print_struct(ndr
, "in", "decode_pac_validate");
908 ndr_print_PAC_Validate(ndr
, "pac_validate", &r
->in
.pac_validate
);
911 if (flags
& NDR_OUT
) {
912 ndr_print_struct(ndr
, "out", "decode_pac_validate");
919 static const struct ndr_interface_call krb5pac_calls
[] = {
922 sizeof(struct decode_pac
),
923 (ndr_push_flags_fn_t
) ndr_push_decode_pac
,
924 (ndr_pull_flags_fn_t
) ndr_pull_decode_pac
,
925 (ndr_print_function_t
) ndr_print_decode_pac
,
930 sizeof(struct decode_pac_raw
),
931 (ndr_push_flags_fn_t
) ndr_push_decode_pac_raw
,
932 (ndr_pull_flags_fn_t
) ndr_pull_decode_pac_raw
,
933 (ndr_print_function_t
) ndr_print_decode_pac_raw
,
938 sizeof(struct decode_login_info
),
939 (ndr_push_flags_fn_t
) ndr_push_decode_login_info
,
940 (ndr_pull_flags_fn_t
) ndr_pull_decode_login_info
,
941 (ndr_print_function_t
) ndr_print_decode_login_info
,
945 "decode_pac_validate",
946 sizeof(struct decode_pac_validate
),
947 (ndr_push_flags_fn_t
) ndr_push_decode_pac_validate
,
948 (ndr_pull_flags_fn_t
) ndr_pull_decode_pac_validate
,
949 (ndr_print_function_t
) ndr_print_decode_pac_validate
,
952 { NULL
, 0, NULL
, NULL
, NULL
, false }
955 static const char * const krb5pac_endpoint_strings
[] = {
956 "ncacn_np:[\\pipe\\krb5pac]",
959 static const struct ndr_interface_string_array krb5pac_endpoints
= {
961 .names
= krb5pac_endpoint_strings
964 static const char * const krb5pac_authservice_strings
[] = {
968 static const struct ndr_interface_string_array krb5pac_authservices
= {
970 .names
= krb5pac_authservice_strings
974 const struct ndr_interface_table ndr_table_krb5pac
= {
977 {0x12345778,0x1234,0xabcd,{0x00,0x00},{0x00,0x00,0x00,0x00}},
980 .helpstring
= NDR_KRB5PAC_HELPSTRING
,
982 .calls
= krb5pac_calls
,
983 .endpoints
= &krb5pac_endpoints
,
984 .authservices
= &krb5pac_authservices