mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-20 09:04:43 +00:00
278 lines
8.6 KiB
C
278 lines
8.6 KiB
C
/**
|
|
* This file is part of the mingw-w64 runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER within this package.
|
|
*/
|
|
|
|
#ifndef _RASEAPIF_
|
|
#define _RASEAPIF_
|
|
|
|
#include <winapifamily.h>
|
|
|
|
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define RAS_EAP_REGISTRY_LOCATION TEXT("System\\CurrentControlSet\\Services\\Rasman\\PPP\\EAP")
|
|
|
|
#define RAS_EAP_VALUENAME_PATH TEXT("Path")
|
|
#define RAS_EAP_VALUENAME_CONFIGUI TEXT("ConfigUIPath")
|
|
#define RAS_EAP_VALUENAME_INTERACTIVEUI TEXT("InteractiveUIPath")
|
|
#define RAS_EAP_VALUENAME_IDENTITY TEXT("IdentityPath")
|
|
#define RAS_EAP_VALUENAME_FRIENDLY_NAME TEXT("FriendlyName")
|
|
#define RAS_EAP_VALUENAME_DEFAULT_DATA TEXT("ConfigData")
|
|
#define RAS_EAP_VALUENAME_REQUIRE_CONFIGUI TEXT("RequireConfigUI")
|
|
#define RAS_EAP_VALUENAME_ENCRYPTION TEXT("MPPEEncryptionSupported")
|
|
#define RAS_EAP_VALUENAME_INVOKE_NAMEDLG TEXT("InvokeUsernameDialog")
|
|
#define RAS_EAP_VALUENAME_INVOKE_PWDDLG TEXT("InvokePasswordDialog")
|
|
#define RAS_EAP_VALUENAME_CONFIG_CLSID TEXT("ConfigCLSID")
|
|
#define RAS_EAP_VALUENAME_STANDALONE_SUPPORTED TEXT("StandaloneSupported")
|
|
#define RAS_EAP_VALUENAME_ROLES_SUPPORTED TEXT("RolesSupported")
|
|
#define RAS_EAP_VALUENAME_PER_POLICY_CONFIG TEXT("PerPolicyConfig")
|
|
#define RAS_EAP_VALUENAME_ISTUNNEL_METHOD TEXT("IsTunnelMethod")
|
|
#define RAS_EAP_VALUENAME_FILTER_INNERMETHODS TEXT("FilterInnerMethods")
|
|
|
|
#define RAS_EAP_ROLE_AUTHENTICATOR 0x00000001
|
|
#define RAS_EAP_ROLE_AUTHENTICATEE 0x00000002
|
|
|
|
#define RAS_EAP_ROLE_EXCLUDE_IN_EAP 0x00000004
|
|
#define RAS_EAP_ROLE_EXCLUDE_IN_PEAP 0x00000008
|
|
#define RAS_EAP_ROLE_EXCLUDE_IN_VPN 0x00000010
|
|
|
|
typedef enum _RAS_AUTH_ATTRIBUTE_TYPE_ {
|
|
raatMinimum = 0,
|
|
raatUserName,
|
|
raatUserPassword,
|
|
raatMD5CHAPPassword,
|
|
raatNASIPAddress,
|
|
raatNASPort,
|
|
raatServiceType,
|
|
raatFramedProtocol,
|
|
raatFramedIPAddress,
|
|
raatFramedIPNetmask,
|
|
raatFramedRouting = 10,
|
|
raatFilterId,
|
|
raatFramedMTU,
|
|
raatFramedCompression,
|
|
raatLoginIPHost,
|
|
raatLoginService,
|
|
raatLoginTCPPort,
|
|
raatUnassigned17,
|
|
raatReplyMessage,
|
|
raatCallbackNumber,
|
|
raatCallbackId =20,
|
|
raatUnassigned21,
|
|
raatFramedRoute,
|
|
raatFramedIPXNetwork,
|
|
raatState,
|
|
raatClass,
|
|
raatVendorSpecific,
|
|
raatSessionTimeout,
|
|
raatIdleTimeout,
|
|
raatTerminationAction,
|
|
raatCalledStationId = 30,
|
|
raatCallingStationId,
|
|
raatNASIdentifier,
|
|
raatProxyState,
|
|
raatLoginLATService,
|
|
raatLoginLATNode,
|
|
raatLoginLATGroup,
|
|
raatFramedAppleTalkLink,
|
|
raatFramedAppleTalkNetwork,
|
|
raatFramedAppleTalkZone,
|
|
raatAcctStatusType = 40,
|
|
raatAcctDelayTime,
|
|
raatAcctInputOctets,
|
|
raatAcctOutputOctets,
|
|
raatAcctSessionId,
|
|
raatAcctAuthentic,
|
|
raatAcctSessionTime,
|
|
raatAcctInputPackets,
|
|
raatAcctOutputPackets,
|
|
raatAcctTerminateCause,
|
|
raatAcctMultiSessionId = 50,
|
|
raatAcctLinkCount,
|
|
raatAcctEventTimeStamp = 55,
|
|
raatMD5CHAPChallenge = 60,
|
|
raatNASPortType,
|
|
raatPortLimit,
|
|
raatLoginLATPort,
|
|
raatTunnelType,
|
|
raatTunnelMediumType,
|
|
raatTunnelClientEndpoint,
|
|
raatTunnelServerEndpoint,
|
|
raatARAPPassword = 70,
|
|
raatARAPFeatures,
|
|
raatARAPZoneAccess,
|
|
raatARAPSecurity,
|
|
raatARAPSecurityData,
|
|
raatPasswordRetry,
|
|
raatPrompt,
|
|
raatConnectInfo,
|
|
raatConfigurationToken,
|
|
raatEAPMessage,
|
|
raatSignature = 80,
|
|
raatARAPChallengeResponse = 84,
|
|
raatAcctInterimInterval = 85,
|
|
raatNASIPv6Address = 95,
|
|
raatFramedInterfaceId,
|
|
raatFramedIPv6Prefix,
|
|
raatLoginIPv6Host,
|
|
raatFramedIPv6Route,
|
|
raatFramedIPv6Pool,
|
|
raatARAPGuestLogon = 8096,
|
|
raatCertificateOID,
|
|
raatEAPConfiguration,
|
|
raatPEAPEmbeddedEAPTypeId = 8099,
|
|
raatInnerEAPTypeId = 8099,
|
|
raatPEAPFastRoamedSession = 8100,
|
|
raatFastRoamedSession = 8100,
|
|
raatEAPTLV = 8102,
|
|
raatCredentialsChanged,
|
|
raatPeerId = 9000,
|
|
raatServerId,
|
|
raatMethodId,
|
|
raatEMSK,
|
|
raatSessionId,
|
|
raatReserved = 0xffffffff
|
|
} RAS_AUTH_ATTRIBUTE_TYPE;
|
|
|
|
#define raatARAPChallenge 33
|
|
#define raatARAPOldPassword 19
|
|
#define raatARAPNewPassword 20
|
|
#define raatARAPPasswordChangeReason 21
|
|
|
|
typedef struct _RAS_AUTH_ATTRIBUTE {
|
|
RAS_AUTH_ATTRIBUTE_TYPE raaType;
|
|
DWORD dwLength;
|
|
PVOID Value;
|
|
} RAS_AUTH_ATTRIBUTE,*PRAS_AUTH_ATTRIBUTE;
|
|
|
|
#define EAPCODE_Request 1
|
|
#define EAPCODE_Response 2
|
|
#define EAPCODE_Success 3
|
|
#define EAPCODE_Failure 4
|
|
|
|
#define MAXEAPCODE 4
|
|
|
|
#define RAS_EAP_FLAG_ROUTER 0x00000001
|
|
#define RAS_EAP_FLAG_NON_INTERACTIVE 0x00000002
|
|
#define RAS_EAP_FLAG_LOGON 0x00000004
|
|
#define RAS_EAP_FLAG_PREVIEW 0x00000008
|
|
#define RAS_EAP_FLAG_FIRST_LINK 0x00000010
|
|
#define RAS_EAP_FLAG_MACHINE_AUTH 0x00000020
|
|
#define RAS_EAP_FLAG_GUEST_ACCESS 0x00000040
|
|
#define RAS_EAP_FLAG_8021X_AUTH 0x00000080
|
|
#define RAS_EAP_FLAG_HOSTED_IN_PEAP 0x00000100
|
|
#define RAS_EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200
|
|
#define RAS_EAP_FLAG_PEAP_UPFRONT 0x00000400
|
|
#define RAS_EAP_FLAG_ALTERNATIVE_USER_DB 0x00000800
|
|
#define RAS_EAP_FLAG_PEAP_FORCE_FULL_AUTH 0x00001000
|
|
#define RAS_EAP_FLAG_PRE_LOGON 0x00020000
|
|
#define RAS_EAP_FLAG_CONFG_READONLY 0x00080000
|
|
#define RAS_EAP_FLAG_RESERVED 0x00100000
|
|
#define RAS_EAP_FLAG_SAVE_CREDMAN 0x00200000
|
|
|
|
typedef struct _PPP_EAP_PACKET {
|
|
BYTE Code;
|
|
BYTE Id;
|
|
BYTE Length[2];
|
|
BYTE Data[1];
|
|
} PPP_EAP_PACKET,*PPPP_EAP_PACKET;
|
|
|
|
#define PPP_EAP_PACKET_HDR_LEN (sizeof(PPP_EAP_PACKET) - 1)
|
|
|
|
typedef struct _PPP_EAP_INPUT {
|
|
DWORD dwSizeInBytes;
|
|
DWORD fFlags;
|
|
WINBOOL fAuthenticator;
|
|
WCHAR *pwszIdentity;
|
|
WCHAR *pwszPassword;
|
|
BYTE bInitialId;
|
|
RAS_AUTH_ATTRIBUTE *pUserAttributes;
|
|
WINBOOL fAuthenticationComplete;
|
|
DWORD dwAuthResultCode;
|
|
HANDLE hTokenImpersonateUser;
|
|
WINBOOL fSuccessPacketReceived;
|
|
WINBOOL fDataReceivedFromInteractiveUI;
|
|
PBYTE pDataFromInteractiveUI;
|
|
DWORD dwSizeOfDataFromInteractiveUI;
|
|
PBYTE pConnectionData;
|
|
DWORD dwSizeOfConnectionData;
|
|
PBYTE pUserData;
|
|
DWORD dwSizeOfUserData;
|
|
HANDLE hReserved;
|
|
} PPP_EAP_INPUT,*PPPP_EAP_INPUT;
|
|
|
|
typedef enum _PPP_EAP_ACTION {
|
|
EAPACTION_NoAction,
|
|
EAPACTION_Authenticate,
|
|
EAPACTION_Done,
|
|
EAPACTION_SendAndDone,
|
|
EAPACTION_Send,
|
|
EAPACTION_SendWithTimeout,
|
|
EAPACTION_SendWithTimeoutInteractive,
|
|
EAPACTION_IndicateTLV,
|
|
EAPACTION_IndicateIdentity
|
|
} PPP_EAP_ACTION;
|
|
|
|
typedef struct _PPP_EAP_OUTPUT {
|
|
DWORD dwSizeInBytes;
|
|
PPP_EAP_ACTION Action;
|
|
DWORD dwAuthResultCode;
|
|
RAS_AUTH_ATTRIBUTE *pUserAttributes;
|
|
WINBOOL fInvokeInteractiveUI;
|
|
PBYTE pUIContextData;
|
|
DWORD dwSizeOfUIContextData;
|
|
WINBOOL fSaveConnectionData;
|
|
PBYTE pConnectionData;
|
|
DWORD dwSizeOfConnectionData;
|
|
WINBOOL fSaveUserData;
|
|
PBYTE pUserData;
|
|
DWORD dwSizeOfUserData;
|
|
} PPP_EAP_OUTPUT,*PPPP_EAP_OUTPUT;
|
|
|
|
typedef struct _PPP_EAP_INFO {
|
|
DWORD dwSizeInBytes;
|
|
DWORD dwEapTypeId;
|
|
DWORD (WINAPI *RasEapInitialize)(WINBOOL fInitialize);
|
|
DWORD (WINAPI *RasEapBegin)(VOID **ppWorkBuffer, PPP_EAP_INPUT *pPppEapInput);
|
|
DWORD (WINAPI *RasEapEnd)(VOID *pWorkBuffer);
|
|
DWORD (WINAPI *RasEapMakeMessage)(VOID *pWorkBuf, PPP_EAP_PACKET *pReceivePacket, PPP_EAP_PACKET *pSendPacket, DWORD cbSendPacket, PPP_EAP_OUTPUT *pEapOutput, PPP_EAP_INPUT *pEapInput);
|
|
} PPP_EAP_INFO,*PPPP_EAP_INFO;
|
|
|
|
typedef struct _LEGACY_IDENTITY_UI_PARAMS {
|
|
DWORD eapType;
|
|
DWORD dwFlags;
|
|
DWORD dwSizeofConnectionData;
|
|
BYTE *pConnectionData;
|
|
DWORD dwSizeofUserData;
|
|
BYTE *pUserData;
|
|
DWORD dwSizeofUserDataOut;
|
|
BYTE *pUserDataOut;
|
|
LPWSTR pwszIdentity;
|
|
DWORD dwError;
|
|
} LEGACY_IDENTITY_UI_PARAMS;
|
|
|
|
typedef struct _LEGACY_INTERACTIVE_UI_PARAMS {
|
|
DWORD eapType;
|
|
DWORD dwSizeofContextData;
|
|
BYTE *pContextData;
|
|
DWORD dwSizeofInteractiveUIData;
|
|
BYTE *pInteractiveUIData;
|
|
DWORD dwError;
|
|
} LEGACY_INTERACTIVE_UI_PARAMS;
|
|
|
|
DWORD WINAPI RasEapGetInfo(DWORD dwEapTypeId, PPP_EAP_INFO *pEapInfo);
|
|
DWORD WINAPI RasEapFreeMemory(BYTE *pMemory);
|
|
DWORD WINAPI RasEapInvokeInteractiveUI(DWORD dwEapTypeId, HWND hwndParent, BYTE *pUIContextData, DWORD dwSizeOfUIContextData, BYTE **ppDataFromInteractiveUI, DWORD *pdwSizeOfDataFromInteractiveUI);
|
|
DWORD WINAPI RasEapInvokeConfigUI(DWORD dwEapTypeId, HWND hwndParent, DWORD dwFlags, BYTE *pConnectionDataIn, DWORD dwSizeOfConnectionDataIn, BYTE **ppConnectionDataOut, DWORD *pdwSizeOfConnectionDataOut);
|
|
DWORD WINAPI RasEapGetIdentity(DWORD dwEapTypeId, HWND hwndParent, DWORD dwFlags, const WCHAR *pwszPhonebook, const WCHAR *pwszEntry, BYTE *pConnectionDataIn, DWORD dwSizeOfConnectionDataIn, BYTE *pUserDataIn, DWORD dwSizeOfUserDataIn, BYTE **ppUserDataOut, DWORD *pdwSizeOfUserDataOut, WCHAR **ppwszIdentityOut);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
#endif
|