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