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