ntlmssp: add IDL.
[ira/wip.git] / librpc / idl / ntlmssp.idl
1 #include "idl_types.h"
2
3 /*
4   ntlmssp interface definition
5 */
6
7 [
8         pointer_default(unique)
9 ]
10 interface ntlmssp
11 {
12         typedef [v1_enum] enum {
13                 NtLmNegotiate           = 0x00000001,
14                 NtLmChallenge           = 0x00000002,
15                 NtLmAuthenticate        = 0x00000003
16         } ntlmssp_MessageType;
17
18         typedef [bitmap32bit] bitmap {
19                 NTLMSSP_NEGOTIATE_UNICODE                       = 0x00000001,
20                 NTLMSSP_NEGOTIATE_OEM                           = 0x00000002, /* NTLM_NEGOTIATE_OEM in MS-NLMP */
21                 NTLMSSP_REQUEST_TARGET                          = 0x00000004,
22                 NTLMSSP_NEGOTIATE_SIGN                          = 0x00000010, /* Message integrity */
23                 NTLMSSP_NEGOTIATE_SEAL                          = 0x00000020, /* Message confidentiality */
24                 NTLMSSP_NEGOTIATE_DATAGRAM                      = 0x00000040,
25                 NTLMSSP_NEGOTIATE_LM_KEY                        = 0x00000080,
26                 NTLMSSP_NEGOTIATE_NETWARE                       = 0x00000100, /* not mentioned in MS-NLMP */
27                 NTLMSSP_NEGOTIATE_NTLM                          = 0x00000200,
28                 NTLMSSP_NEGOTIATE_NT_ONLY                       = 0x00000400,
29                 NTLMSSP_ANONYMOUS                               = 0x00000800, /* no symbol name in MS-NLMP */
30                 NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED           = 0x00001000,
31                 NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED      = 0x00002000,
32                 NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL            = 0x00004000, /* not mentioned in MS-NLMP */
33                 NTLMSSP_NEGOTIATE_ALWAYS_SIGN                   = 0x00008000,
34                 NTLMSSP_TARGET_TYPE_DOMAIN                      = 0x00010000,
35                 NTLMSSP_TARGET_TYPE_SERVER                      = 0x00020000,
36                 NTLMSSP_TARGET_TYPE_SHARE                       = 0x00040000,
37                 NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY      = 0x00080000,
38                 NTLMSSP_NEGOTIATE_IDENTIFY                      = 0x00100000,
39                 NTLMSSP_REQUEST_NON_NT_SESSION_KEY              = 0x00400000,
40                 NTLMSSP_NEGOTIATE_TARGET_INFO                   = 0x00800000,
41                 NTLMSSP_NEGOTIATE_VERSION                       = 0x02000000,
42                 NTLMSSP_NEGOTIATE_128                           = 0x20000000, /* 128-bit encryption */
43                 NTLMSSP_NEGOTIATE_KEY_EXCH                      = 0x40000000,
44                 NTLMSSP_NEGOTIATE_56                            = 0x80000000
45         } NEGOTIATE;
46
47         /* convenience mapping */
48         const int NTLMSSP_NEGOTIATE_NTLM2 = NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY;
49
50         /*
51            NTLMSSP_WINDOWS_MAJOR_VERSION_5: Windows XP SP2 and Server 2003
52            NTLMSSP_WINDOWS_MAJOR_VERSION_6: Windows Vista, Server 2008, 7 and Server 2008 R2
53          */
54
55         typedef [enum8bit] enum {
56                 NTLMSSP_WINDOWS_MAJOR_VERSION_5 = 0x05,
57                 NTLMSSP_WINDOWS_MAJOR_VERSION_6 = 0x06
58         } ntlmssp_WindowsMajorVersion;
59
60         /*
61            NTLMSSP_WINDOWS_MINOR_VERSION_0: Windows Vista, Server 2008, 7, Server 2008 R2
62            NTLMSSP_WINDOWS_MINOR_VERSION_1: Windows XP SP2
63            NTLMSSP_WINDOWS_MINOR_VERSION_2: Windows Server 2003
64          */
65
66         typedef [enum8bit] enum {
67                 NTLMSSP_WINDOWS_MINOR_VERSION_0 = 0x00,
68                 NTLMSSP_WINDOWS_MINOR_VERSION_1 = 0x01,
69                 NTLMSSP_WINDOWS_MINOR_VERSION_2 = 0x02
70         } ntlmssp_WindowsMinorVersion;
71
72         /*
73            NTLMSSP_REVISION_W2K3_RC1:
74            NTLMSSP_REVISION_W2K3: Windows XP SP2, Server 2003, Vista, Server 2008, 7, Server 2008 R2
75          */
76
77         typedef [enum8bit] enum {
78                 NTLMSSP_REVISION_W2K3_RC1       = 0x0A,
79                 NTLMSSP_REVISION_W2K3           = 0x0F
80         } ntlmssp_NTLMRevisionCurrent;
81
82         typedef struct {
83                 ntlmssp_WindowsMajorVersion ProductMajorVersion;
84                 ntlmssp_WindowsMinorVersion ProductMinorVersion;
85                 uint16 ProductBuild;
86                 uint8 Reserved[3];
87                 ntlmssp_NTLMRevisionCurrent NTLMRevisionCurrent;
88         } VERSION;
89 }