| /** | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER within this package. | |
| */ | |
| #include <winapifamily.h> | |
| #ifndef _AUTHIF_H_ | |
| #define _AUTHIF_H_ | |
| #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) | |
| typedef enum _RADIUS_ATTRIBUTE_TYPE { | |
| ratMinimum = 0, | |
| ratUserName = 1, | |
| ratUserPassword = 2, | |
| ratCHAPPassword = 3, | |
| ratNASIPAddress = 4, | |
| ratNASPort = 5, | |
| ratServiceType = 6, | |
| ratFramedProtocol = 7, | |
| ratFramedIPAddress = 8, | |
| ratFramedIPNetmask = 9, | |
| ratFramedRouting = 10, | |
| ratFilterId = 11, | |
| ratFramedMTU = 12, | |
| ratFramedCompression = 13, | |
| ratLoginIPHost = 14, | |
| ratLoginService = 15, | |
| ratLoginPort = 16, | |
| ratReplyMessage = 18, | |
| ratCallbackNumber = 19, | |
| ratCallbackId = 20, | |
| ratFramedRoute = 22, | |
| ratFramedIPXNetwork = 23, | |
| ratState = 24, | |
| ratClass = 25, | |
| ratVendorSpecific = 26, | |
| ratSessionTimeout = 27, | |
| ratIdleTimeout = 28, | |
| ratTerminationAction = 29, | |
| ratCalledStationId = 30, | |
| ratCallingStationId = 31, | |
| ratNASIdentifier = 32, | |
| ratProxyState = 33, | |
| ratLoginLATService = 34, | |
| ratLoginLATNode = 35, | |
| ratLoginLATGroup = 36, | |
| ratFramedAppleTalkLink = 37, | |
| ratFramedAppleTalkNetwork = 38, | |
| ratFramedAppleTalkZone = 39, | |
| ratAcctStatusType = 40, | |
| ratAcctDelayTime = 41, | |
| ratAcctInputOctets = 42, | |
| ratAcctOutputOctets = 43, | |
| ratAcctSessionId = 44, | |
| ratAcctAuthentic = 45, | |
| ratAcctSessionTime = 46, | |
| ratAcctInputPackets = 47, | |
| ratAcctOutputPackets = 48, | |
| ratAcctTerminationCause = 49, | |
| ratCHAPChallenge = 60, | |
| ratNASPortType = 61, | |
| ratPortLimit = 62, | |
| ratTunnelType = 64, | |
| ratMediumType = 65, | |
| ratTunnelPassword = 69, | |
| ratTunnelPrivateGroupID = 81, | |
| ratNASIPv6Address = 95, | |
| ratFramedInterfaceId, | |
| ratFramedIPv6Prefix, | |
| ratLoginIPv6Host, | |
| ratFramedIPv6Route, | |
| ratFramedIPv6Pool, | |
| ratCode = 262, | |
| ratIdentifier = 263, | |
| ratAuthenticator = 264, | |
| ratSrcIPAddress = 265, | |
| ratSrcPort = 266, | |
| ratProvider = 267, | |
| ratStrippedUserName = 268, | |
| ratFQUserName = 269, | |
| ratPolicyName = 270, | |
| ratUniqueId = 271, | |
| ratExtensionState = 272, | |
| ratEAPTLV = 273, | |
| ratRejectReasonCode = 274, | |
| ratCRPPolicyName = 275, | |
| ratProviderName = 276, | |
| ratClearTextPassword = 277, | |
| ratSrcIPv6Address = 278 | |
| } RADIUS_ATTRIBUTE_TYPE; | |
| typedef enum _RADIUS_CODE { | |
| rcUnknown = 0, | |
| rcAccessRequest = 1, | |
| rcAccessAccept = 2, | |
| rcAccessReject = 3, | |
| rcAccountingRequest = 4, | |
| rcAccountingResponse = 5, | |
| rcAccessChallenge = 11, | |
| rcDiscard = 256 | |
| } RADIUS_CODE; | |
| typedef enum _RADIUS_AUTHENTICATION_PROVIDER { | |
| rapUnknown, | |
| rapUsersFile, | |
| rapProxy, | |
| rapWindowsNT, | |
| rapMCIS, | |
| rapODBC, | |
| rapNone | |
| } RADIUS_AUTHENTICATION_PROVIDER; | |
| typedef enum _RADIUS_REJECT_REASON_CODE { | |
| rrrcUndefined = 0, | |
| rrrcAccountUnknown = 1, | |
| rrrcAccountDisabled = 2, | |
| rrrcAccountExpired = 3, | |
| rrrcAuthenticationFailure = 4 | |
| } RADIUS_REJECT_REASON_CODE; | |
| typedef enum _RADIUS_DATA_TYPE { | |
| rdtUnknown, | |
| rdtString, | |
| rdtAddress, | |
| rdtInteger, | |
| rdtTime, | |
| rdtIpv6Address | |
| } RADIUS_DATA_TYPE; | |
| typedef struct _RADIUS_ATTRIBUTE { | |
| DWORD dwAttrType; | |
| RADIUS_DATA_TYPE fDataType; | |
| DWORD cbDataLength; | |
| __C89_NAMELESS union { | |
| DWORD dwValue; | |
| CONST BYTE *lpValue; | |
| }; | |
| } RADIUS_ATTRIBUTE,*PRADIUS_ATTRIBUTE; | |
| typedef struct _RADIUS_VSA_FORMAT { | |
| BYTE VendorId[4]; | |
| BYTE VendorType; | |
| BYTE VendorLength; | |
| BYTE AttributeSpecific[1]; | |
| } RADIUS_VSA_FORMAT; | |
| typedef enum _RADIUS_ACTION { | |
| raContinue, | |
| raReject, | |
| raAccept | |
| } RADIUS_ACTION,*PRADIUS_ACTION; | |
| #define RADIUS_EXTENSION_INIT "RadiusExtensionInit" | |
| #define RADIUS_EXTENSION_TERM "RadiusExtensionTerm" | |
| #define RADIUS_EXTENSION_PROCESS "RadiusExtensionProcess" | |
| #define RADIUS_EXTENSION_PROCESS_EX "RadiusExtensionProcessEx" | |
| #define RADIUS_EXTENSION_FREE_ATTRIBUTES "RadiusExtensionFreeAttributes" | |
| #define RADIUS_EXTENSION_PROCESS2 "RadiusExtensionProcess2" | |
| typedef DWORD (WINAPI *PRADIUS_EXTENSION_INIT) (VOID); | |
| typedef VOID (WINAPI *PRADIUS_EXTENSION_TERM) (VOID); | |
| typedef DWORD (WINAPI *PRADIUS_EXTENSION_PROCESS) (const RADIUS_ATTRIBUTE *pAttrs, PRADIUS_ACTION pfAction); | |
| typedef DWORD (WINAPI *PRADIUS_EXTENSION_PROCESS_EX) (const RADIUS_ATTRIBUTE *pInAttrs, PRADIUS_ATTRIBUTE *pOutAttrs, PRADIUS_ACTION pfAction); | |
| typedef VOID (WINAPI *PRADIUS_EXTENSION_FREE_ATTRIBUTES) (PRADIUS_ATTRIBUTE pAttrs); | |
| #define AUTHSRV_PARAMETERS_KEY_W L"System\\CurrentControlSet\\Services\\AuthSrv\\Parameters" | |
| #define AUTHSRV_EXTENSIONS_VALUE_W L"ExtensionDLLs" | |
| #define AUTHSRV_AUTHORIZATION_VALUE_W L"AuthorizationDLLs" | |
| #define RADIUS_EXTENSION_VERSION (1) | |
| typedef enum _RADIUS_EXTENSION_POINT { | |
| repAuthentication, | |
| repAuthorization | |
| } RADIUS_EXTENSION_POINT; | |
| typedef struct _RADIUS_ATTRIBUTE_ARRAY { | |
| DWORD cbSize; | |
| DWORD (WINAPI *Add) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, const RADIUS_ATTRIBUTE *pAttr); | |
| const RADIUS_ATTRIBUTE *(WINAPI *AttributeAt) (const struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex); | |
| DWORD (WINAPI *GetSize) (const struct _RADIUS_ATTRIBUTE_ARRAY *_This); | |
| DWORD (WINAPI *InsertAt) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex, const RADIUS_ATTRIBUTE *pAttr); | |
| DWORD (WINAPI *RemoveAt) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex); | |
| DWORD (WINAPI *SetAt) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex, const RADIUS_ATTRIBUTE *pAttr); | |
| } RADIUS_ATTRIBUTE_ARRAY,*PRADIUS_ATTRIBUTE_ARRAY; | |
| typedef struct _RADIUS_EXTENSION_CONTROL_BLOCK { | |
| DWORD cbSize; | |
| DWORD dwVersion; | |
| RADIUS_EXTENSION_POINT repPoint; | |
| RADIUS_CODE rcRequestType; | |
| RADIUS_CODE rcResponseType; | |
| PRADIUS_ATTRIBUTE_ARRAY (WINAPI *GetRequest) (struct _RADIUS_EXTENSION_CONTROL_BLOCK *This); | |
| PRADIUS_ATTRIBUTE_ARRAY (WINAPI *GetResponse) (struct _RADIUS_EXTENSION_CONTROL_BLOCK *This, RADIUS_CODE rcResponseType); | |
| DWORD (WINAPI *SetResponseType) (struct _RADIUS_EXTENSION_CONTROL_BLOCK *This, RADIUS_CODE rcResponseType); | |
| } RADIUS_EXTENSION_CONTROL_BLOCK,*PRADIUS_EXTENSION_CONTROL_BLOCK; | |
| typedef DWORD (WINAPI *PRADIUS_EXTENSION_PROCESS_2) (PRADIUS_EXTENSION_CONTROL_BLOCK pECB); | |
| #endif | |
| #endif |