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