OSDN Git Service

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