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