7 import
"security.idl", "netlogon.idl", "samr.idl";
10 uuid("12345778-1234-abcd-0000-00000000"),
12 pointer_default(unique),
13 helpstring("Active Directory KRB5 PAC")
19 [value
(2*strlen_m
(account_name
))] uint16 size
;
20 [charset
(UTF16
)] uint8 account_name
[size
];
23 typedef [public,flag
(NDR_PAHEX
)] struct {
25 [flag
(NDR_REMAINING
)] DATA_BLOB signature
;
28 typedef [gensize
] struct {
30 dom_sid2
*res_group_dom_sid
;
31 samr_RidWithAttributeArray res_groups
;
34 typedef [public] struct {
35 [value
(0x00081001)] uint32 unknown1
;
36 [value
(0xCCCCCCCC)] uint32 unknown2
;
37 [value
(NDR_ROUND
(ndr_size_PAC_LOGON_INFO
(info
, ndr
->flags
)+4,8))] uint32 _ndr_size
;
38 [value
(0x00000000)] uint32 unknown3
;
42 typedef [public,v1_enum] enum {
43 PAC_TYPE_LOGON_INFO
= 1,
44 PAC_TYPE_SRV_CHECKSUM
= 6,
45 PAC_TYPE_KDC_CHECKSUM
= 7,
46 PAC_TYPE_LOGON_NAME
= 10,
47 PAC_TYPE_CONSTRAINED_DELEGATION
= 11
50 typedef [public,nodiscriminant
,gensize
] union {
51 [case(PAC_TYPE_LOGON_INFO
)] PAC_LOGON_INFO_CTR logon_info
;
52 [case(PAC_TYPE_SRV_CHECKSUM
)] PAC_SIGNATURE_DATA srv_cksum
;
53 [case(PAC_TYPE_KDC_CHECKSUM
)] PAC_SIGNATURE_DATA kdc_cksum
;
54 [case(PAC_TYPE_LOGON_NAME
)] PAC_LOGON_NAME logon_name
;
57 typedef [public,nopush
,nopull
,noprint
] struct {
59 [value
(_ndr_size_PAC_INFO
(info
, type
, 0))] uint32 _ndr_size
;
60 [relative
,switch_is(type
),subcontext
(0),subcontext_size
(_subcontext_size_PAC_INFO
(r
, ndr
->flags
)),flag
(NDR_ALIGN8
)] PAC_INFO
*info
;
61 [value
(0)] uint32 _pad
; /* Top half of a 64 bit pointer? */
64 typedef [public] struct {
67 PAC_BUFFER buffers
[num_buffers
];
71 [flag
(NDR_REMAINING
)] DATA_BLOB remaining
;
74 typedef [public] struct {
77 [relative
,subcontext
(0),subcontext_size
(NDR_ROUND
(ndr_size
,8)),flag
(NDR_ALIGN8
)] DATA_BLOB_REM
*info
;
78 [value
(0)] uint32 _pad
; /* Top half of a 64 bit pointer? */
81 typedef [public] struct {
84 PAC_BUFFER_RAW buffers
[num_buffers
];
95 void decode_login_info
(
96 [in] PAC_LOGON_INFO logon_info
99 /* used for samba3 netsamlogon cache */
100 typedef [public] struct {
103 } netsamlogoncache_entry
;