9b639cf2d6 2015-05-05 kinaba: /***********************************************************************\ 9b639cf2d6 2015-05-05 kinaba: * sspi.d * 9b639cf2d6 2015-05-05 kinaba: * * 9b639cf2d6 2015-05-05 kinaba: * Windows API header module * 9b639cf2d6 2015-05-05 kinaba: * * 9b639cf2d6 2015-05-05 kinaba: * Translated from MinGW Windows headers * 9b639cf2d6 2015-05-05 kinaba: * by Ellery Newcomer * 9b639cf2d6 2015-05-05 kinaba: * * 9b639cf2d6 2015-05-05 kinaba: * Placed into public domain * 9b639cf2d6 2015-05-05 kinaba: \***********************************************************************/ 9b639cf2d6 2015-05-05 kinaba: module win32.sspi; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: import win32.windef; 9b639cf2d6 2015-05-05 kinaba: import win32.ntdef; 9b639cf2d6 2015-05-05 kinaba: import win32.w32api; 9b639cf2d6 2015-05-05 kinaba: import win32.security; 9b639cf2d6 2015-05-05 kinaba: import win32.ntsecapi; 9b639cf2d6 2015-05-05 kinaba: import win32.subauth; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum :ULONG{ 9b639cf2d6 2015-05-05 kinaba: SECPKG_CRED_INBOUND = 1, 9b639cf2d6 2015-05-05 kinaba: SECPKG_CRED_OUTBOUND = 2, 9b639cf2d6 2015-05-05 kinaba: SECPKG_CRED_BOTH = (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND), 9b639cf2d6 2015-05-05 kinaba: SECPKG_CRED_ATTR_NAMES = 1, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum :ULONG{ 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_INTEGRITY = 1, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_PRIVACY = 2, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_TOKEN_ONLY = 4, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_DATAGRAM = 8, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_CONNECTION = 16, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_MULTI_REQUIRED = 32, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_CLIENT_ONLY = 64, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_EXTENDED_ERROR = 128, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_IMPERSONATION = 256, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_ACCEPT_WIN32_NAME = 512, 9b639cf2d6 2015-05-05 kinaba: SECPKG_FLAG_STREAM = 1024, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum :ULONG{ 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_AUTHORITY = 6, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_CONNECTION_INFO = 90, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_ISSUER_LIST = 80, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_ISSUER_LIST_EX = 89, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_KEY_INFO = 5, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_LIFESPAN = 2, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_LOCAL_CERT_CONTEXT = 84, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_LOCAL_CRED = 82, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_NAMES = 1, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_PROTO_INFO = 7, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_REMOTE_CERT_CONTEXT = 83, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_REMOTE_CRED = 81, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_SIZES = 0, 9b639cf2d6 2015-05-05 kinaba: SECPKG_ATTR_STREAM_SIZES = 4, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum :ULONG{ 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_EMPTY = 0, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_DATA = 1, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_TOKEN = 2, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_PKG_PARAMS = 3, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_MISSING = 4, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_EXTRA = 5, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_STREAM_TRAILER = 6, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_STREAM_HEADER = 7, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_PADDING = 9, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_STREAM = 10, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_READONLY = 0x80000000, 9b639cf2d6 2015-05-05 kinaba: SECBUFFER_ATTRMASK = 0xf0000000, 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum UNISP_NAME_A = "Microsoft Unified Security Protocol Provider"; 9b639cf2d6 2015-05-05 kinaba: enum UNISP_NAME_W = "Microsoft Unified Security Protocol Provider"w; 9b639cf2d6 2015-05-05 kinaba: enum SECBUFFER_VERSION = 0; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias UNICODE_STRING SECURITY_STRING; 9b639cf2d6 2015-05-05 kinaba: alias UNICODE_STRING* PSECURITY_STRING; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(Windows): 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: struct SecHandle { 9b639cf2d6 2015-05-05 kinaba: ULONG_PTR dwLower; 9b639cf2d6 2015-05-05 kinaba: ULONG_PTR dwUpper; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecHandle* PSecHandle; 9b639cf2d6 2015-05-05 kinaba: struct SecBuffer { 9b639cf2d6 2015-05-05 kinaba: ULONG cbBuffer; 9b639cf2d6 2015-05-05 kinaba: ULONG BufferType; 9b639cf2d6 2015-05-05 kinaba: PVOID pvBuffer; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecBuffer* PSecBuffer; 9b639cf2d6 2015-05-05 kinaba: alias SecHandle CredHandle; 9b639cf2d6 2015-05-05 kinaba: alias PSecHandle PCredHandle; 9b639cf2d6 2015-05-05 kinaba: alias SecHandle CtxtHandle; 9b639cf2d6 2015-05-05 kinaba: alias PSecHandle PCtxtHandle; 9b639cf2d6 2015-05-05 kinaba: struct SECURITY_INTEGER { 9b639cf2d6 2015-05-05 kinaba: uint LowPart; 9b639cf2d6 2015-05-05 kinaba: int HighPart; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_INTEGER TimeStamp; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_INTEGER* PTimeStamp; 9b639cf2d6 2015-05-05 kinaba: struct SecBufferDesc { 9b639cf2d6 2015-05-05 kinaba: ULONG ulVersion; 9b639cf2d6 2015-05-05 kinaba: ULONG cBuffers; 9b639cf2d6 2015-05-05 kinaba: PSecBuffer pBuffers; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecBufferDesc* PSecBufferDesc; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_StreamSizes { 9b639cf2d6 2015-05-05 kinaba: ULONG cbHeader; 9b639cf2d6 2015-05-05 kinaba: ULONG cbTrailer; 9b639cf2d6 2015-05-05 kinaba: ULONG cbMaximumMessage; 9b639cf2d6 2015-05-05 kinaba: ULONG cBuffers; 9b639cf2d6 2015-05-05 kinaba: ULONG cbBlockSize; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_StreamSizes* PSecPkgContext_StreamSizes; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_Sizes { 9b639cf2d6 2015-05-05 kinaba: ULONG cbMaxToken; 9b639cf2d6 2015-05-05 kinaba: ULONG cbMaxSignature; 9b639cf2d6 2015-05-05 kinaba: ULONG cbBlockSize; 9b639cf2d6 2015-05-05 kinaba: ULONG cbSecurityTrailer; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_Sizes* PSecPkgContext_Sizes; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_AuthorityW { 9b639cf2d6 2015-05-05 kinaba: SEC_WCHAR* sAuthorityName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_AuthorityW* PSecPkgContext_AuthorityW; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_AuthorityA { 9b639cf2d6 2015-05-05 kinaba: SEC_CHAR* sAuthorityName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_AuthorityA* PSecPkgContext_AuthorityA; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_KeyInfoW { 9b639cf2d6 2015-05-05 kinaba: SEC_WCHAR* sSignatureAlgorithmName; 9b639cf2d6 2015-05-05 kinaba: SEC_WCHAR* sEncryptAlgorithmName; 9b639cf2d6 2015-05-05 kinaba: ULONG KeySize; 9b639cf2d6 2015-05-05 kinaba: ULONG SignatureAlgorithm; 9b639cf2d6 2015-05-05 kinaba: ULONG EncryptAlgorithm; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_KeyInfoW* PSecPkgContext_KeyInfoW; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_KeyInfoA { 9b639cf2d6 2015-05-05 kinaba: SEC_CHAR* sSignatureAlgorithmName; 9b639cf2d6 2015-05-05 kinaba: SEC_CHAR* sEncryptAlgorithmName; 9b639cf2d6 2015-05-05 kinaba: ULONG KeySize; 9b639cf2d6 2015-05-05 kinaba: ULONG SignatureAlgorithm; 9b639cf2d6 2015-05-05 kinaba: ULONG EncryptAlgorithm; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_KeyInfoA* PSecPkgContext_KeyInfoA; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_LifeSpan { 9b639cf2d6 2015-05-05 kinaba: TimeStamp tsStart; 9b639cf2d6 2015-05-05 kinaba: TimeStamp tsExpiry; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_LifeSpan* PSecPkgContext_LifeSpan; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_NamesW { 9b639cf2d6 2015-05-05 kinaba: SEC_WCHAR* sUserName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_NamesW* PSecPkgContext_NamesW; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_NamesA { 9b639cf2d6 2015-05-05 kinaba: SEC_CHAR* sUserName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_NamesA* PSecPkgContext_NamesA; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgInfoW { 9b639cf2d6 2015-05-05 kinaba: ULONG fCapabilities; 9b639cf2d6 2015-05-05 kinaba: USHORT wVersion; 9b639cf2d6 2015-05-05 kinaba: USHORT wRPCID; 9b639cf2d6 2015-05-05 kinaba: ULONG cbMaxToken; 9b639cf2d6 2015-05-05 kinaba: SEC_WCHAR* Name; 9b639cf2d6 2015-05-05 kinaba: SEC_WCHAR* Comment; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgInfoW* PSecPkgInfoW; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgInfoA { 9b639cf2d6 2015-05-05 kinaba: ULONG fCapabilities; 9b639cf2d6 2015-05-05 kinaba: USHORT wVersion; 9b639cf2d6 2015-05-05 kinaba: USHORT wRPCID; 9b639cf2d6 2015-05-05 kinaba: ULONG cbMaxToken; 9b639cf2d6 2015-05-05 kinaba: SEC_CHAR* Name; 9b639cf2d6 2015-05-05 kinaba: SEC_CHAR* Comment; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgInfoA* PSecPkgInfoA; 9b639cf2d6 2015-05-05 kinaba: /* supported only in win2k+, so it should be a PSecPkgInfoW */ 9b639cf2d6 2015-05-05 kinaba: /* PSDK does not say it has ANSI/Unicode versions */ 9b639cf2d6 2015-05-05 kinaba: struct SecPkgContext_PackageInfo { 9b639cf2d6 2015-05-05 kinaba: PSecPkgInfoW PackageInfo; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_PackageInfo* PSecPkgContext_PackageInfo; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgCredentials_NamesW { 9b639cf2d6 2015-05-05 kinaba: SEC_WCHAR* sUserName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgCredentials_NamesW* PSecPkgCredentials_NamesW; 9b639cf2d6 2015-05-05 kinaba: struct SecPkgCredentials_NamesA { 9b639cf2d6 2015-05-05 kinaba: SEC_CHAR* sUserName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecPkgCredentials_NamesA* PSecPkgCredentials_NamesA; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: /* TODO: missing type in SDK */ 9b639cf2d6 2015-05-05 kinaba: alias void function() SEC_GET_KEY_FN; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PULONG,PSecPkgInfoW*) ENUMERATE_SECURITY_PACKAGES_FN_W; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PULONG,PSecPkgInfoA*) ENUMERATE_SECURITY_PACKAGES_FN_A; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCredHandle,ULONG,PVOID) QUERY_CREDENTIALS_ATTRIBUTES_FN_W; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCredHandle,ULONG,PVOID) QUERY_CREDENTIALS_ATTRIBUTES_FN_A; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp) ACQUIRE_CREDENTIALS_HANDLE_FN_W; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp) ACQUIRE_CREDENTIALS_HANDLE_FN_A; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCredHandle) FREE_CREDENTIALS_HANDLE_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) INITIALIZE_SECURITY_CONTEXT_FN_W; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) INITIALIZE_SECURITY_CONTEXT_FN_A; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) ACCEPT_SECURITY_CONTEXT_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) COMPLETE_AUTH_TOKEN_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle) DELETE_SECURITY_CONTEXT_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) APPLY_CONTROL_TOKEN_FN_W; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) APPLY_CONTROL_TOKEN_FN_A; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID) QUERY_CONTEXT_ATTRIBUTES_FN_A; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID) QUERY_CONTEXT_ATTRIBUTES_FN_W; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle) IMPERSONATE_SECURITY_CONTEXT_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle) REVERT_SECURITY_CONTEXT_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG) MAKE_SIGNATURE_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG) VERIFY_SIGNATURE_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PVOID) FREE_CONTEXT_BUFFER_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(SEC_CHAR*,PSecPkgInfoA*) QUERY_SECURITY_PACKAGE_INFO_FN_A; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,HANDLE*) QUERY_SECURITY_CONTEXT_TOKEN_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(SEC_WCHAR*,PSecPkgInfoW*) QUERY_SECURITY_PACKAGE_INFO_FN_W; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG) ENCRYPT_MESSAGE_FN; 9b639cf2d6 2015-05-05 kinaba: alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG) DECRYPT_MESSAGE_FN; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: /* No, it really is FreeCredentialsHandle, see the thread beginning 9b639cf2d6 2015-05-05 kinaba: * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a 9b639cf2d6 2015-05-05 kinaba: * discovery discussion. */ 9b639cf2d6 2015-05-05 kinaba: struct SecurityFunctionTableW{ 9b639cf2d6 2015-05-05 kinaba: uint dwVersion; 9b639cf2d6 2015-05-05 kinaba: ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; 9b639cf2d6 2015-05-05 kinaba: QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; 9b639cf2d6 2015-05-05 kinaba: ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; 9b639cf2d6 2015-05-05 kinaba: FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 9b639cf2d6 2015-05-05 kinaba: void* Reserved2; 9b639cf2d6 2015-05-05 kinaba: INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW; 9b639cf2d6 2015-05-05 kinaba: ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 9b639cf2d6 2015-05-05 kinaba: COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 9b639cf2d6 2015-05-05 kinaba: DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 9b639cf2d6 2015-05-05 kinaba: APPLY_CONTROL_TOKEN_FN_W ApplyControlTokenW; 9b639cf2d6 2015-05-05 kinaba: QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; 9b639cf2d6 2015-05-05 kinaba: IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 9b639cf2d6 2015-05-05 kinaba: REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 9b639cf2d6 2015-05-05 kinaba: MAKE_SIGNATURE_FN MakeSignature; 9b639cf2d6 2015-05-05 kinaba: VERIFY_SIGNATURE_FN VerifySignature; 9b639cf2d6 2015-05-05 kinaba: FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 9b639cf2d6 2015-05-05 kinaba: QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW; 9b639cf2d6 2015-05-05 kinaba: void* Reserved3; 9b639cf2d6 2015-05-05 kinaba: void* Reserved4; 9b639cf2d6 2015-05-05 kinaba: void* Reserved5; 9b639cf2d6 2015-05-05 kinaba: void* Reserved6; 9b639cf2d6 2015-05-05 kinaba: void* Reserved7; 9b639cf2d6 2015-05-05 kinaba: void* Reserved8; 9b639cf2d6 2015-05-05 kinaba: QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; 9b639cf2d6 2015-05-05 kinaba: ENCRYPT_MESSAGE_FN EncryptMessage; 9b639cf2d6 2015-05-05 kinaba: DECRYPT_MESSAGE_FN DecryptMessage; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecurityFunctionTableW* PSecurityFunctionTableW; 9b639cf2d6 2015-05-05 kinaba: struct SecurityFunctionTableA{ 9b639cf2d6 2015-05-05 kinaba: uint dwVersion; 9b639cf2d6 2015-05-05 kinaba: ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; 9b639cf2d6 2015-05-05 kinaba: QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; 9b639cf2d6 2015-05-05 kinaba: ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; 9b639cf2d6 2015-05-05 kinaba: FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 9b639cf2d6 2015-05-05 kinaba: void* Reserved2; 9b639cf2d6 2015-05-05 kinaba: INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; 9b639cf2d6 2015-05-05 kinaba: ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 9b639cf2d6 2015-05-05 kinaba: COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 9b639cf2d6 2015-05-05 kinaba: DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 9b639cf2d6 2015-05-05 kinaba: APPLY_CONTROL_TOKEN_FN_A ApplyControlTokenA; 9b639cf2d6 2015-05-05 kinaba: QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; 9b639cf2d6 2015-05-05 kinaba: IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 9b639cf2d6 2015-05-05 kinaba: REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 9b639cf2d6 2015-05-05 kinaba: MAKE_SIGNATURE_FN MakeSignature; 9b639cf2d6 2015-05-05 kinaba: VERIFY_SIGNATURE_FN VerifySignature; 9b639cf2d6 2015-05-05 kinaba: FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 9b639cf2d6 2015-05-05 kinaba: QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; 9b639cf2d6 2015-05-05 kinaba: void* Reserved3; 9b639cf2d6 2015-05-05 kinaba: void* Reserved4; 9b639cf2d6 2015-05-05 kinaba: void* Unknown1; 9b639cf2d6 2015-05-05 kinaba: void* Unknown2; 9b639cf2d6 2015-05-05 kinaba: void* Unknown3; 9b639cf2d6 2015-05-05 kinaba: void* Unknown4; 9b639cf2d6 2015-05-05 kinaba: void* Unknown5; 9b639cf2d6 2015-05-05 kinaba: ENCRYPT_MESSAGE_FN EncryptMessage; 9b639cf2d6 2015-05-05 kinaba: DECRYPT_MESSAGE_FN DecryptMessage; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: alias SecurityFunctionTableA* PSecurityFunctionTableA; 9b639cf2d6 2015-05-05 kinaba: alias PSecurityFunctionTableA function() INIT_SECURITY_INTERFACE_A; 9b639cf2d6 2015-05-05 kinaba: alias PSecurityFunctionTableW function() INIT_SECURITY_INTERFACE_W; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS FreeCredentialsHandle(PCredHandle); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS EnumerateSecurityPackagesA(PULONG,PSecPkgInfoA*); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS EnumerateSecurityPackagesW(PULONG,PSecPkgInfoW*); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS AcquireCredentialsHandleA(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS AcquireCredentialsHandleW(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS AcceptSecurityContext(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS InitializeSecurityContextA(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS InitializeSecurityContextW(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS FreeContextBuffer(PVOID); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS QueryContextAttributesA(PCtxtHandle,ULONG,PVOID); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS QueryContextAttributesW(PCtxtHandle,ULONG,PVOID); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS QueryCredentialsAttributesA(PCredHandle,ULONG,PVOID); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS QueryCredentialsAttributesW(PCredHandle,ULONG,PVOID); 9b639cf2d6 2015-05-05 kinaba: static if(_WIN32_WINNT >= 0x500){ 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS QuerySecurityContextToken(PCtxtHandle,HANDLE*); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS DecryptMessage(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS EncryptMessage(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS DeleteSecurityContext(PCtxtHandle); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS CompleteAuthToken(PCtxtHandle,PSecBufferDesc); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS ApplyControlTokenA(PCtxtHandle,PSecBufferDesc); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS ApplyControlTokenW(PCtxtHandle,PSecBufferDesc); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS ImpersonateSecurityContext(PCtxtHandle); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS RevertSecurityContext(PCtxtHandle); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS MakeSignature(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS VerifySignature(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS QuerySecurityPackageInfoA(SEC_CHAR*,PSecPkgInfoA*); 9b639cf2d6 2015-05-05 kinaba: SECURITY_STATUS QuerySecurityPackageInfoW(SEC_WCHAR*,PSecPkgInfoW*); 9b639cf2d6 2015-05-05 kinaba: PSecurityFunctionTableA InitSecurityInterfaceA(); 9b639cf2d6 2015-05-05 kinaba: PSecurityFunctionTableW InitSecurityInterfaceW(); 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: version(Unicode) { 9b639cf2d6 2015-05-05 kinaba: alias UNISP_NAME_W UNISP_NAME; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgInfoW SecPkgInfo; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgInfoW PSecPkgInfo; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgCredentials_NamesW SecPkgCredentials_Names; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgCredentials_NamesW PSecPkgCredentials_Names; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_AuthorityW SecPkgContext_Authority; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgContext_AuthorityW PSecPkgContext_Authority; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_KeyInfoW SecPkgContext_KeyInfo; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgContext_KeyInfoW PSecPkgContext_KeyInfo; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_NamesW SecPkgContext_Names; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgContext_NamesW PSecPkgContext_Names; 9b639cf2d6 2015-05-05 kinaba: alias SecurityFunctionTableW SecurityFunctionTable; 9b639cf2d6 2015-05-05 kinaba: alias PSecurityFunctionTableW PSecurityFunctionTable; 9b639cf2d6 2015-05-05 kinaba: alias AcquireCredentialsHandleW AcquireCredentialsHandle; 9b639cf2d6 2015-05-05 kinaba: alias EnumerateSecurityPackagesW EnumerateSecurityPackages; 9b639cf2d6 2015-05-05 kinaba: alias InitializeSecurityContextW InitializeSecurityContext; 9b639cf2d6 2015-05-05 kinaba: alias QueryContextAttributesW QueryContextAttributes; 9b639cf2d6 2015-05-05 kinaba: alias QueryCredentialsAttributesW QueryCredentialsAttributes; 9b639cf2d6 2015-05-05 kinaba: alias QuerySecurityPackageInfoW QuerySecurityPackageInfo; 9b639cf2d6 2015-05-05 kinaba: alias ApplyControlTokenW ApplyControlToken; 9b639cf2d6 2015-05-05 kinaba: alias ENUMERATE_SECURITY_PACKAGES_FN_W ENUMERATE_SECURITY_PACKAGES_FN; 9b639cf2d6 2015-05-05 kinaba: alias QUERY_CREDENTIALS_ATTRIBUTES_FN_W QUERY_CREDENTIALS_ATTRIBUTES_FN; 9b639cf2d6 2015-05-05 kinaba: alias ACQUIRE_CREDENTIALS_HANDLE_FN_W ACQUIRE_CREDENTIALS_HANDLE_FN; 9b639cf2d6 2015-05-05 kinaba: alias INITIALIZE_SECURITY_CONTEXT_FN_W INITIALIZE_SECURITY_CONTEXT_FN; 9b639cf2d6 2015-05-05 kinaba: alias APPLY_CONTROL_TOKEN_FN_W APPLY_CONTROL_TOKEN_FN; 9b639cf2d6 2015-05-05 kinaba: alias QUERY_CONTEXT_ATTRIBUTES_FN_W QUERY_CONTEXT_ATTRIBUTES_FN; 9b639cf2d6 2015-05-05 kinaba: alias QUERY_SECURITY_PACKAGE_INFO_FN_W QUERY_SECURITY_PACKAGE_INFO_FN; 9b639cf2d6 2015-05-05 kinaba: alias INIT_SECURITY_INTERFACE_W INIT_SECURITY_INTERFACE; 9b639cf2d6 2015-05-05 kinaba: }else{ 9b639cf2d6 2015-05-05 kinaba: alias UNISP_NAME_A UNISP_NAME; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgInfoA SecPkgInfo; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgInfoA PSecPkgInfo; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgCredentials_NamesA SecPkgCredentials_Names; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgCredentials_NamesA PSecPkgCredentials_Names; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_AuthorityA SecPkgContext_Authority; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgContext_AuthorityA PSecPkgContext_Authority; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_KeyInfoA SecPkgContext_KeyInfo; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgContext_KeyInfoA PSecPkgContext_KeyInfo; 9b639cf2d6 2015-05-05 kinaba: alias SecPkgContext_NamesA SecPkgContext_Names; 9b639cf2d6 2015-05-05 kinaba: alias PSecPkgContext_NamesA PSecPkgContext_Names; 9b639cf2d6 2015-05-05 kinaba: alias SecurityFunctionTableA SecurityFunctionTable; 9b639cf2d6 2015-05-05 kinaba: alias PSecurityFunctionTableA PSecurityFunctionTable; 9b639cf2d6 2015-05-05 kinaba: alias AcquireCredentialsHandleA AcquireCredentialsHandle; 9b639cf2d6 2015-05-05 kinaba: alias EnumerateSecurityPackagesA EnumerateSecurityPackages; 9b639cf2d6 2015-05-05 kinaba: alias InitializeSecurityContextA InitializeSecurityContext; 9b639cf2d6 2015-05-05 kinaba: alias QueryContextAttributesA QueryContextAttributes; 9b639cf2d6 2015-05-05 kinaba: alias QueryCredentialsAttributesA QueryCredentialsAttributes; 9b639cf2d6 2015-05-05 kinaba: alias QuerySecurityPackageInfoA QuerySecurityPackageInfo; 9b639cf2d6 2015-05-05 kinaba: alias ApplyControlTokenA ApplyControlToken; 9b639cf2d6 2015-05-05 kinaba: alias ENUMERATE_SECURITY_PACKAGES_FN_A ENUMERATE_SECURITY_PACKAGES_FN; 9b639cf2d6 2015-05-05 kinaba: alias QUERY_CREDENTIALS_ATTRIBUTES_FN_A QUERY_CREDENTIALS_ATTRIBUTES_FN; 9b639cf2d6 2015-05-05 kinaba: alias ACQUIRE_CREDENTIALS_HANDLE_FN_A ACQUIRE_CREDENTIALS_HANDLE_FN; 9b639cf2d6 2015-05-05 kinaba: alias INITIALIZE_SECURITY_CONTEXT_FN_A INITIALIZE_SECURITY_CONTEXT_FN; 9b639cf2d6 2015-05-05 kinaba: alias APPLY_CONTROL_TOKEN_FN_A APPLY_CONTROL_TOKEN_FN; 9b639cf2d6 2015-05-05 kinaba: alias QUERY_CONTEXT_ATTRIBUTES_FN_A QUERY_CONTEXT_ATTRIBUTES_FN; 9b639cf2d6 2015-05-05 kinaba: alias QUERY_SECURITY_PACKAGE_INFO_FN_A QUERY_SECURITY_PACKAGE_INFO_FN; 9b639cf2d6 2015-05-05 kinaba: alias INIT_SECURITY_INTERFACE_A INIT_SECURITY_INTERFACE; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: