master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _INC_EAPMETHODPEERAPIS
  7#define _INC_EAPMETHODPEERAPIS
  8#if (_WIN32_WINNT >= 0x0600)
  9#include <eaptypes.h>
 10#include <eapmethodtypes.h>
 11
 12#ifdef __cplusplus
 13extern "C" {
 14#endif
 15
 16DWORD WINAPI EapPeerQueryCredentialInputFields(
 17  HANDLE hUserImpersonationToken,
 18  EAP_METHOD_TYPE eapMethodType,
 19  DWORD dwFlags,
 20  DWORD dwEapConnDataSize,
 21  BYTE *pbEapConnData,
 22  EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldsArray,
 23  EAP_ERROR **ppEapError
 24);
 25
 26DWORD WINAPI EapPeerBeginSession(
 27  DWORD dwFlags,
 28  const EapAttributes *pAttributeArray,
 29  HANDLE hTokenImpersonateUser,
 30  DWORD dwSizeofConnectionData,
 31  BYTE *pConnectionData,
 32  DWORD dwSizeofUserData,
 33  BYTE *pUserData,
 34  DWORD dwMaxSendPacketSize,
 35  EAP_SESSION_HANDLE *pSessionHandle,
 36  EAP_ERROR **ppEapError
 37);
 38
 39DWORD WINAPI EapPeerQueryUserBlobFromCredentialInputFields(
 40  HANDLE hUserImpersonationToken,
 41  EAP_METHOD_TYPE eapMethodType,
 42  DWORD dwFlags,
 43  DWORD dwEapConnDataSize,
 44  BYTE *pbEapConnData,
 45  const EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldArray,
 46  DWORD *pdwUsersBlobSize,
 47  BYTE **ppUserBlob,
 48  EAP_ERROR **ppEapError
 49);
 50
 51DWORD WINAPI EapPeerGetIdentity(
 52  DWORD dwflags,
 53  DWORD dwSizeofConnectionData,
 54  const BYTE *pConnectionData,
 55  DWORD dwSizeOfUserData,
 56  const BYTE *pUserData,
 57  HANDLE hTokenImpersonateUser,
 58  WINBOOL *pfInvokeUI,
 59  DWORD *pdwSizeOfUserDataOut,
 60  BYTE **ppUserDataOut,
 61  LPWSTR *ppwszIdentity,
 62  EAP_ERROR **ppEapError
 63);
 64
 65DWORD WINAPI EapPeerInitialize(
 66  EAP_ERROR **ppEapError
 67);
 68
 69DWORD WINAPI EapPeerGetInfo(
 70  EAP_TYPE *pEapType,
 71  EAP_PEER_METHOD_ROUTINES *pEapInfo,
 72  EAP_ERROR **ppEapError
 73);
 74
 75DWORD WINAPI EapPeerSetCredentials(
 76  EAP_SESSION_HANDLE sessionHandle,
 77  LPWSTR pwszIdentity,
 78  LPWSTR pwszPassword,
 79  EAP_ERROR **ppEapError
 80);
 81
 82DWORD WINAPI EapPeerInvokeIdentityUI(
 83  EAP_METHOD_TYPE *pEapType,
 84  DWORD dwflags,
 85  HWND hwndParent,
 86  DWORD dwSizeOfConnectionData,
 87  const BYTE *pConnectionData,
 88  DWORD dwSizeOfUserData,
 89  const BYTE *pUserData,
 90  DWORD *pdwSizeOfUserDataOut,
 91  BYTE **ppUserDataOut,
 92  LPWSTR *ppwszIdentity,
 93  EAP_ERROR **ppEapError
 94);
 95
 96DWORD WINAPI EapPeerProcessRequestPacket(
 97  EAP_SESSION_HANDLE sessionHandle,
 98  DWORD cbReceivedPacket,
 99  EapPacket *pReceivedPacket,
100  EapPeerMethodOutput *pEapOutput,
101  EAP_ERROR **ppEapError
102);
103
104DWORD WINAPI EapPeerGetResponsePacket(
105  EAP_SESSION_HANDLE sessionHandle,
106  DWORD *pcbSendPacket,
107  EapPacket *pSendPacket,
108  EAP_ERROR **ppEapError
109);
110
111DWORD WINAPI EapPeerGetResult(
112  EAP_SESSION_HANDLE sessionHandle,
113  EapPeerMethodResultReason reason,
114  EapPeerMethodResult *ppResult,
115  EAP_ERROR **ppEapError
116);
117
118typedef struct tagEapPeerMethodResult {
119  WINBOOL        fIsSuccess;
120  DWORD          dwFailureReasonCode;
121  WINBOOL        fSaveConnectionData;
122  DWORD          dwSizeOfConnectionData;
123  BYTE *         pConnectionData;
124  WINBOOL        fSaveUserData;
125  DWORD          dwSizeofUserData;
126  BYTE *         pUserData;
127  EAP_ATTRIBUTES *pAttribArray;
128  EAP_ERROR *    pEapError;
129} EapPeerMethodResult;
130
131DWORD WINAPI EapPeerGetUIContext(
132  EAP_SESSION_HANDLE sessionHandle,
133  DWORD *pdwSizeOfUIContextData,
134  BYTE **ppUIContextData,
135  EAP_ERROR **ppEapError
136);
137
138DWORD WINAPI EapPeerSetUIContext(
139  EAP_SESSION_HANDLE sessionHandle,
140  DWORD dwSizeOfUIContextData,
141  const BYTE *pUIContextData,
142  EapPeerMethodOutput *pEapOutput,
143  EAP_ERROR **ppEapError
144);
145
146DWORD WINAPI EapPeerGetResponseAttributes(
147  EAP_SESSION_HANDLE sessionHandle,
148  EapAttributes *pAttribs,
149  EAP_ERROR **ppEapError
150);
151
152DWORD WINAPI EapPeerSetResponseAttributes(
153  EAP_SESSION_HANDLE sessionHandle,
154  EapAttributes *pAttribs,
155  EapPeerMethodOutput *pEapOutput,
156  EAP_ERROR **ppEapError
157);
158
159DWORD WINAPI EapPeerEndSession(
160  EAP_SESSION_HANDLE sessionHandle,
161  EAP_ERROR **ppEapError
162);
163
164DWORD WINAPI EapPeerShutdown(
165  EAP_ERROR **ppEapError
166);
167
168DWORD WINAPI EapPeerInvokeConfigUI(
169  EAP_METHOD_TYPE *pEapType,
170  HWND hwndParent,
171  DWORD dwFlags,
172  DWORD dwSizeOfConnectionDataIn,
173  BYTE *pConnectionDataIn,
174  DWORD *dwSizeOfConnectionDataOut,
175  BYTE **ppConnectionDataOut,
176  EAP_ERROR **ppEapError
177);
178
179DWORD WINAPI EapPeerInvokeInteractiveUI(
180  EAP_METHOD_TYPE *pEapType,
181  HWND hwndParent,
182  DWORD dwSizeofUIContextData,
183  BYTE *pUIContextData,
184  DWORD *pdwSizeOfDataFromInteractiveUI,
185  BYTE **ppDataFromInteractiveUI,
186  EAP_ERROR **ppEapError
187);
188
189DWORD WINAPI EapPeerQueryInteractiveUIInputFields(
190  DWORD dwVersion,
191  DWORD dwFlags,
192  DWORD dwSizeofUIContextData,
193  const BYTE *pUIContextData,
194  EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
195  EAP_ERROR **ppEapError,
196  LPVOID *pvReserved
197);
198
199DWORD WINAPI EapPeerQueryUIBlobFromInteractiveUIInputFields(
200  DWORD dwVersion,
201  DWORD dwFlags,
202  DWORD dwSizeofUIContextData,
203  const BYTE *pUIContextData,
204  const EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
205  DWORD *pdwSizeOfDataFromInteractiveUI,
206  BYTE **ppDataFromInteractiveUI,
207  EAP_ERROR **ppEapError,
208  LPVOID *ppvReserved
209);
210
211DWORD WINAPI EapPeerConfigBlob2Xml(
212  DWORD dwFlags,
213  EAP_METHOD_TYPE eapMethodType,
214  const BYTE *pConfigIn,
215  DWORD dwSizeOfConfigIn,
216  IXMLDOMDocument2 **ppConfigDoc,
217  EAP_ERROR **pEapError
218);
219
220DWORD WINAPI EapPeerConfigXml2Blob(
221  DWORD dwFlags,
222  EAP_METHOD_TYPE eapMethodType,
223  IXMLDOMDocument2 *pConfigDoc,
224  BYTE **ppConfigOut,
225  DWORD *pdwSizeOfConfigOut,
226  EAP_ERROR **ppEapError
227);
228
229DWORD WINAPI EapPeerCredentialsXml2Blob(
230  DWORD dwFlags,
231  EAP_METHOD_TYPE eapMethodType,
232  IXMLDOMDocument2 *pCredentialsDoc,
233  const BYTE *pConfigIn,
234  DWORD dwSizeOfConfigIn,
235  BYTE **ppCredentialsOut,
236  DWORD *pdwSizeofCredentialsOut,
237  EAP_ERROR **ppEapError
238);
239
240VOID WINAPI EapPeerFreeMemory(
241  void *pUIContextData
242);
243
244#ifdef __cplusplus
245}
246#endif
247
248#endif /*(_WIN32_WINNT >= 0x0600)*/
249#endif /*_INC_EAPMETHODPEERAPIS*/