1 /* header auto-generated by pidl */
5 #include "librpc/gen_ndr/security.h"
6 #include "librpc/gen_ndr/netlogon.h"
7 #include "librpc/gen_ndr/samr.h"
8 #ifndef _HEADER_krb5pac
9 #define _HEADER_krb5pac
11 #define NETLOGON_GENERIC_KRB5_PAC_VALIDATE ( 3 )
12 struct PAC_LOGON_NAME {
14 uint16_t size;/* [value(2*strlen_m(account_name))] */
15 const char *account_name;/* [charset(UTF16)] */
18 struct PAC_SIGNATURE_DATA {
20 DATA_BLOB signature;/* [flag(LIBNDR_FLAG_REMAINING)] */
21 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
23 struct PAC_LOGON_INFO {
24 struct netr_SamInfo3 info3;
25 struct dom_sid2 *res_group_dom_sid;/* [unique] */
26 struct samr_RidWithAttributeArray res_groups;
29 struct PAC_UNKNOWN_12 {
30 uint16_t upn_size;/* [value(2*strlen_m(upn_name))] */
32 uint16_t domain_size;/* [value(2*strlen_m(domain_name))] */
33 uint16_t domain_offset;
37 const char *upn_name;/* [charset(UTF16)] */
38 const char *domain_name;/* [charset(UTF16)] */
42 struct PAC_LOGON_INFO_CTR {
43 struct PAC_LOGON_INFO *info;/* [unique] */
47 #ifndef USE_UINT_ENUMS
49 PAC_TYPE_LOGON_INFO=1,
50 PAC_TYPE_SRV_CHECKSUM=6,
51 PAC_TYPE_KDC_CHECKSUM=7,
52 PAC_TYPE_LOGON_NAME=10,
53 PAC_TYPE_CONSTRAINED_DELEGATION=11,
54 PAC_TYPE_UNKNOWN_12=12
57 { __donnot_use_enum_PAC_TYPE=0x7FFFFFFF}
58 #define PAC_TYPE_LOGON_INFO ( 1 )
59 #define PAC_TYPE_SRV_CHECKSUM ( 6 )
60 #define PAC_TYPE_KDC_CHECKSUM ( 7 )
61 #define PAC_TYPE_LOGON_NAME ( 10 )
62 #define PAC_TYPE_CONSTRAINED_DELEGATION ( 11 )
63 #define PAC_TYPE_UNKNOWN_12 ( 12 )
67 struct DATA_BLOB_REM {
68 DATA_BLOB remaining;/* [flag(LIBNDR_FLAG_REMAINING)] */
72 struct PAC_LOGON_INFO_CTR logon_info;/* [subcontext(0xFFFFFC01),case(PAC_TYPE_LOGON_INFO)] */
73 struct PAC_SIGNATURE_DATA srv_cksum;/* [case(PAC_TYPE_SRV_CHECKSUM)] */
74 struct PAC_SIGNATURE_DATA kdc_cksum;/* [case(PAC_TYPE_KDC_CHECKSUM)] */
75 struct PAC_LOGON_NAME logon_name;/* [case(PAC_TYPE_LOGON_NAME)] */
76 struct DATA_BLOB_REM unknown;/* [subcontext(0),default] */
77 }/* [gensize,nodiscriminant,public] */;
81 uint32_t _ndr_size;/* [value(_ndr_size_PAC_INFO(info,type,0))] */
82 union PAC_INFO *info;/* [relative,subcontext_size(_subcontext_size_PAC_INFO(r,ndr->flags)),subcontext(0),switch_is(type),flag(LIBNDR_FLAG_ALIGN8)] */
83 uint32_t _pad;/* [value(0)] */
84 }/* [noprint,nopull,public,nopush] */;
89 struct PAC_BUFFER *buffers;
92 struct PAC_BUFFER_RAW {
95 struct DATA_BLOB_REM *info;/* [relative,subcontext_size(NDR_ROUND(ndr_size,8)),subcontext(0),flag(LIBNDR_FLAG_ALIGN8)] */
96 uint32_t _pad;/* [value(0)] */
100 uint32_t num_buffers;
102 struct PAC_BUFFER_RAW *buffers;
105 struct PAC_Validate {
106 uint32_t MessageType;/* [value(NETLOGON_GENERIC_KRB5_PAC_VALIDATE)] */
107 uint32_t ChecksumLength;
108 int32_t SignatureType;
109 uint32_t SignatureLength;
110 DATA_BLOB ChecksumAndSignature;/* [flag(LIBNDR_FLAG_REMAINING)] */
113 struct netsamlogoncache_entry {
115 struct netr_SamInfo3 info3;
127 struct decode_pac_raw {
129 struct PAC_DATA_RAW pac;
135 struct decode_login_info {
137 struct PAC_LOGON_INFO logon_info;
143 struct decode_pac_validate {
145 struct PAC_Validate pac_validate;
150 #endif /* _HEADER_krb5pac */