1 | /* header auto-generated by pidl */
|
---|
2 |
|
---|
3 | #include <stdint.h>
|
---|
4 |
|
---|
5 | #include "libcli/util/ntstatus.h"
|
---|
6 |
|
---|
7 | #ifndef _HEADER_ntlmssp
|
---|
8 | #define _HEADER_ntlmssp
|
---|
9 |
|
---|
10 | #define NTLMSSP_NEGOTIATE_NTLM2 ( NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY )
|
---|
11 | #define NTLMSSP_SIGN_VERSION ( 0x01 )
|
---|
12 | #define NTLMSSP_SIG_SIZE ( 16 )
|
---|
13 | enum ntlmssp_MessageType
|
---|
14 | #ifndef USE_UINT_ENUMS
|
---|
15 | {
|
---|
16 | NtLmNegotiate=(int)(0x00000001),
|
---|
17 | NtLmChallenge=(int)(0x00000002),
|
---|
18 | NtLmAuthenticate=(int)(0x00000003)
|
---|
19 | }
|
---|
20 | #else
|
---|
21 | { __donnot_use_enum_ntlmssp_MessageType=0x7FFFFFFF}
|
---|
22 | #define NtLmNegotiate ( 0x00000001 )
|
---|
23 | #define NtLmChallenge ( 0x00000002 )
|
---|
24 | #define NtLmAuthenticate ( 0x00000003 )
|
---|
25 | #endif
|
---|
26 | ;
|
---|
27 |
|
---|
28 | /* bitmap NEGOTIATE */
|
---|
29 | #define NTLMSSP_NEGOTIATE_UNICODE ( 0x00000001 )
|
---|
30 | #define NTLMSSP_NEGOTIATE_OEM ( 0x00000002 )
|
---|
31 | #define NTLMSSP_REQUEST_TARGET ( 0x00000004 )
|
---|
32 | #define NTLMSSP_NEGOTIATE_SIGN ( 0x00000010 )
|
---|
33 | #define NTLMSSP_NEGOTIATE_SEAL ( 0x00000020 )
|
---|
34 | #define NTLMSSP_NEGOTIATE_DATAGRAM ( 0x00000040 )
|
---|
35 | #define NTLMSSP_NEGOTIATE_LM_KEY ( 0x00000080 )
|
---|
36 | #define NTLMSSP_NEGOTIATE_NETWARE ( 0x00000100 )
|
---|
37 | #define NTLMSSP_NEGOTIATE_NTLM ( 0x00000200 )
|
---|
38 | #define NTLMSSP_NEGOTIATE_NT_ONLY ( 0x00000400 )
|
---|
39 | #define NTLMSSP_ANONYMOUS ( 0x00000800 )
|
---|
40 | #define NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED ( 0x00001000 )
|
---|
41 | #define NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED ( 0x00002000 )
|
---|
42 | #define NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL ( 0x00004000 )
|
---|
43 | #define NTLMSSP_NEGOTIATE_ALWAYS_SIGN ( 0x00008000 )
|
---|
44 | #define NTLMSSP_TARGET_TYPE_DOMAIN ( 0x00010000 )
|
---|
45 | #define NTLMSSP_TARGET_TYPE_SERVER ( 0x00020000 )
|
---|
46 | #define NTLMSSP_TARGET_TYPE_SHARE ( 0x00040000 )
|
---|
47 | #define NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY ( 0x00080000 )
|
---|
48 | #define NTLMSSP_NEGOTIATE_IDENTIFY ( 0x00100000 )
|
---|
49 | #define NTLMSSP_REQUEST_NON_NT_SESSION_KEY ( 0x00400000 )
|
---|
50 | #define NTLMSSP_NEGOTIATE_TARGET_INFO ( 0x00800000 )
|
---|
51 | #define NTLMSSP_NEGOTIATE_VERSION ( 0x02000000 )
|
---|
52 | #define NTLMSSP_NEGOTIATE_128 ( 0x20000000 )
|
---|
53 | #define NTLMSSP_NEGOTIATE_KEY_EXCH ( 0x40000000 )
|
---|
54 | #define NTLMSSP_NEGOTIATE_56 ( 0x80000000 )
|
---|
55 |
|
---|
56 | enum ntlmssp_WindowsMajorVersion
|
---|
57 | #ifndef USE_UINT_ENUMS
|
---|
58 | {
|
---|
59 | NTLMSSP_WINDOWS_MAJOR_VERSION_5=(int)(0x05),
|
---|
60 | NTLMSSP_WINDOWS_MAJOR_VERSION_6=(int)(0x06)
|
---|
61 | }
|
---|
62 | #else
|
---|
63 | { __donnot_use_enum_ntlmssp_WindowsMajorVersion=0x7FFFFFFF}
|
---|
64 | #define NTLMSSP_WINDOWS_MAJOR_VERSION_5 ( 0x05 )
|
---|
65 | #define NTLMSSP_WINDOWS_MAJOR_VERSION_6 ( 0x06 )
|
---|
66 | #endif
|
---|
67 | ;
|
---|
68 |
|
---|
69 | enum ntlmssp_WindowsMinorVersion
|
---|
70 | #ifndef USE_UINT_ENUMS
|
---|
71 | {
|
---|
72 | NTLMSSP_WINDOWS_MINOR_VERSION_0=(int)(0x00),
|
---|
73 | NTLMSSP_WINDOWS_MINOR_VERSION_1=(int)(0x01),
|
---|
74 | NTLMSSP_WINDOWS_MINOR_VERSION_2=(int)(0x02)
|
---|
75 | }
|
---|
76 | #else
|
---|
77 | { __donnot_use_enum_ntlmssp_WindowsMinorVersion=0x7FFFFFFF}
|
---|
78 | #define NTLMSSP_WINDOWS_MINOR_VERSION_0 ( 0x00 )
|
---|
79 | #define NTLMSSP_WINDOWS_MINOR_VERSION_1 ( 0x01 )
|
---|
80 | #define NTLMSSP_WINDOWS_MINOR_VERSION_2 ( 0x02 )
|
---|
81 | #endif
|
---|
82 | ;
|
---|
83 |
|
---|
84 | enum ntlmssp_NTLMRevisionCurrent
|
---|
85 | #ifndef USE_UINT_ENUMS
|
---|
86 | {
|
---|
87 | NTLMSSP_REVISION_W2K3_RC1=(int)(0x0A),
|
---|
88 | NTLMSSP_REVISION_W2K3=(int)(0x0F)
|
---|
89 | }
|
---|
90 | #else
|
---|
91 | { __donnot_use_enum_ntlmssp_NTLMRevisionCurrent=0x7FFFFFFF}
|
---|
92 | #define NTLMSSP_REVISION_W2K3_RC1 ( 0x0A )
|
---|
93 | #define NTLMSSP_REVISION_W2K3 ( 0x0F )
|
---|
94 | #endif
|
---|
95 | ;
|
---|
96 |
|
---|
97 | struct VERSION {
|
---|
98 | enum ntlmssp_WindowsMajorVersion ProductMajorVersion;
|
---|
99 | enum ntlmssp_WindowsMinorVersion ProductMinorVersion;
|
---|
100 | uint16_t ProductBuild;
|
---|
101 | uint8_t Reserved[3];
|
---|
102 | enum ntlmssp_NTLMRevisionCurrent NTLMRevisionCurrent;
|
---|
103 | };
|
---|
104 |
|
---|
105 | union ntlmssp_Version {
|
---|
106 | struct VERSION version;/* [case(NTLMSSP_NEGOTIATE_VERSION)] */
|
---|
107 | }/* [noprint,nodiscriminant] */;
|
---|
108 |
|
---|
109 | struct NEGOTIATE_MESSAGE {
|
---|
110 | const char *Signature;/* [value("NTLMSSP"),charset(DOS)] */
|
---|
111 | enum ntlmssp_MessageType MessageType;/* [value(NtLmNegotiate)] */
|
---|
112 | uint32_t NegotiateFlags;
|
---|
113 | uint16_t DomainNameLen;/* [value(strlen(DomainName))] */
|
---|
114 | uint16_t DomainNameMaxLen;/* [value(DomainNameLen)] */
|
---|
115 | const char * DomainName;/* [relative,subcontext_size(DomainNameLen),subcontext(0),flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM))] */
|
---|
116 | uint16_t WorkstationLen;/* [value(strlen(Workstation))] */
|
---|
117 | uint16_t WorkstationMaxLen;/* [value(WorkstationLen)] */
|
---|
118 | const char * Workstation;/* [relative,subcontext_size(WorkstationLen),subcontext(0),flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM))] */
|
---|
119 | union ntlmssp_Version Version;/* [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] */
|
---|
120 | }/* [public] */;
|
---|
121 |
|
---|
122 | enum ntlmssp_AvId
|
---|
123 | #ifndef USE_UINT_ENUMS
|
---|
124 | {
|
---|
125 | MsvAvEOL=(int)(0),
|
---|
126 | MsvAvNbComputerName=(int)(1),
|
---|
127 | MsvAvNbDomainName=(int)(2),
|
---|
128 | MsvAvDnsComputerName=(int)(3),
|
---|
129 | MsvAvDnsDomainName=(int)(4),
|
---|
130 | MsvAvDnsTreeName=(int)(5),
|
---|
131 | MsvAvFlags=(int)(6),
|
---|
132 | MsvAvTimestamp=(int)(7),
|
---|
133 | MsAvRestrictions=(int)(8),
|
---|
134 | MsvAvTargetName=(int)(9),
|
---|
135 | MsvChannelBindings=(int)(10)
|
---|
136 | }
|
---|
137 | #else
|
---|
138 | { __donnot_use_enum_ntlmssp_AvId=0x7FFFFFFF}
|
---|
139 | #define MsvAvEOL ( 0 )
|
---|
140 | #define MsvAvNbComputerName ( 1 )
|
---|
141 | #define MsvAvNbDomainName ( 2 )
|
---|
142 | #define MsvAvDnsComputerName ( 3 )
|
---|
143 | #define MsvAvDnsDomainName ( 4 )
|
---|
144 | #define MsvAvDnsTreeName ( 5 )
|
---|
145 | #define MsvAvFlags ( 6 )
|
---|
146 | #define MsvAvTimestamp ( 7 )
|
---|
147 | #define MsAvRestrictions ( 8 )
|
---|
148 | #define MsvAvTargetName ( 9 )
|
---|
149 | #define MsvChannelBindings ( 10 )
|
---|
150 | #endif
|
---|
151 | ;
|
---|
152 |
|
---|
153 | struct Restriction_Encoding {
|
---|
154 | uint32_t Size;
|
---|
155 | uint32_t Z4;/* [value(0)] */
|
---|
156 | uint32_t IntegrityLevel;
|
---|
157 | uint32_t SubjectIntegrityLevel;
|
---|
158 | uint8_t MachineId[32];
|
---|
159 | };
|
---|
160 |
|
---|
161 | /* bitmap ntlmssp_AvFlags */
|
---|
162 | #define NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT ( 0x00000001 )
|
---|
163 | #define NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE ( 0x00000002 )
|
---|
164 |
|
---|
165 | union ntlmssp_AvValue {
|
---|
166 | const char * AvNbComputerName;/* [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE)),case(MsvAvNbComputerName)] */
|
---|
167 | const char * AvNbDomainName;/* [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE)),case(MsvAvNbDomainName)] */
|
---|
168 | const char * AvDnsComputerName;/* [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE)),case(MsvAvDnsComputerName)] */
|
---|
169 | const char * AvDnsDomainName;/* [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE)),case(MsvAvDnsDomainName)] */
|
---|
170 | const char * AvDnsTreeName;/* [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE)),case(MsvAvDnsTreeName)] */
|
---|
171 | uint32_t AvFlags;/* [case(MsvAvFlags)] */
|
---|
172 | NTTIME AvTimestamp;/* [case(MsvAvTimestamp)] */
|
---|
173 | struct Restriction_Encoding AvRestrictions;/* [case(MsAvRestrictions)] */
|
---|
174 | const char * AvTargetName;/* [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE)),case(MsvAvTargetName)] */
|
---|
175 | uint8_t ChannelBindings[16];/* [case(MsvChannelBindings)] */
|
---|
176 | DATA_BLOB blob;/* [default,flag(LIBNDR_FLAG_REMAINING)] */
|
---|
177 | }/* [gensize,nodiscriminant,flag(LIBNDR_FLAG_NOALIGN)] */;
|
---|
178 |
|
---|
179 | struct AV_PAIR {
|
---|
180 | enum ntlmssp_AvId AvId;
|
---|
181 | uint16_t AvLen;/* [value(ndr_size_ntlmssp_AvValue(&r->Value,r->AvId,ndr->iconv_convenience,0))] */
|
---|
182 | union ntlmssp_AvValue Value;/* [subcontext_size(AvLen),subcontext(0),switch_is(AvId)] */
|
---|
183 | }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
|
---|
184 |
|
---|
185 | struct AV_PAIR_LIST {
|
---|
186 | uint32_t count;
|
---|
187 | struct AV_PAIR *pair;
|
---|
188 | }/* [gensize,nopull,nopush,flag(LIBNDR_FLAG_NOALIGN)] */;
|
---|
189 |
|
---|
190 | struct CHALLENGE_MESSAGE {
|
---|
191 | const char *Signature;/* [value("NTLMSSP"),charset(DOS)] */
|
---|
192 | enum ntlmssp_MessageType MessageType;/* [value(NtLmChallenge)] */
|
---|
193 | uint16_t TargetNameLen;/* [value(ndr_ntlmssp_string_length(NegotiateFlags,TargetName))] */
|
---|
194 | uint16_t TargetNameMaxLen;/* [value(TargetNameLen)] */
|
---|
195 | const char * TargetName;/* [relative,subcontext_size(TargetNameLen),subcontext(0),flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] */
|
---|
196 | uint32_t NegotiateFlags;
|
---|
197 | uint8_t ServerChallenge[8];
|
---|
198 | uint8_t Reserved[8];
|
---|
199 | uint16_t TargetInfoLen;/* [value(ndr_size_AV_PAIR_LIST(TargetInfo,ndr->iconv_convenience,ndr->flags))] */
|
---|
200 | uint16_t TargetNameInfoMaxLen;/* [value(TargetInfoLen)] */
|
---|
201 | struct AV_PAIR_LIST *TargetInfo;/* [relative,subcontext_size(TargetInfoLen),subcontext(0)] */
|
---|
202 | union ntlmssp_Version Version;/* [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] */
|
---|
203 | }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
204 |
|
---|
205 | struct LM_RESPONSE {
|
---|
206 | uint8_t Response[24];
|
---|
207 | }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
208 |
|
---|
209 | struct LMv2_RESPONSE {
|
---|
210 | uint8_t Response[16];
|
---|
211 | uint8_t ChallengeFromClient[8];
|
---|
212 | }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
213 |
|
---|
214 | union ntlmssp_LM_RESPONSE {
|
---|
215 | struct LM_RESPONSE v1;/* [case(24)] */
|
---|
216 | }/* [nodiscriminant] */;
|
---|
217 |
|
---|
218 | struct NTLM_RESPONSE {
|
---|
219 | uint8_t Response[24];
|
---|
220 | }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
221 |
|
---|
222 | struct NTLMv2_CLIENT_CHALLENGE {
|
---|
223 | uint8_t RespType;/* [value] */
|
---|
224 | uint8_t HiRespType;/* [value] */
|
---|
225 | uint16_t Reserved1;
|
---|
226 | uint32_t Reserved2;
|
---|
227 | NTTIME TimeStamp;
|
---|
228 | uint8_t ChallengeFromClient[8];
|
---|
229 | uint32_t Reserved3;
|
---|
230 | struct AV_PAIR_LIST AvPairs;/* [subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
|
---|
231 | }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
232 |
|
---|
233 | struct NTLMv2_RESPONSE {
|
---|
234 | uint8_t Response[16];
|
---|
235 | struct NTLMv2_CLIENT_CHALLENGE Challenge;
|
---|
236 | }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
237 |
|
---|
238 | union ntlmssp_NTLM_RESPONSE {
|
---|
239 | struct NTLM_RESPONSE v1;/* [case(0x18)] */
|
---|
240 | struct NTLMv2_RESPONSE v2;/* [default] */
|
---|
241 | }/* [public,nodiscriminant] */;
|
---|
242 |
|
---|
243 | struct MIC {
|
---|
244 | uint8_t MIC[16];
|
---|
245 | }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
246 |
|
---|
247 | struct AUTHENTICATE_MESSAGE {
|
---|
248 | const char *Signature;/* [value("NTLMSSP"),charset(DOS)] */
|
---|
249 | enum ntlmssp_MessageType MessageType;/* [value(NtLmAuthenticate)] */
|
---|
250 | uint16_t LmChallengeResponseLen;
|
---|
251 | uint16_t LmChallengeResponseMaxLen;/* [value(LmChallengeResponseLen)] */
|
---|
252 | union ntlmssp_LM_RESPONSE *LmChallengeResponse;/* [relative,subcontext_size(LmChallengeResponseLen),subcontext(0),switch_is(LmChallengeResponseLen)] */
|
---|
253 | uint16_t NtChallengeResponseLen;
|
---|
254 | uint16_t NtChallengeResponseMaxLen;/* [value(NtChallengeResponseLen)] */
|
---|
255 | union ntlmssp_NTLM_RESPONSE *NtChallengeResponse;/* [relative,subcontext_size(NtChallengeResponseMaxLen),subcontext(0),switch_is(NtChallengeResponseLen)] */
|
---|
256 | uint16_t DomainNameLen;/* [value(ndr_ntlmssp_string_length(NegotiateFlags,DomainName))] */
|
---|
257 | uint16_t DomainNameMaxLen;/* [value(DomainNameLen)] */
|
---|
258 | const char * DomainName;/* [relative,subcontext_size(DomainNameLen),subcontext(0),flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] */
|
---|
259 | uint16_t UserNameLen;/* [value(ndr_ntlmssp_string_length(NegotiateFlags,UserName))] */
|
---|
260 | uint16_t UserNameMaxLen;/* [value(UserNameLen)] */
|
---|
261 | const char * UserName;/* [relative,subcontext_size(UserNameLen),subcontext(0),flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] */
|
---|
262 | uint16_t WorkstationLen;/* [value(ndr_ntlmssp_string_length(NegotiateFlags,Workstation))] */
|
---|
263 | uint16_t WorkstationMaxLen;/* [value(WorkstationLen)] */
|
---|
264 | const char * Workstation;/* [relative,subcontext_size(WorkstationLen),subcontext(0),flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] */
|
---|
265 | uint16_t EncryptedRandomSessionKeyLen;/* [value(EncryptedRandomSessionKey->length)] */
|
---|
266 | uint16_t EncryptedRandomSessionKeyMaxLen;/* [value(EncryptedRandomSessionKeyLen)] */
|
---|
267 | DATA_BLOB *EncryptedRandomSessionKey;/* [relative,subcontext_size(EncryptedRandomSessionKeyLen),subcontext(0)] */
|
---|
268 | uint32_t NegotiateFlags;
|
---|
269 | union ntlmssp_Version Version;/* [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] */
|
---|
270 | }/* [public,flag(LIBNDR_FLAG_REMAINING)] */;
|
---|
271 |
|
---|
272 | struct NTLMSSP_MESSAGE_SIGNATURE {
|
---|
273 | uint32_t Version;/* [value(NTLMSSP_SIGN_VERSION)] */
|
---|
274 | uint32_t RandomPad;
|
---|
275 | uint32_t Checksum;
|
---|
276 | uint32_t SeqNum;
|
---|
277 | }/* [public] */;
|
---|
278 |
|
---|
279 | struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 {
|
---|
280 | uint32_t Version;/* [value(NTLMSSP_SIGN_VERSION)] */
|
---|
281 | uint8_t Checksum[8];
|
---|
282 | uint32_t SeqNum;
|
---|
283 | }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
|
---|
284 |
|
---|
285 |
|
---|
286 | struct decode_NEGOTIATE_MESSAGE {
|
---|
287 | struct {
|
---|
288 | struct NEGOTIATE_MESSAGE negotiate;
|
---|
289 | } in;
|
---|
290 |
|
---|
291 | };
|
---|
292 |
|
---|
293 |
|
---|
294 | struct decode_CHALLENGE_MESSAGE {
|
---|
295 | struct {
|
---|
296 | struct CHALLENGE_MESSAGE challenge;
|
---|
297 | } in;
|
---|
298 |
|
---|
299 | };
|
---|
300 |
|
---|
301 |
|
---|
302 | struct decode_AUTHENTICATE_MESSAGE {
|
---|
303 | struct {
|
---|
304 | struct AUTHENTICATE_MESSAGE authenticate;
|
---|
305 | } in;
|
---|
306 |
|
---|
307 | };
|
---|
308 |
|
---|
309 |
|
---|
310 | struct decode_NTLMv2_CLIENT_CHALLENGE {
|
---|
311 | struct {
|
---|
312 | struct NTLMv2_CLIENT_CHALLENGE challenge;
|
---|
313 | } in;
|
---|
314 |
|
---|
315 | };
|
---|
316 |
|
---|
317 | #endif /* _HEADER_ntlmssp */
|
---|