| /** | |
| * 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): | |
| 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 SECURITY_STRING = UNICODE_STRING; | |
| alias PSECURITY_STRING = UNICODE_STRING*; | |
| extern(Windows): | |
| struct SecHandle { | |
| ULONG_PTR dwLower; | |
| ULONG_PTR dwUpper; | |
| } | |
| alias PSecHandle = SecHandle*; | |
| struct SecBuffer { | |
| ULONG cbBuffer; | |
| ULONG BufferType; | |
| PVOID pvBuffer; | |
| } | |
| alias PSecBuffer = SecBuffer*; | |
| alias CredHandle = SecHandle; | |
| alias PCredHandle = PSecHandle; | |
| alias CtxtHandle = SecHandle; | |
| alias PCtxtHandle = PSecHandle; | |
| struct SECURITY_INTEGER { | |
| uint LowPart; | |
| int HighPart; | |
| } | |
| alias TimeStamp = SECURITY_INTEGER; | |
| alias PTimeStamp = SECURITY_INTEGER*; | |
| struct SecBufferDesc { | |
| ULONG ulVersion; | |
| ULONG cBuffers; | |
| PSecBuffer pBuffers; | |
| } | |
| alias PSecBufferDesc = SecBufferDesc*; | |
| struct SecPkgContext_StreamSizes { | |
| ULONG cbHeader; | |
| ULONG cbTrailer; | |
| ULONG cbMaximumMessage; | |
| ULONG cBuffers; | |
| ULONG cbBlockSize; | |
| } | |
| alias PSecPkgContext_StreamSizes = SecPkgContext_StreamSizes*; | |
| struct SecPkgContext_Sizes { | |
| ULONG cbMaxToken; | |
| ULONG cbMaxSignature; | |
| ULONG cbBlockSize; | |
| ULONG cbSecurityTrailer; | |
| } | |
| alias PSecPkgContext_Sizes = SecPkgContext_Sizes*; | |
| struct SecPkgContext_AuthorityW { | |
| SEC_WCHAR* sAuthorityName; | |
| } | |
| alias PSecPkgContext_AuthorityW = SecPkgContext_AuthorityW*; | |
| struct SecPkgContext_AuthorityA { | |
| SEC_CHAR* sAuthorityName; | |
| } | |
| alias PSecPkgContext_AuthorityA = SecPkgContext_AuthorityA*; | |
| struct SecPkgContext_KeyInfoW { | |
| SEC_WCHAR* sSignatureAlgorithmName; | |
| SEC_WCHAR* sEncryptAlgorithmName; | |
| ULONG KeySize; | |
| ULONG SignatureAlgorithm; | |
| ULONG EncryptAlgorithm; | |
| } | |
| alias PSecPkgContext_KeyInfoW = SecPkgContext_KeyInfoW*; | |
| struct SecPkgContext_KeyInfoA { | |
| SEC_CHAR* sSignatureAlgorithmName; | |
| SEC_CHAR* sEncryptAlgorithmName; | |
| ULONG KeySize; | |
| ULONG SignatureAlgorithm; | |
| ULONG EncryptAlgorithm; | |
| } | |
| alias PSecPkgContext_KeyInfoA = SecPkgContext_KeyInfoA*; | |
| struct SecPkgContext_LifeSpan { | |
| TimeStamp tsStart; | |
| TimeStamp tsExpiry; | |
| } | |
| alias PSecPkgContext_LifeSpan = SecPkgContext_LifeSpan*; | |
| struct SecPkgContext_NamesW { | |
| SEC_WCHAR* sUserName; | |
| } | |
| alias PSecPkgContext_NamesW = SecPkgContext_NamesW*; | |
| struct SecPkgContext_NamesA { | |
| SEC_CHAR* sUserName; | |
| } | |
| alias PSecPkgContext_NamesA = SecPkgContext_NamesA*; | |
| struct SecPkgInfoW { | |
| ULONG fCapabilities; | |
| USHORT wVersion; | |
| USHORT wRPCID; | |
| ULONG cbMaxToken; | |
| SEC_WCHAR* Name; | |
| SEC_WCHAR* Comment; | |
| } | |
| alias PSecPkgInfoW = SecPkgInfoW*; | |
| struct SecPkgInfoA { | |
| ULONG fCapabilities; | |
| USHORT wVersion; | |
| USHORT wRPCID; | |
| ULONG cbMaxToken; | |
| SEC_CHAR* Name; | |
| SEC_CHAR* Comment; | |
| } | |
| alias PSecPkgInfoA = SecPkgInfoA*; | |
| /* 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 PSecPkgContext_PackageInfo = SecPkgContext_PackageInfo*; | |
| struct SecPkgCredentials_NamesW { | |
| SEC_WCHAR* sUserName; | |
| } | |
| alias PSecPkgCredentials_NamesW = SecPkgCredentials_NamesW*; | |
| struct SecPkgCredentials_NamesA { | |
| SEC_CHAR* sUserName; | |
| } | |
| alias PSecPkgCredentials_NamesA = SecPkgCredentials_NamesA*; | |
| /* TODO: missing type in SDK */ | |
| alias SEC_GET_KEY_FN = void function(); | |
| alias ENUMERATE_SECURITY_PACKAGES_FN_W = SECURITY_STATUS function(PULONG,PSecPkgInfoW*); | |
| alias ENUMERATE_SECURITY_PACKAGES_FN_A = SECURITY_STATUS function(PULONG,PSecPkgInfoA*); | |
| alias QUERY_CREDENTIALS_ATTRIBUTES_FN_W = SECURITY_STATUS function(PCredHandle,ULONG,PVOID); | |
| alias QUERY_CREDENTIALS_ATTRIBUTES_FN_A = SECURITY_STATUS function(PCredHandle,ULONG,PVOID); | |
| alias ACQUIRE_CREDENTIALS_HANDLE_FN_W = SECURITY_STATUS function(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); | |
| alias ACQUIRE_CREDENTIALS_HANDLE_FN_A = SECURITY_STATUS function(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); | |
| alias FREE_CREDENTIALS_HANDLE_FN = SECURITY_STATUS function(PCredHandle); | |
| alias INITIALIZE_SECURITY_CONTEXT_FN_W = SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); | |
| alias INITIALIZE_SECURITY_CONTEXT_FN_A = SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); | |
| alias ACCEPT_SECURITY_CONTEXT_FN = SECURITY_STATUS function(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); | |
| alias COMPLETE_AUTH_TOKEN_FN = SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc); | |
| alias DELETE_SECURITY_CONTEXT_FN = SECURITY_STATUS function(PCtxtHandle); | |
| alias APPLY_CONTROL_TOKEN_FN_W = SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc); | |
| alias APPLY_CONTROL_TOKEN_FN_A = SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc); | |
| alias QUERY_CONTEXT_ATTRIBUTES_FN_A = SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID); | |
| alias QUERY_CONTEXT_ATTRIBUTES_FN_W = SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID); | |
| alias IMPERSONATE_SECURITY_CONTEXT_FN = SECURITY_STATUS function(PCtxtHandle); | |
| alias REVERT_SECURITY_CONTEXT_FN = SECURITY_STATUS function(PCtxtHandle); | |
| alias MAKE_SIGNATURE_FN = SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); | |
| alias VERIFY_SIGNATURE_FN = SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); | |
| alias FREE_CONTEXT_BUFFER_FN = SECURITY_STATUS function(PVOID); | |
| alias QUERY_SECURITY_PACKAGE_INFO_FN_A = SECURITY_STATUS function(SEC_CHAR*,PSecPkgInfoA*); | |
| alias QUERY_SECURITY_CONTEXT_TOKEN_FN = SECURITY_STATUS function(PCtxtHandle,HANDLE*); | |
| alias QUERY_SECURITY_PACKAGE_INFO_FN_W = SECURITY_STATUS function(SEC_WCHAR*,PSecPkgInfoW*); | |
| alias ENCRYPT_MESSAGE_FN = SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); | |
| alias DECRYPT_MESSAGE_FN = SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); | |
| /* 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 PSecurityFunctionTableW = SecurityFunctionTableW*; | |
| 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 PSecurityFunctionTableA = SecurityFunctionTableA*; | |
| alias INIT_SECURITY_INTERFACE_A = PSecurityFunctionTableA function(); | |
| alias INIT_SECURITY_INTERFACE_W = PSecurityFunctionTableW function(); | |
| 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 = UNISP_NAME_W; | |
| alias SecPkgInfo = SecPkgInfoW; | |
| alias PSecPkgInfo = PSecPkgInfoW; | |
| alias SecPkgCredentials_Names = SecPkgCredentials_NamesW; | |
| alias PSecPkgCredentials_Names = PSecPkgCredentials_NamesW; | |
| alias SecPkgContext_Authority = SecPkgContext_AuthorityW; | |
| alias PSecPkgContext_Authority = PSecPkgContext_AuthorityW; | |
| alias SecPkgContext_KeyInfo = SecPkgContext_KeyInfoW; | |
| alias PSecPkgContext_KeyInfo = PSecPkgContext_KeyInfoW; | |
| alias SecPkgContext_Names = SecPkgContext_NamesW; | |
| alias PSecPkgContext_Names = PSecPkgContext_NamesW; | |
| alias SecurityFunctionTable = SecurityFunctionTableW; | |
| alias PSecurityFunctionTable = PSecurityFunctionTableW; | |
| alias AcquireCredentialsHandle = AcquireCredentialsHandleW; | |
| alias EnumerateSecurityPackages = EnumerateSecurityPackagesW; | |
| alias InitializeSecurityContext = InitializeSecurityContextW; | |
| alias QueryContextAttributes = QueryContextAttributesW; | |
| alias QueryCredentialsAttributes = QueryCredentialsAttributesW; | |
| alias QuerySecurityPackageInfo = QuerySecurityPackageInfoW; | |
| alias ApplyControlToken = ApplyControlTokenW; | |
| alias ENUMERATE_SECURITY_PACKAGES_FN = ENUMERATE_SECURITY_PACKAGES_FN_W; | |
| alias QUERY_CREDENTIALS_ATTRIBUTES_FN = QUERY_CREDENTIALS_ATTRIBUTES_FN_W; | |
| alias ACQUIRE_CREDENTIALS_HANDLE_FN = ACQUIRE_CREDENTIALS_HANDLE_FN_W; | |
| alias INITIALIZE_SECURITY_CONTEXT_FN = INITIALIZE_SECURITY_CONTEXT_FN_W; | |
| alias APPLY_CONTROL_TOKEN_FN = APPLY_CONTROL_TOKEN_FN_W; | |
| alias QUERY_CONTEXT_ATTRIBUTES_FN = QUERY_CONTEXT_ATTRIBUTES_FN_W; | |
| alias QUERY_SECURITY_PACKAGE_INFO_FN = QUERY_SECURITY_PACKAGE_INFO_FN_W; | |
| alias INIT_SECURITY_INTERFACE = INIT_SECURITY_INTERFACE_W; | |
| }else{ | |
| alias UNISP_NAME = UNISP_NAME_A; | |
| alias SecPkgInfo = SecPkgInfoA; | |
| alias PSecPkgInfo = PSecPkgInfoA; | |
| alias SecPkgCredentials_Names = SecPkgCredentials_NamesA; | |
| alias PSecPkgCredentials_Names = PSecPkgCredentials_NamesA; | |
| alias SecPkgContext_Authority = SecPkgContext_AuthorityA; | |
| alias PSecPkgContext_Authority = PSecPkgContext_AuthorityA; | |
| alias SecPkgContext_KeyInfo = SecPkgContext_KeyInfoA; | |
| alias PSecPkgContext_KeyInfo = PSecPkgContext_KeyInfoA; | |
| alias SecPkgContext_Names = SecPkgContext_NamesA; | |
| alias PSecPkgContext_Names = PSecPkgContext_NamesA; | |
| alias SecurityFunctionTable = SecurityFunctionTableA; | |
| alias PSecurityFunctionTable = PSecurityFunctionTableA; | |
| alias AcquireCredentialsHandle = AcquireCredentialsHandleA; | |
| alias EnumerateSecurityPackages = EnumerateSecurityPackagesA; | |
| alias InitializeSecurityContext = InitializeSecurityContextA; | |
| alias QueryContextAttributes = QueryContextAttributesA; | |
| alias QueryCredentialsAttributes = QueryCredentialsAttributesA; | |
| alias QuerySecurityPackageInfo = QuerySecurityPackageInfoA; | |
| alias ApplyControlToken = ApplyControlTokenA; | |
| alias ENUMERATE_SECURITY_PACKAGES_FN = ENUMERATE_SECURITY_PACKAGES_FN_A; | |
| alias QUERY_CREDENTIALS_ATTRIBUTES_FN = QUERY_CREDENTIALS_ATTRIBUTES_FN_A; | |
| alias ACQUIRE_CREDENTIALS_HANDLE_FN = ACQUIRE_CREDENTIALS_HANDLE_FN_A; | |
| alias INITIALIZE_SECURITY_CONTEXT_FN = INITIALIZE_SECURITY_CONTEXT_FN_A; | |
| alias APPLY_CONTROL_TOKEN_FN = APPLY_CONTROL_TOKEN_FN_A; | |
| alias QUERY_CONTEXT_ATTRIBUTES_FN = QUERY_CONTEXT_ATTRIBUTES_FN_A; | |
| alias QUERY_SECURITY_PACKAGE_INFO_FN = QUERY_SECURITY_PACKAGE_INFO_FN_A; | |
| alias INIT_SECURITY_INTERFACE = INIT_SECURITY_INTERFACE_A; | |
| } |