339 lines
15 KiB
C
339 lines
15 KiB
C
#ifndef _SSPI_H
|
|
#define _SSPI_H
|
|
#if __GNUC__ >=3
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define SECPKG_CRED_INBOUND 1
|
|
#define SECPKG_CRED_OUTBOUND 2
|
|
#define SECPKG_CRED_BOTH (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND)
|
|
#define SECPKG_CRED_ATTR_NAMES 1
|
|
|
|
#define SECPKG_FLAG_INTEGRITY 1
|
|
#define SECPKG_FLAG_PRIVACY 2
|
|
#define SECPKG_FLAG_TOKEN_ONLY 4
|
|
#define SECPKG_FLAG_DATAGRAM 8
|
|
#define SECPKG_FLAG_CONNECTION 16
|
|
#define SECPKG_FLAG_MULTI_REQUIRED 32
|
|
#define SECPKG_FLAG_CLIENT_ONLY 64
|
|
#define SECPKG_FLAG_EXTENDED_ERROR 128
|
|
#define SECPKG_FLAG_IMPERSONATION 256
|
|
#define SECPKG_FLAG_ACCEPT_WIN32_NAME 512
|
|
#define SECPKG_FLAG_STREAM 1024
|
|
|
|
#define SECPKG_ATTR_AUTHORITY 6
|
|
#define SECPKG_ATTR_CONNECTION_INFO 90
|
|
#define SECPKG_ATTR_ISSUER_LIST 80
|
|
#define SECPKG_ATTR_ISSUER_LIST_EX 89
|
|
#define SECPKG_ATTR_KEY_INFO 5
|
|
#define SECPKG_ATTR_LIFESPAN 2
|
|
#define SECPKG_ATTR_LOCAL_CERT_CONTEXT 84
|
|
#define SECPKG_ATTR_LOCAL_CRED 82
|
|
#define SECPKG_ATTR_NAMES 1
|
|
#define SECPKG_ATTR_PROTO_INFO 7
|
|
#define SECPKG_ATTR_REMOTE_CERT_CONTEXT 83
|
|
#define SECPKG_ATTR_REMOTE_CRED 81
|
|
#define SECPKG_ATTR_SIZES 0
|
|
#define SECPKG_ATTR_STREAM_SIZES 4
|
|
|
|
#define SECBUFFER_EMPTY 0
|
|
#define SECBUFFER_DATA 1
|
|
#define SECBUFFER_TOKEN 2
|
|
#define SECBUFFER_PKG_PARAMS 3
|
|
#define SECBUFFER_MISSING 4
|
|
#define SECBUFFER_EXTRA 5
|
|
#define SECBUFFER_STREAM_TRAILER 6
|
|
#define SECBUFFER_STREAM_HEADER 7
|
|
#define SECBUFFER_PADDING 9
|
|
#define SECBUFFER_STREAM 10
|
|
#define SECBUFFER_READONLY 0x80000000
|
|
#define SECBUFFER_ATTRMASK 0xf0000000
|
|
|
|
#define UNISP_NAME_A "Microsoft Unified Security Protocol Provider"
|
|
#define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider"
|
|
#define SECBUFFER_VERSION 0
|
|
|
|
typedef struct _SecHandle {
|
|
ULONG_PTR dwLower;
|
|
ULONG_PTR dwUpper;
|
|
} SecHandle, *PSecHandle;
|
|
typedef struct _SecBuffer {
|
|
ULONG cbBuffer;
|
|
ULONG BufferType;
|
|
PVOID pvBuffer;
|
|
} SecBuffer, *PSecBuffer;
|
|
typedef SecHandle CredHandle;
|
|
typedef PSecHandle PCredHandle;
|
|
typedef SecHandle CtxtHandle;
|
|
typedef PSecHandle PCtxtHandle;
|
|
typedef struct _SECURITY_INTEGER {
|
|
unsigned long LowPart;
|
|
long HighPart;
|
|
} SECURITY_INTEGER;
|
|
typedef SECURITY_INTEGER TimeStamp, *PTimeStamp;
|
|
typedef struct _SecBufferDesc {
|
|
ULONG ulVersion;
|
|
ULONG cBuffers;
|
|
PSecBuffer pBuffers;
|
|
} SecBufferDesc, *PSecBufferDesc;
|
|
typedef struct _SecPkgContext_StreamSizes {
|
|
ULONG cbHeader;
|
|
ULONG cbTrailer;
|
|
ULONG cbMaximumMessage;
|
|
ULONG cBuffers;
|
|
ULONG cbBlockSize;
|
|
} SecPkgContext_StreamSizes, *PSecPkgContext_StreamSizes;
|
|
typedef struct _SecPkgContext_Sizes {
|
|
ULONG cbMaxToken;
|
|
ULONG cbMaxSIgnature;
|
|
ULONG cbBlockSize;
|
|
ULONG cbSecurityTrailer;
|
|
} SecPkgContext_Sizes, *PSecPkgContext_Sizes;
|
|
typedef struct _SecPkgContext_AuthorityW {
|
|
SEC_WCHAR* sAuthorityName;
|
|
} SecPkgContext_AuthorityW, *PSecPkgContext_AuthorityW;
|
|
typedef struct _SecPkgContext_AuthorityA {
|
|
SEC_CHAR* sAuthorityName;
|
|
} SecPkgContext_AuthorityA, *PSecPkgContext_AuthorityA;
|
|
typedef struct _SecPkgContext_KeyInfoW {
|
|
SEC_WCHAR* sSignatureAlgorithmName;
|
|
SEC_WCHAR* sEncryptAlgorithmName;
|
|
ULONG KeySize;
|
|
ULONG SignatureAlgorithm;
|
|
ULONG EncryptAlgorithm;
|
|
} SecPkgContext_KeyInfoW, *PSecPkgContext_KeyInfoW;
|
|
typedef struct _SecPkgContext_KeyInfoA {
|
|
SEC_CHAR* sSignatureAlgorithmName;
|
|
SEC_CHAR* sEncryptAlgorithmName;
|
|
ULONG KeySize;
|
|
ULONG SignatureAlgorithm;
|
|
ULONG EncryptAlgorithm;
|
|
} SecPkgContext_KeyInfoA, *PSecPkgContext_KeyInfoA;
|
|
typedef struct _SecPkgContext_LifeSpan {
|
|
TimeStamp tsStart;
|
|
TimeStamp tsExpiry;
|
|
} SecPkgContext_LifeSpan, *PSecPkgContext_LifeSpan;
|
|
typedef struct _SecPkgContext_NamesW {
|
|
SEC_WCHAR* sUserName;
|
|
} SecPkgContext_NamesW, *PSecPkgContext_NamesW;
|
|
typedef struct _SecPkgContext_NamesA {
|
|
SEC_CHAR* sUserName;
|
|
} SecPkgContext_NamesA, *PSecPkgContext_NamesA;
|
|
typedef struct _SecPkgInfoW {
|
|
ULONG fCapabilities;
|
|
USHORT wVersion;
|
|
USHORT wRPCID;
|
|
ULONG cbMaxToken;
|
|
SEC_WCHAR* Name;
|
|
SEC_WCHAR* Comment;
|
|
} SecPkgInfoW, *PSecPkgInfoW;
|
|
typedef struct _SecPkgInfoA {
|
|
ULONG fCapabilities;
|
|
USHORT wVersion;
|
|
USHORT wRPCID;
|
|
ULONG cbMaxToken;
|
|
SEC_CHAR* Name;
|
|
SEC_CHAR* Comment;
|
|
} SecPkgInfoA, *PSecPkgInfoA;
|
|
/* supported only in win2k+, so it should be a PSecPkgInfoW */
|
|
/* PSDK does not say it has ANSI/Unicode versions */
|
|
typedef struct _SecPkgContext_PackageInfo {
|
|
PSecPkgInfoW PackageInfo;
|
|
} SecPkgContext_PackageInfo, *PSecPkgContext_PackageInfo;
|
|
typedef struct _SecPkgCredentials_NamesW {
|
|
SEC_WCHAR* sUserName;
|
|
} SecPkgCredentialsNamesW, *PSecPkgCredentialsNamesW;
|
|
typedef struct _SecPkgCredentials_NamesA {
|
|
SEC_CHAR* sUserName;
|
|
} SecPkgCredentialsNamesA, *PSecPkgCredentialsNamesA;
|
|
|
|
/* TODO: missing type in SDK */
|
|
typedef void (*SEC_GET_KEY_FN)();
|
|
|
|
typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG,PSecPkgInfoW*);
|
|
typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG,PSecPkgInfoA*);
|
|
typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle,ULONG,PVOID);
|
|
typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_A)(PCredHandle,ULONG,PVOID);
|
|
typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_W)(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
|
|
typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_A)(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
|
|
typedef SECURITY_STATUS (WINAPI *FREE_CREDENTIALS_HANDLE_FN)(PCredHandle);
|
|
typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_W)(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
|
|
typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_A)(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
|
|
typedef SECURITY_STATUS (WINAPI *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
|
|
typedef SECURITY_STATUS (WINAPI *COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle,PSecBufferDesc);
|
|
typedef SECURITY_STATUS (WINAPI *DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle);
|
|
typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_W)(PCtxtHandle,PSecBufferDesc);
|
|
typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_A)(PCtxtHandle,PSecBufferDesc);
|
|
typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,ULONG,PVOID);
|
|
typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle,ULONG,PVOID);
|
|
typedef SECURITY_STATUS (WINAPI *IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle);
|
|
typedef SECURITY_STATUS (WINAPI *REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle);
|
|
typedef SECURITY_STATUS (WINAPI *MAKE_SIGNATURE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
|
|
typedef SECURITY_STATUS (WINAPI *VERIFY_SIGNATURE_FN)(PCtxtHandle,PSecBufferDesc,ULONG,PULONG);
|
|
typedef SECURITY_STATUS (WINAPI *FREE_CONTEXT_BUFFER_FN)(PVOID);
|
|
typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_A)(SEC_CHAR*,PSecPkgInfoA*);
|
|
typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR*,PSecPkgInfoW*);
|
|
typedef SECURITY_STATUS (WINAPI *ENCRYPT_MESSAGE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
|
|
typedef SECURITY_STATUS (WINAPI *DECRYPT_MESSAGE_FN)(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. */
|
|
typedef struct _SECURITY_FUNCTION_TABLEW {
|
|
unsigned long 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 SEC_FAR* 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_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_A QuerySecurityPackageInfoA;
|
|
void SEC_FAR* Reserved3;
|
|
void SEC_FAR* Reserved4;
|
|
void SEC_FAR* Unknown1;
|
|
void SEC_FAR* Unknown2;
|
|
void SEC_FAR* Unknown3;
|
|
void SEC_FAR* Unknown4;
|
|
void SEC_FAR* Unknown5;
|
|
ENCRYPT_MESSAGE_FN EncryptMessage;
|
|
DECRYPT_MESSAGE_FN DecryptMessage;
|
|
} SecurityFunctionTableW, *PSecurityFunctionTableW;
|
|
typedef struct _SECURITY_FUNCTION_TABLEA {
|
|
unsigned long 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 SEC_FAR* 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 SEC_FAR* Reserved3;
|
|
void SEC_FAR* Reserved4;
|
|
void SEC_FAR* Unknown1;
|
|
void SEC_FAR* Unknown2;
|
|
void SEC_FAR* Unknown3;
|
|
void SEC_FAR* Unknown4;
|
|
void SEC_FAR* Unknown5;
|
|
ENCRYPT_MESSAGE_FN EncryptMessage;
|
|
DECRYPT_MESSAGE_FN DecryptMessage;
|
|
} SecurityFunctionTableA, *PSecurityFunctionTableA;
|
|
typedef PSecurityFunctionTableA (WINAPI *INIT_SECURITY_INTERFACE_A)(VOID);
|
|
typedef PSecurityFunctionTableW (WINAPI *INIT_SECURITY_INTERFACE_W)(VOID);
|
|
|
|
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle);
|
|
SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG,PSecPkgInfoA*);
|
|
SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG,PSecPkgInfoW*);
|
|
SECURITY_STATUS WINAPI AcquireCredentialsHandleA(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
|
|
SECURITY_STATUS WINAPI AcquireCredentialsHandleW(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
|
|
SECURITY_STATUS WINAPI AcceptSecurityContext(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
|
|
SECURITY_STATUS WINAPI InitializeSecurityContextA(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
|
|
SECURITY_STATUS WINAPI InitializeSecurityContextW(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
|
|
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID);
|
|
SECURITY_STATUS WINAPI QueryContextAttributesA(PCtxtHandle,ULONG,PVOID);
|
|
SECURITY_STATUS WINAPI QueryContextAttributesW(PCtxtHandle,ULONG,PVOID);
|
|
SECURITY_STATUS WINAPI QueryCredentialsAttributesA(PCredHandle,ULONG,PVOID);
|
|
SECURITY_STATUS WINAPI QueryCredentialsAttributesW(PCredHandle,ULONG,PVOID);
|
|
SECURITY_STATUS WINAPI DecryptMessage(PCtxtHandle,PSecBufferDesc,ULONG,PULONG);
|
|
SECURITY_STATUS WINAPI EncryptMessage(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
|
|
SECURITY_STATUS WINAPI DeleteSecurityContext(PCtxtHandle);
|
|
SECURITY_STATUS WINAPI CompleteAuthToken(PCtxtHandle,PSecBufferDesc);
|
|
SECURITY_STATUS WINAPI ApplyControlTokenA(PCtxtHandle,PSecBufferDesc);
|
|
SECURITY_STATUS WINAPI ApplyControlTokenW(PCtxtHandle,PSecBufferDesc);
|
|
SECURITY_STATUS WINAPI ImpersonateSecurityContext(PCtxtHandle);
|
|
SECURITY_STATUS WINAPI RevertSecurityContext(PCtxtHandle);
|
|
SECURITY_STATUS WINAPI MakeSignature(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
|
|
SECURITY_STATUS WINAPI VerifySignature(PCtxtHandle,PSecBufferDesc,ULONG,PULONG);
|
|
SECURITY_STATUS WINAPI QuerySecurityPackageInfoA(SEC_CHAR*,PSecPkgInfoA*);
|
|
SECURITY_STATUS WINAPI QuerySecurityPackageInfoW(SEC_WCHAR*,PSecPkgInfoW*);
|
|
PSecurityFunctionTableA WINAPI InitSecurityInterfaceA(VOID);
|
|
PSecurityFunctionTableW WINAPI InitSecurityInterfaceW(VOID);
|
|
|
|
#ifdef UNICODE
|
|
#define UNISP_NAME UNISP_NAME_W
|
|
#define SecPkgInfo SecPkgInfoW
|
|
#define PSecPkgInfo PSecPkgInfoW
|
|
#define SecPkgCredentialsNames SecPkgCredentialsNamesW
|
|
#define PSecPkgCredentialsNames PSecPkgCredentialsNamesW
|
|
#define SecPkgContext_Authority SecPkgContext_AuthorityW
|
|
#define PSecPkgContext_Authority PSecPkgContext_AuthorityW
|
|
#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW
|
|
#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW
|
|
#define SecPkgContext_Names SecPkgContext_NamesW
|
|
#define PSecPkgContext_Names PSecPkgContext_NamesW
|
|
#define SecurityFunctionTable SecurityFunctionTableW
|
|
#define PSecurityFunctionTable PSecurityFunctionTableW
|
|
#define AcquireCredentialsHandle AcquireCredentialsHandleW
|
|
#define EnumerateSecurityPackages EnumerateSecurityPackagesW
|
|
#define InitializeSecurityContext InitializeSecurityContextW
|
|
#define QueryContextAttributes QueryContextAttributesW
|
|
#define QueryCredentialsAttributes QueryCredentialsAttributesW
|
|
#define QuerySecurityPackageInfo QuerySecurityPackageInfoW
|
|
#define ApplyControlToken ApplyControlTokenW
|
|
#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W
|
|
#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W
|
|
#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W
|
|
#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W
|
|
#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_W
|
|
#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W
|
|
#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W
|
|
#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_W
|
|
#else
|
|
#define UNISP_NAME UNISP_NAME_A
|
|
#define SecPkgInfo SecPkgInfoA
|
|
#define PSecPkgInfo PSecPkgInfoA
|
|
#define SecPkgCredentialsNames SecPkgCredentialsNamesA
|
|
#define PSecPkgCredentialsNames PSecPkgCredentialsNamesA
|
|
#define SecPkgContext_Authority SecPkgContext_AuthorityA
|
|
#define PSecPkgContext_Authority PSecPkgContext_AuthorityA
|
|
#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoA
|
|
#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoA
|
|
#define SecPkgContext_Names SecPkgContext_NamesA
|
|
#define PSecPkgContext_Names PSecPkgContext_NamesA
|
|
#define SecurityFunctionTable SecurityFunctionTableA
|
|
#define PSecurityFunctionTable PSecurityFunctionTableA
|
|
#define AcquireCredentialsHandle AcquireCredentialsHandleA
|
|
#define EnumerateSecurityPackages EnumerateSecurityPackagesA
|
|
#define InitializeSecurityContext InitializeSecurityContextA
|
|
#define QueryContextAttributes QueryContextAttributesA
|
|
#define QueryCredentialsAttributes QueryCredentialsAttributesA
|
|
#define QuerySecurityPackageInfo QuerySecurityPackageInfoA
|
|
#define ApplyControlToken ApplyControlTokenA
|
|
#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_A
|
|
#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A
|
|
#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_A
|
|
#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_A
|
|
#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_A
|
|
#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A
|
|
#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A
|
|
#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_A
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|