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 13 extern "C" { 14 #endif 15 16 DWORD 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 26 DWORD 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 39 DWORD 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 51 DWORD 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 65 DWORD WINAPI EapPeerInitialize( 66 EAP_ERROR **ppEapError 67 ); 68 69 DWORD WINAPI EapPeerGetInfo( 70 EAP_TYPE *pEapType, 71 EAP_PEER_METHOD_ROUTINES *pEapInfo, 72 EAP_ERROR **ppEapError 73 ); 74 75 DWORD WINAPI EapPeerSetCredentials( 76 EAP_SESSION_HANDLE sessionHandle, 77 LPWSTR pwszIdentity, 78 LPWSTR pwszPassword, 79 EAP_ERROR **ppEapError 80 ); 81 82 DWORD 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 96 DWORD WINAPI EapPeerProcessRequestPacket( 97 EAP_SESSION_HANDLE sessionHandle, 98 DWORD cbReceivedPacket, 99 EapPacket *pReceivedPacket, 100 EapPeerMethodOutput *pEapOutput, 101 EAP_ERROR **ppEapError 102 ); 103 104 DWORD WINAPI EapPeerGetResponsePacket( 105 EAP_SESSION_HANDLE sessionHandle, 106 DWORD *pcbSendPacket, 107 EapPacket *pSendPacket, 108 EAP_ERROR **ppEapError 109 ); 110 111 DWORD WINAPI EapPeerGetResult( 112 EAP_SESSION_HANDLE sessionHandle, 113 EapPeerMethodResultReason reason, 114 EapPeerMethodResult *ppResult, 115 EAP_ERROR **ppEapError 116 ); 117 118 typedef 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 131 DWORD WINAPI EapPeerGetUIContext( 132 EAP_SESSION_HANDLE sessionHandle, 133 DWORD *pdwSizeOfUIContextData, 134 BYTE **ppUIContextData, 135 EAP_ERROR **ppEapError 136 ); 137 138 DWORD WINAPI EapPeerSetUIContext( 139 EAP_SESSION_HANDLE sessionHandle, 140 DWORD dwSizeOfUIContextData, 141 const BYTE *pUIContextData, 142 EapPeerMethodOutput *pEapOutput, 143 EAP_ERROR **ppEapError 144 ); 145 146 DWORD WINAPI EapPeerGetResponseAttributes( 147 EAP_SESSION_HANDLE sessionHandle, 148 EapAttributes *pAttribs, 149 EAP_ERROR **ppEapError 150 ); 151 152 DWORD WINAPI EapPeerSetResponseAttributes( 153 EAP_SESSION_HANDLE sessionHandle, 154 EapAttributes *pAttribs, 155 EapPeerMethodOutput *pEapOutput, 156 EAP_ERROR **ppEapError 157 ); 158 159 DWORD WINAPI EapPeerEndSession( 160 EAP_SESSION_HANDLE sessionHandle, 161 EAP_ERROR **ppEapError 162 ); 163 164 DWORD WINAPI EapPeerShutdown( 165 EAP_ERROR **ppEapError 166 ); 167 168 DWORD 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 179 DWORD 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 189 DWORD 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 199 DWORD 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 211 DWORD 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 220 DWORD 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 229 DWORD 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 240 VOID WINAPI EapPeerFreeMemory( 241 void *pUIContextData 242 ); 243 244 #ifdef __cplusplus 245 } 246 #endif 247 248 #endif /*(_WIN32_WINNT >= 0x0600)*/ 249 #endif /*_INC_EAPMETHODPEERAPIS*/ 250