68d92e5f4ec0ad0d07c6c7325c7cbb5f790c4283
[ira/wip.git] / librpc / idl / schannel.idl
1 #include "idl_types.h"
2
3 /*
4   schannel structures
5 */
6
7 import "netlogon.idl", "nbt.idl";
8
9 interface schannel
10 {
11         /*
12           a schannel bind blob - used in dcerpc auth_info
13           on a schannel
14         */
15         typedef struct {
16                 astring domain;
17                 astring workstation;
18         } schannel_bind_3;
19
20         typedef struct {
21                 astring domain;
22                 astring workstation;
23                 nbt_string dnsdomain;
24                 nbt_string dnsworkstation;
25         } schannel_bind_23;
26
27         typedef [nodiscriminant] union {
28                 [case (3)]  schannel_bind_3  info3;
29                 [case (23)] schannel_bind_23 info23;
30         } schannel_bind_info;
31
32         typedef [public] struct {
33                 uint32 unknown1; /* seems to need to be 0 */
34                 uint32 bind_type;
35                 [switch_is(bind_type)] schannel_bind_info u;
36         } schannel_bind;
37
38         /* a bind_ack blob */
39         typedef [public] struct {
40                 uint32 unknown1; /* 1 */
41                 uint32 unknown2; /* 0 */
42                 uint32 unknown3; /* 0x006c0000 */
43         } schannel_bind_ack;
44
45         /* this structure is used internally in the NETLOGON server */
46
47         typedef [public,flag(NDR_PAHEX)] struct {
48                 netr_NegotiateFlags negotiate_flags;
49                 uint8 session_key[16];
50                 uint32 sequence;
51                 netr_Credential seed;
52                 netr_Credential client;
53                 netr_Credential server;
54                 netr_SchannelType secure_channel_type;
55                 [string,charset(UTF8)] uint8 computer_name[];
56                 [string,charset(UTF8)] uint8 account_name[];
57                 dom_sid *sid;
58         } netlogon_creds_CredentialState;
59 }