| 1 |
#ifndef _SSPI_H |
| 2 |
#define _SSPI_H |
| 3 |
#if __GNUC__ >=3 |
| 4 |
#pragma GCC system_header |
| 5 |
#endif |
| 6 |
|
| 7 |
#include <ntsecapi.h> |
| 8 |
|
| 9 |
#ifdef __cplusplus |
| 10 |
extern "C" { |
| 11 |
#endif |
| 12 |
|
| 13 |
#include <subauth.h> |
| 14 |
|
| 15 |
#define SECPKG_CRED_INBOUND 1 |
| 16 |
#define SECPKG_CRED_OUTBOUND 2 |
| 17 |
#define SECPKG_CRED_BOTH (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND) |
| 18 |
#define SECPKG_CRED_ATTR_NAMES 1 |
| 19 |
|
| 20 |
#define SECPKG_FLAG_INTEGRITY 1 |
| 21 |
#define SECPKG_FLAG_PRIVACY 2 |
| 22 |
#define SECPKG_FLAG_TOKEN_ONLY 4 |
| 23 |
#define SECPKG_FLAG_DATAGRAM 8 |
| 24 |
#define SECPKG_FLAG_CONNECTION 16 |
| 25 |
#define SECPKG_FLAG_MULTI_REQUIRED 32 |
| 26 |
#define SECPKG_FLAG_CLIENT_ONLY 64 |
| 27 |
#define SECPKG_FLAG_EXTENDED_ERROR 128 |
| 28 |
#define SECPKG_FLAG_IMPERSONATION 256 |
| 29 |
#define SECPKG_FLAG_ACCEPT_WIN32_NAME 512 |
| 30 |
#define SECPKG_FLAG_STREAM 1024 |
| 31 |
|
| 32 |
#define SECPKG_ATTR_AUTHORITY 6 |
| 33 |
#define SECPKG_ATTR_CONNECTION_INFO 90 |
| 34 |
#define SECPKG_ATTR_ISSUER_LIST 80 |
| 35 |
#define SECPKG_ATTR_ISSUER_LIST_EX 89 |
| 36 |
#define SECPKG_ATTR_KEY_INFO 5 |
| 37 |
#define SECPKG_ATTR_LIFESPAN 2 |
| 38 |
#define SECPKG_ATTR_LOCAL_CERT_CONTEXT 84 |
| 39 |
#define SECPKG_ATTR_LOCAL_CRED 82 |
| 40 |
#define SECPKG_ATTR_NAMES 1 |
| 41 |
#define SECPKG_ATTR_PROTO_INFO 7 |
| 42 |
#define SECPKG_ATTR_REMOTE_CERT_CONTEXT 83 |
| 43 |
#define SECPKG_ATTR_REMOTE_CRED 81 |
| 44 |
#define SECPKG_ATTR_SIZES 0 |
| 45 |
#define SECPKG_ATTR_STREAM_SIZES 4 |
| 46 |
|
| 47 |
#define SECBUFFER_EMPTY 0 |
| 48 |
#define SECBUFFER_DATA 1 |
| 49 |
#define SECBUFFER_TOKEN 2 |
| 50 |
#define SECBUFFER_PKG_PARAMS 3 |
| 51 |
#define SECBUFFER_MISSING 4 |
| 52 |
#define SECBUFFER_EXTRA 5 |
| 53 |
#define SECBUFFER_STREAM_TRAILER 6 |
| 54 |
#define SECBUFFER_STREAM_HEADER 7 |
| 55 |
#define SECBUFFER_PADDING 9 |
| 56 |
#define SECBUFFER_STREAM 10 |
| 57 |
#define SECBUFFER_READONLY 0x80000000 |
| 58 |
#define SECBUFFER_ATTRMASK 0xf0000000 |
| 59 |
|
| 60 |
#define UNISP_NAME_A "Microsoft Unified Security Protocol Provider" |
| 61 |
#define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider" |
| 62 |
#define SECBUFFER_VERSION 0 |
| 63 |
|
| 64 |
typedef UNICODE_STRING SECURITY_STRING, *PSECURITY_STRING; |
| 65 |
|
| 66 |
typedef struct _SecHandle { |
| 67 |
ULONG_PTR dwLower; |
| 68 |
ULONG_PTR dwUpper; |
| 69 |
} SecHandle, *PSecHandle; |
| 70 |
typedef struct _SecBuffer { |
| 71 |
ULONG cbBuffer; |
| 72 |
ULONG BufferType; |
| 73 |
PVOID pvBuffer; |
| 74 |
} SecBuffer, *PSecBuffer; |
| 75 |
typedef SecHandle CredHandle; |
| 76 |
typedef PSecHandle PCredHandle; |
| 77 |
typedef SecHandle CtxtHandle; |
| 78 |
typedef PSecHandle PCtxtHandle; |
| 79 |
typedef struct _SECURITY_INTEGER { |
| 80 |
unsigned long LowPart; |
| 81 |
long HighPart; |
| 82 |
} SECURITY_INTEGER; |
| 83 |
typedef SECURITY_INTEGER TimeStamp, *PTimeStamp; |
| 84 |
typedef struct _SecBufferDesc { |
| 85 |
ULONG ulVersion; |
| 86 |
ULONG cBuffers; |
| 87 |
PSecBuffer pBuffers; |
| 88 |
} SecBufferDesc, *PSecBufferDesc; |
| 89 |
typedef struct _SecPkgContext_StreamSizes { |
| 90 |
ULONG cbHeader; |
| 91 |
ULONG cbTrailer; |
| 92 |
ULONG cbMaximumMessage; |
| 93 |
ULONG cBuffers; |
| 94 |
ULONG cbBlockSize; |
| 95 |
} SecPkgContext_StreamSizes, *PSecPkgContext_StreamSizes; |
| 96 |
typedef struct _SecPkgContext_Sizes { |
| 97 |
ULONG cbMaxToken; |
| 98 |
ULONG cbMaxSignature; |
| 99 |
ULONG cbBlockSize; |
| 100 |
ULONG cbSecurityTrailer; |
| 101 |
} SecPkgContext_Sizes, *PSecPkgContext_Sizes; |
| 102 |
typedef struct _SecPkgContext_AuthorityW { |
| 103 |
SEC_WCHAR* sAuthorityName; |
| 104 |
} SecPkgContext_AuthorityW, *PSecPkgContext_AuthorityW; |
| 105 |
typedef struct _SecPkgContext_AuthorityA { |
| 106 |
SEC_CHAR* sAuthorityName; |
| 107 |
} SecPkgContext_AuthorityA, *PSecPkgContext_AuthorityA; |
| 108 |
typedef struct _SecPkgContext_KeyInfoW { |
| 109 |
SEC_WCHAR* sSignatureAlgorithmName; |
| 110 |
SEC_WCHAR* sEncryptAlgorithmName; |
| 111 |
ULONG KeySize; |
| 112 |
ULONG SignatureAlgorithm; |
| 113 |
ULONG EncryptAlgorithm; |
| 114 |
} SecPkgContext_KeyInfoW, *PSecPkgContext_KeyInfoW; |
| 115 |
typedef struct _SecPkgContext_KeyInfoA { |
| 116 |
SEC_CHAR* sSignatureAlgorithmName; |
| 117 |
SEC_CHAR* sEncryptAlgorithmName; |
| 118 |
ULONG KeySize; |
| 119 |
ULONG SignatureAlgorithm; |
| 120 |
ULONG EncryptAlgorithm; |
| 121 |
} SecPkgContext_KeyInfoA, *PSecPkgContext_KeyInfoA; |
| 122 |
typedef struct _SecPkgContext_LifeSpan { |
| 123 |
TimeStamp tsStart; |
| 124 |
TimeStamp tsExpiry; |
| 125 |
} SecPkgContext_LifeSpan, *PSecPkgContext_LifeSpan; |
| 126 |
typedef struct _SecPkgContext_NamesW { |
| 127 |
SEC_WCHAR* sUserName; |
| 128 |
} SecPkgContext_NamesW, *PSecPkgContext_NamesW; |
| 129 |
typedef struct _SecPkgContext_NamesA { |
| 130 |
SEC_CHAR* sUserName; |
| 131 |
} SecPkgContext_NamesA, *PSecPkgContext_NamesA; |
| 132 |
typedef struct _SecPkgInfoW { |
| 133 |
ULONG fCapabilities; |
| 134 |
USHORT wVersion; |
| 135 |
USHORT wRPCID; |
| 136 |
ULONG cbMaxToken; |
| 137 |
SEC_WCHAR* Name; |
| 138 |
SEC_WCHAR* Comment; |
| 139 |
} SecPkgInfoW, *PSecPkgInfoW; |
| 140 |
typedef struct _SecPkgInfoA { |
| 141 |
ULONG fCapabilities; |
| 142 |
USHORT wVersion; |
| 143 |
USHORT wRPCID; |
| 144 |
ULONG cbMaxToken; |
| 145 |
SEC_CHAR* Name; |
| 146 |
SEC_CHAR* Comment; |
| 147 |
} SecPkgInfoA, *PSecPkgInfoA; |
| 148 |
/* supported only in win2k+, so it should be a PSecPkgInfoW */ |
| 149 |
/* PSDK does not say it has ANSI/Unicode versions */ |
| 150 |
typedef struct _SecPkgContext_PackageInfo { |
| 151 |
PSecPkgInfoW PackageInfo; |
| 152 |
} SecPkgContext_PackageInfo, *PSecPkgContext_PackageInfo; |
| 153 |
typedef struct _SecPkgCredentials_NamesW { |
| 154 |
SEC_WCHAR* sUserName; |
| 155 |
} SecPkgCredentials_NamesW, *PSecPkgCredentials_NamesW; |
| 156 |
typedef struct _SecPkgCredentials_NamesA { |
| 157 |
SEC_CHAR* sUserName; |
| 158 |
} SecPkgCredentials_NamesA, *PSecPkgCredentials_NamesA; |
| 159 |
|
| 160 |
/* TODO: missing type in SDK */ |
| 161 |
typedef void (*SEC_GET_KEY_FN)(); |
| 162 |
|
| 163 |
typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG,PSecPkgInfoW*); |
| 164 |
typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG,PSecPkgInfoA*); |
| 165 |
typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle,ULONG,PVOID); |
| 166 |
typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_A)(PCredHandle,ULONG,PVOID); |
| 167 |
typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_W)(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); |
| 168 |
typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_A)(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); |
| 169 |
typedef SECURITY_STATUS (WINAPI *FREE_CREDENTIALS_HANDLE_FN)(PCredHandle); |
| 170 |
typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_W)(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); |
| 171 |
typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_A)(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); |
| 172 |
typedef SECURITY_STATUS (WINAPI *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); |
| 173 |
typedef SECURITY_STATUS (WINAPI *COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle,PSecBufferDesc); |
| 174 |
typedef SECURITY_STATUS (WINAPI *DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle); |
| 175 |
typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_W)(PCtxtHandle,PSecBufferDesc); |
| 176 |
typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_A)(PCtxtHandle,PSecBufferDesc); |
| 177 |
typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,ULONG,PVOID); |
| 178 |
typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle,ULONG,PVOID); |
| 179 |
typedef SECURITY_STATUS (WINAPI *IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle); |
| 180 |
typedef SECURITY_STATUS (WINAPI *REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle); |
| 181 |
typedef SECURITY_STATUS (WINAPI *MAKE_SIGNATURE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); |
| 182 |
typedef SECURITY_STATUS (WINAPI *VERIFY_SIGNATURE_FN)(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); |
| 183 |
typedef SECURITY_STATUS (WINAPI *FREE_CONTEXT_BUFFER_FN)(PVOID); |
| 184 |
typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_A)(SEC_CHAR*,PSecPkgInfoA*); |
| 185 |
typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_CONTEXT_TOKEN_FN)(PCtxtHandle,HANDLE*); |
| 186 |
typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR*,PSecPkgInfoW*); |
| 187 |
typedef SECURITY_STATUS (WINAPI *ENCRYPT_MESSAGE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); |
| 188 |
typedef SECURITY_STATUS (WINAPI *DECRYPT_MESSAGE_FN)(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); |
| 189 |
|
| 190 |
/* No, it really is FreeCredentialsHandle, see the thread beginning |
| 191 |
* http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a |
| 192 |
* discovery discussion. */ |
| 193 |
typedef struct _SECURITY_FUNCTION_TABLEW { |
| 194 |
unsigned long dwVersion; |
| 195 |
ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; |
| 196 |
QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; |
| 197 |
ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; |
| 198 |
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; |
| 199 |
void SEC_FAR* Reserved2; |
| 200 |
INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW; |
| 201 |
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; |
| 202 |
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; |
| 203 |
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; |
| 204 |
APPLY_CONTROL_TOKEN_FN_W ApplyControlTokenW; |
| 205 |
QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; |
| 206 |
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; |
| 207 |
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; |
| 208 |
MAKE_SIGNATURE_FN MakeSignature; |
| 209 |
VERIFY_SIGNATURE_FN VerifySignature; |
| 210 |
FREE_CONTEXT_BUFFER_FN FreeContextBuffer; |
| 211 |
QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW; |
| 212 |
void SEC_FAR* Reserved3; |
| 213 |
void SEC_FAR* Reserved4; |
| 214 |
void SEC_FAR* Reserved5; |
| 215 |
void SEC_FAR* Reserved6; |
| 216 |
void SEC_FAR* Reserved7; |
| 217 |
void SEC_FAR* Reserved8; |
| 218 |
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; |
| 219 |
ENCRYPT_MESSAGE_FN EncryptMessage; |
| 220 |
DECRYPT_MESSAGE_FN DecryptMessage; |
| 221 |
} SecurityFunctionTableW, *PSecurityFunctionTableW; |
| 222 |
typedef struct _SECURITY_FUNCTION_TABLEA { |
| 223 |
unsigned long dwVersion; |
| 224 |
ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; |
| 225 |
QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; |
| 226 |
ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; |
| 227 |
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; |
| 228 |
void SEC_FAR* Reserved2; |
| 229 |
INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; |
| 230 |
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; |
| 231 |
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; |
| 232 |
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; |
| 233 |
APPLY_CONTROL_TOKEN_FN_A ApplyControlTokenA; |
| 234 |
QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; |
| 235 |
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; |
| 236 |
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; |
| 237 |
MAKE_SIGNATURE_FN MakeSignature; |
| 238 |
VERIFY_SIGNATURE_FN VerifySignature; |
| 239 |
FREE_CONTEXT_BUFFER_FN FreeContextBuffer; |
| 240 |
QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; |
| 241 |
void SEC_FAR* Reserved3; |
| 242 |
void SEC_FAR* Reserved4; |
| 243 |
void SEC_FAR* Unknown1; |
| 244 |
void SEC_FAR* Unknown2; |
| 245 |
void SEC_FAR* Unknown3; |
| 246 |
void SEC_FAR* Unknown4; |
| 247 |
void SEC_FAR* Unknown5; |
| 248 |
ENCRYPT_MESSAGE_FN EncryptMessage; |
| 249 |
DECRYPT_MESSAGE_FN DecryptMessage; |
| 250 |
} SecurityFunctionTableA, *PSecurityFunctionTableA; |
| 251 |
typedef PSecurityFunctionTableA (WINAPI *INIT_SECURITY_INTERFACE_A)(VOID); |
| 252 |
typedef PSecurityFunctionTableW (WINAPI *INIT_SECURITY_INTERFACE_W)(VOID); |
| 253 |
|
| 254 |
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle); |
| 255 |
SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG,PSecPkgInfoA*); |
| 256 |
SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG,PSecPkgInfoW*); |
| 257 |
SECURITY_STATUS WINAPI AcquireCredentialsHandleA(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); |
| 258 |
SECURITY_STATUS WINAPI AcquireCredentialsHandleW(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); |
| 259 |
SECURITY_STATUS WINAPI AcceptSecurityContext(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); |
| 260 |
SECURITY_STATUS WINAPI InitializeSecurityContextA(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); |
| 261 |
SECURITY_STATUS WINAPI InitializeSecurityContextW(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); |
| 262 |
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID); |
| 263 |
SECURITY_STATUS WINAPI QueryContextAttributesA(PCtxtHandle,ULONG,PVOID); |
| 264 |
SECURITY_STATUS WINAPI QueryContextAttributesW(PCtxtHandle,ULONG,PVOID); |
| 265 |
SECURITY_STATUS WINAPI QueryCredentialsAttributesA(PCredHandle,ULONG,PVOID); |
| 266 |
SECURITY_STATUS WINAPI QueryCredentialsAttributesW(PCredHandle,ULONG,PVOID); |
| 267 |
#if (_WIN32_WINNT >= 0x0500) |
| 268 |
SECURITY_STATUS WINAPI QuerySecurityContextToken(PCtxtHandle,HANDLE*); |
| 269 |
#endif |
| 270 |
SECURITY_STATUS WINAPI DecryptMessage(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); |
| 271 |
SECURITY_STATUS WINAPI EncryptMessage(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); |
| 272 |
SECURITY_STATUS WINAPI DeleteSecurityContext(PCtxtHandle); |
| 273 |
SECURITY_STATUS WINAPI CompleteAuthToken(PCtxtHandle,PSecBufferDesc); |
| 274 |
SECURITY_STATUS WINAPI ApplyControlTokenA(PCtxtHandle,PSecBufferDesc); |
| 275 |
SECURITY_STATUS WINAPI ApplyControlTokenW(PCtxtHandle,PSecBufferDesc); |
| 276 |
SECURITY_STATUS WINAPI ImpersonateSecurityContext(PCtxtHandle); |
| 277 |
SECURITY_STATUS WINAPI RevertSecurityContext(PCtxtHandle); |
| 278 |
SECURITY_STATUS WINAPI MakeSignature(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); |
| 279 |
SECURITY_STATUS WINAPI VerifySignature(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); |
| 280 |
SECURITY_STATUS WINAPI QuerySecurityPackageInfoA(SEC_CHAR*,PSecPkgInfoA*); |
| 281 |
SECURITY_STATUS WINAPI QuerySecurityPackageInfoW(SEC_WCHAR*,PSecPkgInfoW*); |
| 282 |
PSecurityFunctionTableA WINAPI InitSecurityInterfaceA(VOID); |
| 283 |
PSecurityFunctionTableW WINAPI InitSecurityInterfaceW(VOID); |
| 284 |
|
| 285 |
#ifdef UNICODE |
| 286 |
#define UNISP_NAME UNISP_NAME_W |
| 287 |
#define SecPkgInfo SecPkgInfoW |
| 288 |
#define PSecPkgInfo PSecPkgInfoW |
| 289 |
#define SecPkgCredentials_Names SecPkgCredentials_NamesW |
| 290 |
#define PSecPkgCredentials_Names PSecPkgCredentials_NamesW |
| 291 |
#define SecPkgContext_Authority SecPkgContext_AuthorityW |
| 292 |
#define PSecPkgContext_Authority PSecPkgContext_AuthorityW |
| 293 |
#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW |
| 294 |
#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW |
| 295 |
#define SecPkgContext_Names SecPkgContext_NamesW |
| 296 |
#define PSecPkgContext_Names PSecPkgContext_NamesW |
| 297 |
#define SecurityFunctionTable SecurityFunctionTableW |
| 298 |
#define PSecurityFunctionTable PSecurityFunctionTableW |
| 299 |
#define AcquireCredentialsHandle AcquireCredentialsHandleW |
| 300 |
#define EnumerateSecurityPackages EnumerateSecurityPackagesW |
| 301 |
#define InitializeSecurityContext InitializeSecurityContextW |
| 302 |
#define QueryContextAttributes QueryContextAttributesW |
| 303 |
#define QueryCredentialsAttributes QueryCredentialsAttributesW |
| 304 |
#define QuerySecurityPackageInfo QuerySecurityPackageInfoW |
| 305 |
#define ApplyControlToken ApplyControlTokenW |
| 306 |
#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W |
| 307 |
#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W |
| 308 |
#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W |
| 309 |
#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W |
| 310 |
#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_W |
| 311 |
#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W |
| 312 |
#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W |
| 313 |
#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_W |
| 314 |
#else |
| 315 |
#define UNISP_NAME UNISP_NAME_A |
| 316 |
#define SecPkgInfo SecPkgInfoA |
| 317 |
#define PSecPkgInfo PSecPkgInfoA |
| 318 |
#define SecPkgCredentials_Names SecPkgCredentials_NamesA |
| 319 |
#define PSecPkgCredentials_Names PSecPkgCredentials_NamesA |
| 320 |
#define SecPkgContext_Authority SecPkgContext_AuthorityA |
| 321 |
#define PSecPkgContext_Authority PSecPkgContext_AuthorityA |
| 322 |
#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoA |
| 323 |
#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoA |
| 324 |
#define SecPkgContext_Names SecPkgContext_NamesA |
| 325 |
#define PSecPkgContext_Names PSecPkgContext_NamesA |
| 326 |
#define SecurityFunctionTable SecurityFunctionTableA |
| 327 |
#define PSecurityFunctionTable PSecurityFunctionTableA |
| 328 |
#define AcquireCredentialsHandle AcquireCredentialsHandleA |
| 329 |
#define EnumerateSecurityPackages EnumerateSecurityPackagesA |
| 330 |
#define InitializeSecurityContext InitializeSecurityContextA |
| 331 |
#define QueryContextAttributes QueryContextAttributesA |
| 332 |
#define QueryCredentialsAttributes QueryCredentialsAttributesA |
| 333 |
#define QuerySecurityPackageInfo QuerySecurityPackageInfoA |
| 334 |
#define ApplyControlToken ApplyControlTokenA |
| 335 |
#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_A |
| 336 |
#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A |
| 337 |
#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_A |
| 338 |
#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_A |
| 339 |
#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_A |
| 340 |
#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A |
| 341 |
#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A |
| 342 |
#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_A |
| 343 |
#endif |
| 344 |
|
| 345 |
#ifdef __cplusplus |
| 346 |
} |
| 347 |
#endif |
| 348 |
#endif |