/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_EAPMETHODPEERAPIS
#define _INC_EAPMETHODPEERAPIS
#if (_WIN32_WINNT >= 0x0600)
#include <eaptypes.h>
#include <eapmethodtypes.h>
#ifdef __cplusplus
extern "C" {
#endif
DWORD WINAPI EapPeerQueryCredentialInputFields(
HANDLE hUserImpersonationToken,
EAP_METHOD_TYPE eapMethodType,
DWORD dwFlags,
DWORD dwEapConnDataSize,
BYTE *pbEapConnData,
EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldsArray,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerBeginSession(
DWORD dwFlags,
const EapAttributes *pAttributeArray,
HANDLE hTokenImpersonateUser,
DWORD dwSizeofConnectionData,
BYTE *pConnectionData,
DWORD dwSizeofUserData,
BYTE *pUserData,
DWORD dwMaxSendPacketSize,
EAP_SESSION_HANDLE *pSessionHandle,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerQueryUserBlobFromCredentialInputFields(
HANDLE hUserImpersonationToken,
EAP_METHOD_TYPE eapMethodType,
DWORD dwFlags,
DWORD dwEapConnDataSize,
BYTE *pbEapConnData,
const EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldArray,
DWORD *pdwUsersBlobSize,
BYTE **ppUserBlob,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerGetIdentity(
DWORD dwflags,
DWORD dwSizeofConnectionData,
const BYTE *pConnectionData,
DWORD dwSizeOfUserData,
const BYTE *pUserData,
HANDLE hTokenImpersonateUser,
WINBOOL *pfInvokeUI,
DWORD *pdwSizeOfUserDataOut,
BYTE **ppUserDataOut,
LPWSTR *ppwszIdentity,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerInitialize(
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerGetInfo(
EAP_TYPE *pEapType,
EAP_PEER_METHOD_ROUTINES *pEapInfo,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerSetCredentials(
EAP_SESSION_HANDLE sessionHandle,
LPWSTR pwszIdentity,
LPWSTR pwszPassword,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerInvokeIdentityUI(
EAP_METHOD_TYPE *pEapType,
DWORD dwflags,
HWND hwndParent,
DWORD dwSizeOfConnectionData,
const BYTE *pConnectionData,
DWORD dwSizeOfUserData,
const BYTE *pUserData,
DWORD *pdwSizeOfUserDataOut,
BYTE **ppUserDataOut,
LPWSTR *ppwszIdentity,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerProcessRequestPacket(
EAP_SESSION_HANDLE sessionHandle,
DWORD cbReceivedPacket,
EapPacket *pReceivedPacket,
EapPeerMethodOutput *pEapOutput,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerGetResponsePacket(
EAP_SESSION_HANDLE sessionHandle,
DWORD *pcbSendPacket,
EapPacket *pSendPacket,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerGetResult(
EAP_SESSION_HANDLE sessionHandle,
EapPeerMethodResultReason reason,
EapPeerMethodResult *ppResult,
EAP_ERROR **ppEapError
);
typedef struct tagEapPeerMethodResult {
WINBOOL fIsSuccess;
DWORD dwFailureReasonCode;
WINBOOL fSaveConnectionData;
DWORD dwSizeOfConnectionData;
BYTE * pConnectionData;
WINBOOL fSaveUserData;
DWORD dwSizeofUserData;
BYTE * pUserData;
EAP_ATTRIBUTES *pAttribArray;
EAP_ERROR * pEapError;
} EapPeerMethodResult;
DWORD WINAPI EapPeerGetUIContext(
EAP_SESSION_HANDLE sessionHandle,
DWORD *pdwSizeOfUIContextData,
BYTE **ppUIContextData,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerSetUIContext(
EAP_SESSION_HANDLE sessionHandle,
DWORD dwSizeOfUIContextData,
const BYTE *pUIContextData,
EapPeerMethodOutput *pEapOutput,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerGetResponseAttributes(
EAP_SESSION_HANDLE sessionHandle,
EapAttributes *pAttribs,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerSetResponseAttributes(
EAP_SESSION_HANDLE sessionHandle,
EapAttributes *pAttribs,
EapPeerMethodOutput *pEapOutput,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerEndSession(
EAP_SESSION_HANDLE sessionHandle,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerShutdown(
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerInvokeConfigUI(
EAP_METHOD_TYPE *pEapType,
HWND hwndParent,
DWORD dwFlags,
DWORD dwSizeOfConnectionDataIn,
BYTE *pConnectionDataIn,
DWORD *dwSizeOfConnectionDataOut,
BYTE **ppConnectionDataOut,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerInvokeInteractiveUI(
EAP_METHOD_TYPE *pEapType,
HWND hwndParent,
DWORD dwSizeofUIContextData,
BYTE *pUIContextData,
DWORD *pdwSizeOfDataFromInteractiveUI,
BYTE **ppDataFromInteractiveUI,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerQueryInteractiveUIInputFields(
DWORD dwVersion,
DWORD dwFlags,
DWORD dwSizeofUIContextData,
const BYTE *pUIContextData,
EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
EAP_ERROR **ppEapError,
LPVOID *pvReserved
);
DWORD WINAPI EapPeerQueryUIBlobFromInteractiveUIInputFields(
DWORD dwVersion,
DWORD dwFlags,
DWORD dwSizeofUIContextData,
const BYTE *pUIContextData,
const EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
DWORD *pdwSizeOfDataFromInteractiveUI,
BYTE **ppDataFromInteractiveUI,
EAP_ERROR **ppEapError,
LPVOID *ppvReserved
);
DWORD WINAPI EapPeerConfigBlob2Xml(
DWORD dwFlags,
EAP_METHOD_TYPE eapMethodType,
const BYTE *pConfigIn,
DWORD dwSizeOfConfigIn,
IXMLDOMDocument2 **ppConfigDoc,
EAP_ERROR **pEapError
);
DWORD WINAPI EapPeerConfigXml2Blob(
DWORD dwFlags,
EAP_METHOD_TYPE eapMethodType,
IXMLDOMDocument2 *pConfigDoc,
BYTE **ppConfigOut,
DWORD *pdwSizeOfConfigOut,
EAP_ERROR **ppEapError
);
DWORD WINAPI EapPeerCredentialsXml2Blob(
DWORD dwFlags,
EAP_METHOD_TYPE eapMethodType,
IXMLDOMDocument2 *pCredentialsDoc,
const BYTE *pConfigIn,
DWORD dwSizeOfConfigIn,
BYTE **ppCredentialsOut,
DWORD *pdwSizeofCredentialsOut,
EAP_ERROR **ppEapError
);
VOID WINAPI EapPeerFreeMemory(
void *pUIContextData
);
#ifdef __cplusplus
}
#endif
#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif /*_INC_EAPMETHODPEERAPIS*/