FreeRDP
Loading...
Searching...
No Matches
sspi_export.c
1
20#include <winpr/platform.h>
21#include <winpr/wtypes.h>
22#include <winpr/config.h>
23
24#ifdef _WIN32
25#define SEC_ENTRY __stdcall
26#define SSPI_EXPORT __declspec(dllexport)
27#else
28#include <winpr/winpr.h>
29#if defined(SSPI_DLL)
30#define SEC_ENTRY
31#define SSPI_EXPORT WINPR_API
32#endif
33#endif
34
35#ifdef _WIN32
36typedef long LONG;
37typedef unsigned long ULONG;
38#endif
39typedef LONG SECURITY_STATUS;
40
41WINPR_PRAGMA_DIAG_PUSH
42WINPR_PRAGMA_DIAG_IGNORED_MISSING_PROTOTYPES
43
44#ifdef SSPI_DLL
45
50/* Package Management */
51
52extern SECURITY_STATUS SEC_ENTRY sspi_EnumerateSecurityPackagesW(void*, void*);
53
54SSPI_EXPORT SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(void* pcPackages,
55 void* ppPackageInfo)
56{
57 return sspi_EnumerateSecurityPackagesW(pcPackages, ppPackageInfo);
58}
59
60extern SECURITY_STATUS SEC_ENTRY sspi_EnumerateSecurityPackagesA(void*, void*);
61
62SSPI_EXPORT SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(void* pcPackages,
63 void* ppPackageInfo)
64{
65 return sspi_EnumerateSecurityPackagesA(pcPackages, ppPackageInfo);
66}
67
68extern void* SEC_ENTRY sspi_InitSecurityInterfaceW(void);
69
70SSPI_EXPORT void* SEC_ENTRY InitSecurityInterfaceW(void)
71{
72 return sspi_InitSecurityInterfaceW();
73}
74
75extern void* SEC_ENTRY sspi_InitSecurityInterfaceA(void);
76
77SSPI_EXPORT void* SEC_ENTRY InitSecurityInterfaceA(void)
78{
79 return sspi_InitSecurityInterfaceA();
80}
81
82extern SECURITY_STATUS SEC_ENTRY sspi_QuerySecurityPackageInfoW(void*, void*);
83
84SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(void* pszPackageName,
85 void* ppPackageInfo)
86{
87 return sspi_QuerySecurityPackageInfoW(pszPackageName, ppPackageInfo);
88}
89
90extern SECURITY_STATUS SEC_ENTRY sspi_QuerySecurityPackageInfoA(void*, void*);
91
92SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(void* pszPackageName,
93 void* ppPackageInfo)
94{
95 return sspi_QuerySecurityPackageInfoA(pszPackageName, ppPackageInfo);
96}
97
98/* Credential Management */
99
100extern SECURITY_STATUS SEC_ENTRY sspi_AcquireCredentialsHandleW(void*, void*, ULONG, void*, void*,
101 void*, void*, void*, void*);
102
103SSPI_EXPORT SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleW(
104 void* pszPrincipal, void* pszPackage, ULONG fCredentialUse, void* pvLogonID, void* pAuthData,
105 void* pGetKeyFn, void* pvGetKeyArgument, void* phCredential, void* ptsExpiry)
106{
107 return sspi_AcquireCredentialsHandleW(pszPrincipal, pszPackage, fCredentialUse, pvLogonID,
108 pAuthData, pGetKeyFn, pvGetKeyArgument, phCredential,
109 ptsExpiry);
110}
111
112extern SECURITY_STATUS SEC_ENTRY sspi_AcquireCredentialsHandleA(void*, void*, ULONG, void*, void*,
113 void*, void*, void*, void*);
114
115SSPI_EXPORT SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleA(
116 void* pszPrincipal, void* pszPackage, ULONG fCredentialUse, void* pvLogonID, void* pAuthData,
117 void* pGetKeyFn, void* pvGetKeyArgument, void* phCredential, void* ptsExpiry)
118{
119 return sspi_AcquireCredentialsHandleA(pszPrincipal, pszPackage, fCredentialUse, pvLogonID,
120 pAuthData, pGetKeyFn, pvGetKeyArgument, phCredential,
121 ptsExpiry);
122}
123
124extern SECURITY_STATUS SEC_ENTRY sspi_ExportSecurityContext(void*, ULONG, void*, void**);
125
126SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ExportSecurityContext(void* phContext, ULONG fFlags,
127 void* pPackedContext, void** pToken)
128{
129 return sspi_ExportSecurityContext(phContext, fFlags, pPackedContext, pToken);
130}
131
132extern SECURITY_STATUS SEC_ENTRY sspi_FreeCredentialsHandle(void*);
133
134SSPI_EXPORT SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(void* phCredential)
135{
136 return sspi_FreeCredentialsHandle(phCredential);
137}
138
139extern SECURITY_STATUS SEC_ENTRY sspi_ImportSecurityContextW(void*, void*, void*, void*);
140
141SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ImportSecurityContextW(void* pszPackage, void* pPackedContext,
142 void* pToken, void* phContext)
143{
144 return sspi_ImportSecurityContextW(pszPackage, pPackedContext, pToken, phContext);
145}
146
147extern SECURITY_STATUS SEC_ENTRY sspi_ImportSecurityContextA(void*, void*, void*, void*);
148
149SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ImportSecurityContextA(void* pszPackage, void* pPackedContext,
150 void* pToken, void* phContext)
151{
152 return sspi_ImportSecurityContextA(pszPackage, pPackedContext, pToken, phContext);
153}
154
155extern SECURITY_STATUS SEC_ENTRY sspi_QueryCredentialsAttributesW(void*, ULONG, void*);
156
157SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(void* phCredential,
158 ULONG ulAttribute, void* pBuffer)
159{
160 return sspi_QueryCredentialsAttributesW(phCredential, ulAttribute, pBuffer);
161}
162
163extern SECURITY_STATUS SEC_ENTRY sspi_QueryCredentialsAttributesA(void*, ULONG, void*);
164
165SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(void* phCredential,
166 ULONG ulAttribute, void* pBuffer)
167{
168 return sspi_QueryCredentialsAttributesA(phCredential, ulAttribute, pBuffer);
169}
170
171/* Context Management */
172
173extern SECURITY_STATUS SEC_ENTRY sspi_AcceptSecurityContext(void*, void*, void*, ULONG, ULONG,
174 void*, void*, void*, void*);
175
176SSPI_EXPORT SECURITY_STATUS SEC_ENTRY AcceptSecurityContext(void* phCredential, void* phContext,
177 void* pInput, ULONG fContextReq,
178 ULONG TargetDataRep, void* phNewContext,
179 void* pOutput, void* pfContextAttr,
180 void* ptsTimeStamp)
181{
182 return sspi_AcceptSecurityContext(phCredential, phContext, pInput, fContextReq, TargetDataRep,
183 phNewContext, pOutput, pfContextAttr, ptsTimeStamp);
184}
185
186extern SECURITY_STATUS SEC_ENTRY sspi_ApplyControlToken(void*, void*);
187
188SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ApplyControlToken(void* phContext, void* pInput)
189{
190 return sspi_ApplyControlToken(phContext, pInput);
191}
192
193extern SECURITY_STATUS SEC_ENTRY sspi_CompleteAuthToken(void*, void*);
194
195SSPI_EXPORT SECURITY_STATUS SEC_ENTRY CompleteAuthToken(void* phContext, void* pToken)
196{
197 return sspi_CompleteAuthToken(phContext, pToken);
198}
199
200extern SECURITY_STATUS SEC_ENTRY sspi_DeleteSecurityContext(void*);
201
202SSPI_EXPORT SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(void* phContext)
203{
204 return sspi_DeleteSecurityContext(phContext);
205}
206
207extern SECURITY_STATUS SEC_ENTRY sspi_FreeContextBuffer(void*);
208
209SSPI_EXPORT SECURITY_STATUS SEC_ENTRY FreeContextBuffer(void* pvContextBuffer)
210{
211 return sspi_FreeContextBuffer(pvContextBuffer);
212}
213
214extern SECURITY_STATUS SEC_ENTRY sspi_ImpersonateSecurityContext(void*);
215
216SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(void* phContext)
217{
218 return sspi_ImpersonateSecurityContext(phContext);
219}
220
221extern SECURITY_STATUS SEC_ENTRY sspi_InitializeSecurityContextW(void*, void*, void*, ULONG, ULONG,
222 ULONG, void*, ULONG, void*, void*,
223 void*, void*);
224
225SSPI_EXPORT SECURITY_STATUS SEC_ENTRY InitializeSecurityContextW(
226 void* phCredential, void* phContext, void* pszTargetName, ULONG fContextReq, ULONG Reserved1,
227 ULONG TargetDataRep, void* pInput, ULONG Reserved2, void* phNewContext, void* pOutput,
228 void* pfContextAttr, void* ptsExpiry)
229{
230 return sspi_InitializeSecurityContextW(phCredential, phContext, pszTargetName, fContextReq,
231 Reserved1, TargetDataRep, pInput, Reserved2,
232 phNewContext, pOutput, pfContextAttr, ptsExpiry);
233}
234
235extern SECURITY_STATUS SEC_ENTRY sspi_InitializeSecurityContextA(void*, void*, void*, ULONG, ULONG,
236 ULONG, void*, ULONG, void*, void*,
237 void*, void*);
238
239SSPI_EXPORT SECURITY_STATUS SEC_ENTRY InitializeSecurityContextA(
240 void* phCredential, void* phContext, void* pszTargetName, ULONG fContextReq, ULONG Reserved1,
241 ULONG TargetDataRep, void* pInput, ULONG Reserved2, void* phNewContext, void* pOutput,
242 void* pfContextAttr, void* ptsExpiry)
243{
244 return sspi_InitializeSecurityContextA(phCredential, phContext, pszTargetName, fContextReq,
245 Reserved1, TargetDataRep, pInput, Reserved2,
246 phNewContext, pOutput, pfContextAttr, ptsExpiry);
247}
248
249extern SECURITY_STATUS SEC_ENTRY sspi_QueryContextAttributesW(void*, ULONG, void*);
250
251SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(void* phContext, ULONG ulAttribute,
252 void* pBuffer)
253{
254 return sspi_QueryContextAttributesW(phContext, ulAttribute, pBuffer);
255}
256
257extern SECURITY_STATUS SEC_ENTRY sspi_QueryContextAttributesA(void*, ULONG, void*);
258
259SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(void* phContext, ULONG ulAttribute,
260 void* pBuffer)
261{
262 return sspi_QueryContextAttributesA(phContext, ulAttribute, pBuffer);
263}
264
265extern SECURITY_STATUS SEC_ENTRY sspi_QuerySecurityContextToken(void*, void**);
266
267SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(void* phContext, void** phToken)
268{
269 return sspi_QuerySecurityContextToken(phContext, phToken);
270}
271
272extern SECURITY_STATUS SEC_ENTRY sspi_SetContextAttributesW(void*, ULONG, void*, ULONG);
273
274SSPI_EXPORT SECURITY_STATUS SEC_ENTRY SetContextAttributesW(void* phContext, ULONG ulAttribute,
275 void* pBuffer, ULONG cbBuffer)
276{
277 return sspi_SetContextAttributesW(phContext, ulAttribute, pBuffer, cbBuffer);
278}
279
280extern SECURITY_STATUS SEC_ENTRY sspi_SetContextAttributesA(void*, ULONG, void*, ULONG);
281
282SSPI_EXPORT SECURITY_STATUS SEC_ENTRY SetContextAttributesA(void* phContext, ULONG ulAttribute,
283 void* pBuffer, ULONG cbBuffer)
284{
285 return sspi_SetContextAttributesA(phContext, ulAttribute, pBuffer, cbBuffer);
286}
287
288extern SECURITY_STATUS SEC_ENTRY sspi_SetCredentialsAttributesW(void*, ULONG, void*, ULONG);
289
290static SECURITY_STATUS SEC_ENTRY SetCredentialsAttributesW(void* phCredential, ULONG ulAttribute,
291 void* pBuffer, ULONG cbBuffer)
292{
293 return sspi_SetCredentialsAttributesW(phCredential, ulAttribute, pBuffer, cbBuffer);
294}
295
296extern SECURITY_STATUS SEC_ENTRY sspi_SetCredentialsAttributesA(void*, ULONG, void*, ULONG);
297
298static SECURITY_STATUS SEC_ENTRY SetCredentialsAttributesA(void* phCredential, ULONG ulAttribute,
299 void* pBuffer, ULONG cbBuffer)
300{
301 return sspi_SetCredentialsAttributesA(phCredential, ulAttribute, pBuffer, cbBuffer);
302}
303
304extern SECURITY_STATUS SEC_ENTRY sspi_RevertSecurityContext(void*);
305
306SSPI_EXPORT SECURITY_STATUS SEC_ENTRY RevertSecurityContext(void* phContext)
307{
308 return sspi_RevertSecurityContext(phContext);
309}
310
311/* Message Support */
312
313extern SECURITY_STATUS SEC_ENTRY sspi_DecryptMessage(void*, void*, ULONG, void*);
314
315SSPI_EXPORT SECURITY_STATUS SEC_ENTRY DecryptMessage(void* phContext, void* pMessage,
316 ULONG MessageSeqNo, void* pfQOP)
317{
318 return sspi_DecryptMessage(phContext, pMessage, MessageSeqNo, pfQOP);
319}
320
321extern SECURITY_STATUS SEC_ENTRY sspi_EncryptMessage(void*, ULONG, void*, ULONG);
322
323SSPI_EXPORT SECURITY_STATUS SEC_ENTRY EncryptMessage(void* phContext, ULONG fQOP, void* pMessage,
324 ULONG MessageSeqNo)
325{
326 return sspi_EncryptMessage(phContext, fQOP, pMessage, MessageSeqNo);
327}
328
329extern SECURITY_STATUS SEC_ENTRY sspi_MakeSignature(void*, ULONG, void*, ULONG);
330
331SSPI_EXPORT SECURITY_STATUS SEC_ENTRY MakeSignature(void* phContext, ULONG fQOP, void* pMessage,
332 ULONG MessageSeqNo)
333{
334 return sspi_MakeSignature(phContext, fQOP, pMessage, MessageSeqNo);
335}
336
337extern SECURITY_STATUS SEC_ENTRY sspi_VerifySignature(void*, void*, ULONG, void*);
338
339SSPI_EXPORT SECURITY_STATUS SEC_ENTRY VerifySignature(void* phContext, void* pMessage,
340 ULONG MessageSeqNo, void* pfQOP)
341{
342 return sspi_VerifySignature(phContext, pMessage, MessageSeqNo, pfQOP);
343}
344
345#endif /* SSPI_DLL */
346
347WINPR_PRAGMA_DIAG_POP