r6620: the type 23 schannel bind uses a workstation name, not an account name
[samba.git] / source / librpc / idl / krb5pac.idl
1 /*
2   krb5 PAC
3 */
4
5 #include "idl_types.h"
6
7 [
8   uuid("46746756-7567-7567-5677-756756756756"),
9   version(0.0),
10   pointer_default(unique),
11   depends(security,netlogon)
12 ]
13 interface krb5pac
14 {
15         typedef struct {
16                 NTTIME logon_time;
17                 [flag(STR_SIZE2|STR_NOTERM|STR_BYTESIZE)] string account_name;
18         } PAC_UNKNOWN_10;
19
20         typedef [flag(NDR_PAHEX)] struct {
21                 uint32 type;
22                 uint8 signature[16];
23         } PAC_SIGNATURE_DATA;
24
25         typedef struct {
26                 uint32 unknown[5];
27                 netr_SamInfo3 info3;
28                 dom_sid2 *res_group_dom_sid;
29                 samr_RidWithTypeArray res_groups;
30         } PAC_LOGON_INFO;
31
32         const uint8 PAC_TYPE_LOGON_INFO = 1;
33         const uint8 PAC_TYPE_SRV_CHECKSUM = 6;
34         const uint8 PAC_TYPE_KDC_CHECKSUM = 7;
35         const uint8 PAC_TYPE_UNKNOWN_10 = 10;
36
37         typedef [nodiscriminant] union {
38                 [case(PAC_TYPE_LOGON_INFO)]     PAC_LOGON_INFO logon_info;
39                 [case(PAC_TYPE_SRV_CHECKSUM)]   PAC_SIGNATURE_DATA srv_cksum;
40                 [case(PAC_TYPE_KDC_CHECKSUM)]   PAC_SIGNATURE_DATA kdc_cksum;
41                 [case(PAC_TYPE_UNKNOWN_10)]     PAC_UNKNOWN_10 type_10;
42         } PAC_INFO;
43
44         typedef struct {
45                 uint32 type;
46                 uint32 size;
47                 [relative,switch_is(type)] PAC_INFO *info;
48                 uint32 _pad;
49         } PAC_BUFFER;
50
51         typedef [public,flag(NDR_ALIGN8)] struct {
52                 uint32 num_buffers;
53                 uint32 version;
54                 PAC_BUFFER buffers[num_buffers];
55         } PAC_DATA;
56
57         void decode_pac(
58                 [in] PAC_DATA pac
59                 );
60
61         void decode_login_info(
62                 [in] PAC_LOGON_INFO logon_info
63                 );
64 }