[PSDK] Try to fix build
[reactos.git] / sdk / include / psdk / raseapif.h
1 #ifndef _RASEAPIF_
2 #define _RASEAPIF_
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #if(WINVER >= 0x0500)
9
10 #define RAS_EAP_REGISTRY_LOCATION TEXT("SYSTEM\\CurrentControlSet\\Services\\Rasman\\PPP\\EAP")
11
12 #define RAS_EAP_VALUENAME_PATH TEXT("Path")
13 #define RAS_EAP_VALUENAME_CONFIGUI TEXT("ConfigUIPath")
14 #define RAS_EAP_VALUENAME_INTERACTIVEUI TEXT("InteractiveUIPath")
15 #define RAS_EAP_VALUENAME_IDENTITY TEXT("IdentityPath")
16 #define RAS_EAP_VALUENAME_FRIENDLY_NAME TEXT("FriendlyName")
17 #define RAS_EAP_VALUENAME_DEFAULT_DATA TEXT("ConfigData")
18 #define RAS_EAP_VALUENAME_REQUIRE_CONFIGUI TEXT("RequireConfigUI")
19 #define RAS_EAP_VALUENAME_ENCRYPTION TEXT("MPPEEncryptionSupported")
20 #define RAS_EAP_VALUENAME_INVOKE_NAMEDLG TEXT("InvokeUsernameDialog")
21 #define RAS_EAP_VALUENAME_INVOKE_PWDDLG TEXT("InvokePasswordDialog")
22 #define RAS_EAP_VALUENAME_CONFIG_CLSID TEXT("ConfigCLSID")
23 #define RAS_EAP_VALUENAME_STANDALONE_SUPPORTED TEXT("StandaloneSupported")
24 #define RAS_EAP_VALUENAME_ROLES_SUPPORTED TEXT("RolesSupported")
25 #define RAS_EAP_VALUENAME_PER_POLICY_CONFIG TEXT("PerPolicyConfig")
26
27 #define RAS_EAP_ROLE_AUTHENTICATOR 0x00000001
28 #define RAS_EAP_ROLE_AUTHENTICATEE 0x00000002
29
30 #define RAS_EAP_ROLE_EXCLUDE_IN_EAP 0x00000004
31 #define RAS_EAP_ROLE_EXCLUDE_IN_PEAP 0x00000008
32 #define RAS_EAP_ROLE_EXCLUDE_IN_VPN 0x00000010
33
34 #define raatARAPChallenge 33
35 #define raatARAPOldPassword 19
36 #define raatARAPNewPassword 20
37 #define raatARAPPasswordChangeReason 21
38
39 #define EAPCODE_Request 1
40 #define EAPCODE_Response 2
41 #define EAPCODE_Success 3
42 #define EAPCODE_Failure 4
43
44 #define MAXEAPCODE 4
45
46 #define RAS_EAP_FLAG_ROUTER 0x00000001
47 #define RAS_EAP_FLAG_NON_INTERACTIVE 0x00000002
48 #define RAS_EAP_FLAG_LOGON 0x00000004
49 #define RAS_EAP_FLAG_PREVIEW 0x00000008
50 #define RAS_EAP_FLAG_FIRST_LINK 0x00000010
51 #define RAS_EAP_FLAG_MACHINE_AUTH 0x00000020
52 #define RAS_EAP_FLAG_GUEST_ACCESS 0x00000040
53 #define RAS_EAP_FLAG_8021X_AUTH 0x00000080
54 #define RAS_EAP_FLAG_HOSTED_IN_PEAP 0x00000100
55 #define RAS_EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200
56 #define RAS_EAP_FLAG_PEAP_UPFRONT 0x00000400
57 #define RAS_EAP_FLAG_ALTERNATIVE_USER_DB 0x00000800
58
59 typedef enum _RAS_AUTH_ATTRIBUTE_TYPE_
60 {
61 raatMinimum = 0,
62 raatUserName,
63 raatUserPassword,
64 raatMD5CHAPPassword,
65 raatNASIPAddress,
66 raatNASPort,
67 raatServiceType,
68 raatFramedProtocol,
69 raatFramedIPAddress,
70 raatFramedIPNetmask,
71 raatFramedRouting = 10,
72 raatFilterId,
73 raatFramedMTU,
74 raatFramedCompression,
75 raatLoginIPHost,
76 raatLoginService,
77 raatLoginTCPPort,
78 raatUnassigned17,
79 raatReplyMessage,
80 raatCallbackNumber,
81 raatCallbackId =20,
82 raatUnassigned21,
83 raatFramedRoute,
84 raatFramedIPXNetwork,
85 raatState,
86 raatClass,
87 raatVendorSpecific,
88 raatSessionTimeout,
89 raatIdleTimeout,
90 raatTerminationAction,
91 raatCalledStationId = 30,
92 raatCallingStationId,
93 raatNASIdentifier,
94 raatProxyState,
95 raatLoginLATService,
96 raatLoginLATNode,
97 raatLoginLATGroup,
98 raatFramedAppleTalkLink,
99 raatFramedAppleTalkNetwork,
100 raatFramedAppleTalkZone,
101 raatAcctStatusType = 40,
102 raatAcctDelayTime,
103 raatAcctInputOctets,
104 raatAcctOutputOctets,
105 raatAcctSessionId,
106 raatAcctAuthentic,
107 raatAcctSessionTime,
108 raatAcctInputPackets,
109 raatAcctOutputPackets,
110 raatAcctTerminateCause,
111 raatAcctMultiSessionId = 50,
112 raatAcctLinkCount,
113 raatAcctEventTimeStamp = 55,
114 raatMD5CHAPChallenge = 60,
115 raatNASPortType,
116 raatPortLimit,
117 raatLoginLATPort,
118 raatTunnelType,
119 raatTunnelMediumType,
120 raatTunnelClientEndpoint,
121 raatTunnelServerEndpoint,
122 raatARAPPassword = 70,
123 raatARAPFeatures,
124 raatARAPZoneAccess,
125 raatARAPSecurity,
126 raatARAPSecurityData,
127 raatPasswordRetry,
128 raatPrompt,
129 raatConnectInfo,
130 raatConfigurationToken,
131 raatEAPMessage,
132 raatSignature = 80,
133 raatARAPChallengeResponse = 84,
134 raatAcctInterimInterval = 85,
135 raatARAPGuestLogon = 8096,
136 raatCertificateOID,
137 raatEAPConfiguration,
138 raatPEAPEmbeddedEAPTypeId,
139 raatPEAPFastRoamedSession,
140 raatEAPTLV = 8102,
141 raatReserved = 0xFFFFFFFF
142
143 }RAS_AUTH_ATTRIBUTE_TYPE;
144
145 typedef struct _RAS_AUTH_ATTRIBUTE
146 {
147 RAS_AUTH_ATTRIBUTE_TYPE raaType;
148 DWORD dwLength;
149 PVOID Value;
150
151 }RAS_AUTH_ATTRIBUTE, *PRAS_AUTH_ATTRIBUTE;
152
153 typedef struct _PPP_EAP_PACKET
154 {
155 BYTE Code;
156 BYTE Id;
157 BYTE Length[2];
158 BYTE Data[1];
159 }PPP_EAP_PACKET, *PPPP_EAP_PACKET;
160
161 #define PPP_EAP_PACKET_HDR_LEN (sizeof(PPP_EAP_PACKET) - 1)
162
163 typedef struct _PPP_EAP_INPUT
164 {
165 DWORD dwSizeInBytes;
166 DWORD fFlags;
167 BOOL fAuthenticator;
168 WCHAR* pwszIdentity;
169 WCHAR* pwszPassword;
170 BYTE bInitialId;
171 RAS_AUTH_ATTRIBUTE* pUserAttributes;
172 BOOL fAuthenticationComplete;
173 DWORD dwAuthResultCode;
174 OPTIONAL HANDLE hTokenImpersonateUser;
175 BOOL fSuccessPacketReceived;
176 BOOL fDataReceivedFromInteractiveUI;
177 OPTIONAL PBYTE pDataFromInteractiveUI;
178 DWORD dwSizeOfDataFromInteractiveUI;
179 OPTIONAL PBYTE pConnectionData;
180 DWORD dwSizeOfConnectionData;
181 OPTIONAL PBYTE pUserData;
182 DWORD dwSizeOfUserData;
183 HANDLE hReserved;
184 }PPP_EAP_INPUT, *PPPP_EAP_INPUT;
185
186 typedef enum _PPP_EAP_ACTION
187 {
188 EAPACTION_NoAction,
189 EAPACTION_Authenticate,
190 EAPACTION_Done,
191 EAPACTION_SendAndDone,
192 EAPACTION_Send,
193 EAPACTION_SendWithTimeout,
194 EAPACTION_SendWithTimeoutInteractive,
195 EAPACTION_IndicateTLV,
196 EAPACTION_IndicateIdentity
197 }PPP_EAP_ACTION;
198
199 typedef struct _PPP_EAP_OUTPUT
200 {
201 DWORD dwSizeInBytes;
202 PPP_EAP_ACTION Action;
203 DWORD dwAuthResultCode;
204 OPTIONAL RAS_AUTH_ATTRIBUTE* pUserAttributes;
205 BOOL fInvokeInteractiveUI;
206 OPTIONAL PBYTE pUIContextData;
207 DWORD dwSizeOfUIContextData;
208 BOOL fSaveConnectionData;
209 OPTIONAL PBYTE pConnectionData;
210 DWORD dwSizeOfConnectionData;
211 BOOL fSaveUserData;
212 OPTIONAL PBYTE pUserData;
213 DWORD dwSizeOfUserData;
214 }PPP_EAP_OUTPUT, *PPPP_EAP_OUTPUT;
215
216 typedef struct _PPP_EAP_INFO
217 {
218 DWORD dwSizeInBytes;
219 DWORD dwEapTypeId;
220 DWORD (APIENTRY *RasEapInitialize)(IN BOOL fInitialize );
221 DWORD (APIENTRY *RasEapBegin)(OUT VOID** ppWorkBuffer, IN PPP_EAP_INPUT* pPppEapInput);
222 DWORD (APIENTRY *RasEapEnd)(IN VOID* pWorkBuffer);
223 DWORD (APIENTRY *RasEapMakeMessage)(IN VOID* pWorkBuf, IN PPP_EAP_PACKET* pReceivePacket, OUT PPP_EAP_PACKET* pSendPacket, IN DWORD cbSendPacket, OUT PPP_EAP_OUTPUT* pEapOutput, IN PPP_EAP_INPUT* pEapInput);
224 }PPP_EAP_INFO, *PPPP_EAP_INFO;
225
226 DWORD APIENTRY
227 RasEapGetInfo(IN DWORD dwEapTypeId,
228 OUT PPP_EAP_INFO* pEapInfo);
229
230 DWORD APIENTRY
231 RasEapFreeMemory(IN BYTE* pMemory);
232
233 DWORD APIENTRY
234 RasEapInvokeInteractiveUI(IN DWORD dwEapTypeId,
235 IN HWND hwndParent,
236 IN BYTE* pUIContextData,
237 IN DWORD dwSizeOfUIContextData,
238 OUT BYTE** ppDataFromInteractiveUI,
239 OUT DWORD* pdwSizeOfDataFromInteractiveUI);
240
241 DWORD APIENTRY
242 RasEapInvokeConfigUI(IN DWORD dwEapTypeId,
243 IN HWND hwndParent,
244 IN DWORD dwFlags,
245 IN BYTE* pConnectionDataIn,
246 IN DWORD dwSizeOfConnectionDataIn,
247 OUT BYTE** ppConnectionDataOut,
248 OUT DWORD* pdwSizeOfConnectionDataOut);
249
250 DWORD APIENTRY
251 RasEapGetIdentity(IN DWORD dwEapTypeId,
252 IN HWND hwndParent,
253 IN DWORD dwFlags,
254 IN const WCHAR* pwszPhonebook,
255 IN const WCHAR* pwszEntry,
256 IN BYTE* pConnectionDataIn,
257 IN DWORD dwSizeOfConnectionDataIn,
258 IN BYTE* pUserDataIn,
259 IN DWORD dwSizeOfUserDataIn,
260 OUT BYTE** ppUserDataOut,
261 OUT DWORD* pdwSizeOfUserDataOut,
262 OUT WCHAR** ppwszIdentity
263 );
264
265 #endif /* WINVER >= 0x0500 */
266
267 #ifdef __cplusplus
268 }
269 #endif
270
271 #endif /* _RASEAPIF_ */
272