s4:pwsettings: Added --quiet option.
[Samba/aatanasov.git] / librpc / idl / schannel.idl
blobc3bf3aaeef5f19bc2bd8ecaf72a204399c26655d
1 #include "idl_types.h"
3 /*
4 schannel structures
5 */
7 import "netlogon.idl", "nbt.idl";
10 pointer_default(unique),
11 helper("../librpc/ndr/ndr_schannel.h")
13 interface schannel
16 a schannel bind blob - used in dcerpc auth_info
17 on a schannel
19 typedef struct {
20 astring domain;
21 astring workstation;
22 } schannel_bind_3;
24 typedef struct {
25 astring domain;
26 astring workstation;
27 nbt_string dnsdomain;
28 nbt_string dnsworkstation;
29 } schannel_bind_23;
31 typedef [nodiscriminant] union {
32 [case (3)] schannel_bind_3 info3;
33 [case (23)] schannel_bind_23 info23;
34 } schannel_bind_info;
36 typedef [public] struct {
37 uint32 unknown1; /* seems to need to be 0 */
38 uint32 bind_type;
39 [switch_is(bind_type)] schannel_bind_info u;
40 } schannel_bind;
42 /* a bind_ack blob */
43 typedef [public] struct {
44 uint32 unknown1; /* 1 */
45 uint32 unknown2; /* 0 */
46 uint32 unknown3; /* 0x006c0000 */
47 } schannel_bind_ack;
49 /* this structure is used internally in the NETLOGON server */
51 typedef [public,flag(NDR_PAHEX)] struct {
52 netr_NegotiateFlags negotiate_flags;
53 uint8 session_key[16];
54 uint32 sequence;
55 netr_Credential seed;
56 netr_Credential client;
57 netr_Credential server;
58 netr_SchannelType secure_channel_type;
59 [string,charset(UTF8)] uint8 computer_name[];
60 [string,charset(UTF8)] uint8 account_name[];
61 dom_sid *sid;
62 } netlogon_creds_CredentialState;
64 /* MS-NRPC 2.2.1.3.1 NL_AUTH_MESSAGE */
66 typedef [v1_enum] enum {
67 NL_NEGOTIATE_REQUEST = 0x00000000,
68 NL_NEGOTIATE_RESPONSE = 0x00000001
69 } NL_AUTH_MESSAGE_TYPE;
71 typedef [bitmap32bit] bitmap {
72 NL_FLAG_OEM_NETBIOS_DOMAIN_NAME = 0x00000001,
73 NL_FLAG_OEM_NETBIOS_COMPUTER_NAME = 0x00000002,
74 NL_FLAG_UTF8_DNS_DOMAIN_NAME = 0x00000004,
75 NL_FLAG_UTF8_DNS_HOST_NAME = 0x00000008,
76 NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME = 0x00000010
77 } NL_AUTH_MESSAGE_FLAGS;
79 typedef [public,nodiscriminant,noprint] union {
80 [case (NL_FLAG_OEM_NETBIOS_DOMAIN_NAME)] astring a;
81 [case (NL_FLAG_OEM_NETBIOS_COMPUTER_NAME)] astring a;
82 [case (NL_FLAG_UTF8_DNS_DOMAIN_NAME)] nbt_string u;
83 [case (NL_FLAG_UTF8_DNS_HOST_NAME)] nbt_string u;
84 [case (NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] nbt_string u;
85 [default];
86 } NL_AUTH_MESSAGE_BUFFER;
88 typedef [public,flag(NDR_PAHEX)] struct {
89 NL_AUTH_MESSAGE_TYPE MessageType;
90 NL_AUTH_MESSAGE_FLAGS Flags;
91 [switch_is(Flags & NL_FLAG_OEM_NETBIOS_DOMAIN_NAME)] NL_AUTH_MESSAGE_BUFFER oem_netbios_domain;
92 [switch_is(Flags & NL_FLAG_OEM_NETBIOS_COMPUTER_NAME)] NL_AUTH_MESSAGE_BUFFER oem_netbios_computer;
93 [switch_is(Flags & NL_FLAG_UTF8_DNS_DOMAIN_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_domain;
94 [switch_is(Flags & NL_FLAG_UTF8_DNS_HOST_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_host;
95 [switch_is(Flags & NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_netbios_computer;
96 } NL_AUTH_MESSAGE;
98 /* MS-NRPC 2.2.1.3.2 NL_AUTH_SIGNATURE */
100 typedef enum {
101 NL_SIGN_HMAC_SHA256 = 0x0013,
102 NL_SIGN_HMAC_MD5 = 0x0077
103 } NL_SIGNATURE_ALGORITHM;
105 typedef enum {
106 NL_SEAL_AES128 = 0x001A,
107 NL_SEAL_RC4 = 0x007A,
108 NL_SEAL_NONE = 0xFFFF
109 } NL_SEAL_ALGORITHM;
111 typedef [public,flag(NDR_PAHEX)] struct {
112 [value(NL_SIGN_HMAC_MD5)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm;
113 NL_SEAL_ALGORITHM SealAlgorithm;
114 uint16 Pad;
115 uint16 Flags;
116 uint8 SequenceNumber[8];
117 uint8 Checksum[8];
118 uint8 Confounder[8];
119 } NL_AUTH_SIGNATURE;
121 /* MS-NRPC 2.2.1.3.3 NL_AUTH_SHA2_SIGNATURE */
123 typedef [public,flag(NDR_PAHEX)] struct {
124 [value(NL_SIGN_HMAC_SHA256)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm;
125 NL_SEAL_ALGORITHM SealAlgorithm;
126 uint16 Pad;
127 uint16 Flags;
128 uint8 SequenceNumber[8];
129 uint8 Checksum[32];
130 uint8 Confounder[8];
131 } NL_AUTH_SHA2_SIGNATURE;