File Annotation

Not logged in
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: