73bd0d95bb1fd97c1f62b6fd3853e4e5c210123e
[amitay/samba.git] / librpc / gen_ndr / krb5pac.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
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
10
11 #define NETLOGON_GENERIC_KRB5_PAC_VALIDATE      ( 3 )
12 struct PAC_LOGON_NAME {
13         NTTIME logon_time;
14         uint16_t size;/* [value(2*strlen_m(account_name))] */
15         const char *account_name;/* [charset(UTF16)] */
16 };
17
18 struct PAC_SIGNATURE_DATA {
19         uint32_t type;
20         DATA_BLOB signature;/* [flag(LIBNDR_FLAG_REMAINING)] */
21 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
22
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;
27 };
28
29 struct PAC_UNKNOWN_12 {
30         uint16_t upn_size;/* [value(2*strlen_m(upn_name))] */
31         uint16_t upn_offset;
32         uint16_t domain_size;/* [value(2*strlen_m(domain_name))] */
33         uint16_t domain_offset;
34         uint16_t unknown3;
35         uint16_t unknown4;
36         uint32_t unknown5;
37         const char *upn_name;/* [charset(UTF16)] */
38         const char *domain_name;/* [charset(UTF16)] */
39         uint32_t unknown6;
40 };
41
42 struct PAC_LOGON_INFO_CTR {
43         struct PAC_LOGON_INFO *info;/* [unique] */
44 }/* [public] */;
45
46 enum PAC_TYPE
47 #ifndef USE_UINT_ENUMS
48  {
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
55 }
56 #else
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 )
64 #endif
65 ;
66
67 struct DATA_BLOB_REM {
68         DATA_BLOB remaining;/* [flag(LIBNDR_FLAG_REMAINING)] */
69 };
70
71 union PAC_INFO {
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] */;
78
79 struct PAC_BUFFER {
80         enum PAC_TYPE type;
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] */;
85
86 struct PAC_DATA {
87         uint32_t num_buffers;
88         uint32_t version;
89         struct PAC_BUFFER *buffers;
90 }/* [public] */;
91
92 struct PAC_BUFFER_RAW {
93         enum PAC_TYPE type;
94         uint32_t ndr_size;
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)] */
97 }/* [public] */;
98
99 struct PAC_DATA_RAW {
100         uint32_t num_buffers;
101         uint32_t version;
102         struct PAC_BUFFER_RAW *buffers;
103 }/* [public] */;
104
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)] */
111 }/* [public] */;
112
113 struct netsamlogoncache_entry {
114         time_t timestamp;
115         struct netr_SamInfo3 info3;
116 }/* [public] */;
117
118
119 struct decode_pac {
120         struct {
121                 struct PAC_DATA pac;
122         } in;
123
124 };
125
126
127 struct decode_pac_raw {
128         struct {
129                 struct PAC_DATA_RAW pac;
130         } in;
131
132 };
133
134
135 struct decode_login_info {
136         struct {
137                 struct PAC_LOGON_INFO logon_info;
138         } in;
139
140 };
141
142
143 struct decode_pac_validate {
144         struct {
145                 struct PAC_Validate pac_validate;
146         } in;
147
148 };
149
150 #endif /* _HEADER_krb5pac */