blob: 7bcda87d2b304948c46d64b28ee405c9e4d0874c [file] [log] [blame] [edit]
/**
* 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