| 1 |
/** |
| 2 |
* This file is part of the mingw-w64 runtime package. |
| 3 |
* No warranty is given; refer to the file DISCLAIMER within this package. |
| 4 |
*/ |
| 5 |
|
| 6 |
#include <winapifamily.h> |
| 7 |
|
| 8 |
#ifndef _AUTHIF_H_ |
| 9 |
#define _AUTHIF_H_ |
| 10 |
|
| 11 |
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 12 |
typedef enum _RADIUS_ATTRIBUTE_TYPE { |
| 13 |
ratMinimum = 0, |
| 14 |
ratUserName = 1, |
| 15 |
ratUserPassword = 2, |
| 16 |
ratCHAPPassword = 3, |
| 17 |
ratNASIPAddress = 4, |
| 18 |
ratNASPort = 5, |
| 19 |
ratServiceType = 6, |
| 20 |
ratFramedProtocol = 7, |
| 21 |
ratFramedIPAddress = 8, |
| 22 |
ratFramedIPNetmask = 9, |
| 23 |
ratFramedRouting = 10, |
| 24 |
ratFilterId = 11, |
| 25 |
ratFramedMTU = 12, |
| 26 |
ratFramedCompression = 13, |
| 27 |
ratLoginIPHost = 14, |
| 28 |
ratLoginService = 15, |
| 29 |
ratLoginPort = 16, |
| 30 |
ratReplyMessage = 18, |
| 31 |
ratCallbackNumber = 19, |
| 32 |
ratCallbackId = 20, |
| 33 |
ratFramedRoute = 22, |
| 34 |
ratFramedIPXNetwork = 23, |
| 35 |
ratState = 24, |
| 36 |
ratClass = 25, |
| 37 |
ratVendorSpecific = 26, |
| 38 |
ratSessionTimeout = 27, |
| 39 |
ratIdleTimeout = 28, |
| 40 |
ratTerminationAction = 29, |
| 41 |
ratCalledStationId = 30, |
| 42 |
ratCallingStationId = 31, |
| 43 |
ratNASIdentifier = 32, |
| 44 |
ratProxyState = 33, |
| 45 |
ratLoginLATService = 34, |
| 46 |
ratLoginLATNode = 35, |
| 47 |
ratLoginLATGroup = 36, |
| 48 |
ratFramedAppleTalkLink = 37, |
| 49 |
ratFramedAppleTalkNetwork = 38, |
| 50 |
ratFramedAppleTalkZone = 39, |
| 51 |
ratAcctStatusType = 40, |
| 52 |
ratAcctDelayTime = 41, |
| 53 |
ratAcctInputOctets = 42, |
| 54 |
ratAcctOutputOctets = 43, |
| 55 |
ratAcctSessionId = 44, |
| 56 |
ratAcctAuthentic = 45, |
| 57 |
ratAcctSessionTime = 46, |
| 58 |
ratAcctInputPackets = 47, |
| 59 |
ratAcctOutputPackets = 48, |
| 60 |
ratAcctTerminationCause = 49, |
| 61 |
ratCHAPChallenge = 60, |
| 62 |
ratNASPortType = 61, |
| 63 |
ratPortLimit = 62, |
| 64 |
ratTunnelType = 64, |
| 65 |
ratMediumType = 65, |
| 66 |
ratTunnelPassword = 69, |
| 67 |
ratTunnelPrivateGroupID = 81, |
| 68 |
ratNASIPv6Address = 95, |
| 69 |
ratFramedInterfaceId, |
| 70 |
ratFramedIPv6Prefix, |
| 71 |
ratLoginIPv6Host, |
| 72 |
ratFramedIPv6Route, |
| 73 |
ratFramedIPv6Pool, |
| 74 |
ratCode = 262, |
| 75 |
ratIdentifier = 263, |
| 76 |
ratAuthenticator = 264, |
| 77 |
ratSrcIPAddress = 265, |
| 78 |
ratSrcPort = 266, |
| 79 |
ratProvider = 267, |
| 80 |
ratStrippedUserName = 268, |
| 81 |
ratFQUserName = 269, |
| 82 |
ratPolicyName = 270, |
| 83 |
ratUniqueId = 271, |
| 84 |
ratExtensionState = 272, |
| 85 |
ratEAPTLV = 273, |
| 86 |
ratRejectReasonCode = 274, |
| 87 |
ratCRPPolicyName = 275, |
| 88 |
ratProviderName = 276, |
| 89 |
ratClearTextPassword = 277, |
| 90 |
ratSrcIPv6Address = 278 |
| 91 |
} RADIUS_ATTRIBUTE_TYPE; |
| 92 |
|
| 93 |
typedef enum _RADIUS_CODE { |
| 94 |
rcUnknown = 0, |
| 95 |
rcAccessRequest = 1, |
| 96 |
rcAccessAccept = 2, |
| 97 |
rcAccessReject = 3, |
| 98 |
rcAccountingRequest = 4, |
| 99 |
rcAccountingResponse = 5, |
| 100 |
rcAccessChallenge = 11, |
| 101 |
rcDiscard = 256 |
| 102 |
} RADIUS_CODE; |
| 103 |
|
| 104 |
typedef enum _RADIUS_AUTHENTICATION_PROVIDER { |
| 105 |
rapUnknown, |
| 106 |
rapUsersFile, |
| 107 |
rapProxy, |
| 108 |
rapWindowsNT, |
| 109 |
rapMCIS, |
| 110 |
rapODBC, |
| 111 |
rapNone |
| 112 |
} RADIUS_AUTHENTICATION_PROVIDER; |
| 113 |
typedef enum _RADIUS_REJECT_REASON_CODE { |
| 114 |
rrrcUndefined = 0, |
| 115 |
rrrcAccountUnknown = 1, |
| 116 |
rrrcAccountDisabled = 2, |
| 117 |
rrrcAccountExpired = 3, |
| 118 |
rrrcAuthenticationFailure = 4 |
| 119 |
} RADIUS_REJECT_REASON_CODE; |
| 120 |
|
| 121 |
typedef enum _RADIUS_DATA_TYPE { |
| 122 |
rdtUnknown, |
| 123 |
rdtString, |
| 124 |
rdtAddress, |
| 125 |
rdtInteger, |
| 126 |
rdtTime, |
| 127 |
rdtIpv6Address |
| 128 |
} RADIUS_DATA_TYPE; |
| 129 |
|
| 130 |
typedef struct _RADIUS_ATTRIBUTE { |
| 131 |
DWORD dwAttrType; |
| 132 |
RADIUS_DATA_TYPE fDataType; |
| 133 |
DWORD cbDataLength; |
| 134 |
__C89_NAMELESS union { |
| 135 |
DWORD dwValue; |
| 136 |
CONST BYTE *lpValue; |
| 137 |
}; |
| 138 |
} RADIUS_ATTRIBUTE,*PRADIUS_ATTRIBUTE; |
| 139 |
|
| 140 |
typedef struct _RADIUS_VSA_FORMAT { |
| 141 |
BYTE VendorId[4]; |
| 142 |
BYTE VendorType; |
| 143 |
BYTE VendorLength; |
| 144 |
BYTE AttributeSpecific[1]; |
| 145 |
} RADIUS_VSA_FORMAT; |
| 146 |
|
| 147 |
typedef enum _RADIUS_ACTION { |
| 148 |
raContinue, |
| 149 |
raReject, |
| 150 |
raAccept |
| 151 |
} RADIUS_ACTION,*PRADIUS_ACTION; |
| 152 |
|
| 153 |
#define RADIUS_EXTENSION_INIT "RadiusExtensionInit" |
| 154 |
#define RADIUS_EXTENSION_TERM "RadiusExtensionTerm" |
| 155 |
#define RADIUS_EXTENSION_PROCESS "RadiusExtensionProcess" |
| 156 |
#define RADIUS_EXTENSION_PROCESS_EX "RadiusExtensionProcessEx" |
| 157 |
#define RADIUS_EXTENSION_FREE_ATTRIBUTES "RadiusExtensionFreeAttributes" |
| 158 |
#define RADIUS_EXTENSION_PROCESS2 "RadiusExtensionProcess2" |
| 159 |
|
| 160 |
typedef DWORD (WINAPI *PRADIUS_EXTENSION_INIT) (VOID); |
| 161 |
typedef VOID (WINAPI *PRADIUS_EXTENSION_TERM) (VOID); |
| 162 |
typedef DWORD (WINAPI *PRADIUS_EXTENSION_PROCESS) (const RADIUS_ATTRIBUTE *pAttrs, PRADIUS_ACTION pfAction); |
| 163 |
typedef DWORD (WINAPI *PRADIUS_EXTENSION_PROCESS_EX) (const RADIUS_ATTRIBUTE *pInAttrs, PRADIUS_ATTRIBUTE *pOutAttrs, PRADIUS_ACTION pfAction); |
| 164 |
typedef VOID (WINAPI *PRADIUS_EXTENSION_FREE_ATTRIBUTES) (PRADIUS_ATTRIBUTE pAttrs); |
| 165 |
|
| 166 |
#define AUTHSRV_PARAMETERS_KEY_W L"System\\CurrentControlSet\\Services\\AuthSrv\\Parameters" |
| 167 |
#define AUTHSRV_EXTENSIONS_VALUE_W L"ExtensionDLLs" |
| 168 |
#define AUTHSRV_AUTHORIZATION_VALUE_W L"AuthorizationDLLs" |
| 169 |
|
| 170 |
#define RADIUS_EXTENSION_VERSION (1) |
| 171 |
|
| 172 |
typedef enum _RADIUS_EXTENSION_POINT { |
| 173 |
repAuthentication, |
| 174 |
repAuthorization |
| 175 |
} RADIUS_EXTENSION_POINT; |
| 176 |
|
| 177 |
typedef struct _RADIUS_ATTRIBUTE_ARRAY { |
| 178 |
DWORD cbSize; |
| 179 |
DWORD (WINAPI *Add) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, const RADIUS_ATTRIBUTE *pAttr); |
| 180 |
const RADIUS_ATTRIBUTE *(WINAPI *AttributeAt) (const struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex); |
| 181 |
DWORD (WINAPI *GetSize) (const struct _RADIUS_ATTRIBUTE_ARRAY *_This); |
| 182 |
DWORD (WINAPI *InsertAt) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex, const RADIUS_ATTRIBUTE *pAttr); |
| 183 |
DWORD (WINAPI *RemoveAt) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex); |
| 184 |
DWORD (WINAPI *SetAt) (struct _RADIUS_ATTRIBUTE_ARRAY *_This, DWORD dwIndex, const RADIUS_ATTRIBUTE *pAttr); |
| 185 |
} RADIUS_ATTRIBUTE_ARRAY,*PRADIUS_ATTRIBUTE_ARRAY; |
| 186 |
|
| 187 |
typedef struct _RADIUS_EXTENSION_CONTROL_BLOCK { |
| 188 |
DWORD cbSize; |
| 189 |
DWORD dwVersion; |
| 190 |
RADIUS_EXTENSION_POINT repPoint; |
| 191 |
RADIUS_CODE rcRequestType; |
| 192 |
RADIUS_CODE rcResponseType; |
| 193 |
PRADIUS_ATTRIBUTE_ARRAY (WINAPI *GetRequest) (struct _RADIUS_EXTENSION_CONTROL_BLOCK *This); |
| 194 |
PRADIUS_ATTRIBUTE_ARRAY (WINAPI *GetResponse) (struct _RADIUS_EXTENSION_CONTROL_BLOCK *This, RADIUS_CODE rcResponseType); |
| 195 |
DWORD (WINAPI *SetResponseType) (struct _RADIUS_EXTENSION_CONTROL_BLOCK *This, RADIUS_CODE rcResponseType); |
| 196 |
} RADIUS_EXTENSION_CONTROL_BLOCK,*PRADIUS_EXTENSION_CONTROL_BLOCK; |
| 197 |
|
| 198 |
typedef DWORD (WINAPI *PRADIUS_EXTENSION_PROCESS_2) (PRADIUS_EXTENSION_CONTROL_BLOCK pECB); |
| 199 |
|
| 200 |
#endif |
| 201 |
|
| 202 |
#endif |