ReactOS 0.4.15-dev-7961-gdcf9eb0
sspi.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2004 Juan Lang
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18#ifndef __WINE_SSPI_H__
19#define __WINE_SSPI_H__
20
21#include <wtypes.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#define SEC_ENTRY WINAPI
28
30typedef CHAR SEC_CHAR;
31
32#ifndef __SECSTATUS_DEFINED__
33#define __SECSTATUS_DEFINED__
35#endif
36
37#define UNISP_NAME_A "Microsoft Unified Security Protocol Provider"
38#define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider"
39#define UNISP_NAME WINELIB_NAME_AW(UNISP_NAME_)
40
41#ifdef UNICODE
42typedef SEC_WCHAR * SECURITY_PSTR;
44#else
47#endif
48
49#ifndef __SECHANDLE_DEFINED__
50#define __SECHANDLE_DEFINED__
51typedef struct _SecHandle
52{
56#endif
57
58#define SecInvalidateHandle(x) do { \
59 ((PSecHandle)(x))->dwLower = ((ULONG_PTR)((INT_PTR)-1)); \
60 ((PSecHandle)(x))->dwUpper = ((ULONG_PTR)((INT_PTR)-1)); \
61 } while (0)
62
63#define SecIsValidHandle(x) \
64 ((((PSecHandle)(x))->dwLower != ((ULONG_PTR)(INT_PTR)-1)) && \
65 (((PSecHandle)(x))->dwUpper != ((ULONG_PTR)(INT_PTR)-1)))
66
69
72
73typedef struct _SECURITY_INTEGER
74{
79
80// UNICODE_STRING should have the same memory layout in 32 bit and 64 bit mode.
81// In 32 bit mode SECURITY_STRING is simply a clone of UNICODE_STRING.
82// It is used internal in kernel an security components.
83#ifndef _NTDEF_
84typedef struct _SECURITY_STRING {
85 unsigned short Length;
86 unsigned short MaximumLength;
87 unsigned short *Buffer;
89#else
91#endif
92
93#define SSPIPFC_CREDPROV_DO_NOT_SAVE 0x00000001
94#define SSPIPFC_NO_CHECKBOX 0x00000002
95
97
101
102typedef struct _SecPkgInfoA
103{
105 unsigned short wVersion;
106 unsigned short wRPCID;
111
112typedef struct _SecPkgInfoW
113{
115 unsigned short wVersion;
116 unsigned short wRPCID;
121
122#define SecPkgInfo WINELIB_NAME_AW(SecPkgInfo)
123#define PSecPkgInfo WINELIB_NAME_AW(PSecPkgInfo)
124
125/* fCapabilities field of SecPkgInfo */
126#define SECPKG_FLAG_INTEGRITY 0x00000001
127#define SECPKG_FLAG_PRIVACY 0x00000002
128#define SECPKG_FLAG_TOKEN_ONLY 0x00000004
129#define SECPKG_FLAG_DATAGRAM 0x00000008
130#define SECPKG_FLAG_CONNECTION 0x00000010
131#define SECPKG_FLAG_MULTI_REQUIRED 0x00000020
132#define SECPKG_FLAG_CLIENT_ONLY 0x00000040
133#define SECPKG_FLAG_EXTENDED_ERROR 0x00000080
134#define SECPKG_FLAG_IMPERSONATION 0x00000100
135#define SECPKG_FLAG_ACCEPT_WIN32_NAME 0x00000200
136#define SECPKG_FLAG_STREAM 0x00000400
137#define SECPKG_FLAG_NEGOTIABLE 0x00000800
138#define SECPKG_FLAG_GSS_COMPATIBLE 0x00001000
139#define SECPKG_FLAG_LOGON 0x00002000
140#define SECPKG_FLAG_ASCII_BUFFERS 0x00004000
141#define SECPKG_FLAG_FRAGMENT 0x00008000
142#define SECPKG_FLAG_MUTUAL_AUTH 0x00010000
143#define SECPKG_FLAG_DELEGATION 0x00020000
144#define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000
145#define SECPKG_FLAG_RESTRICTED_TOKENS 0x00080000
146#define SECPKG_FLAG_NEGO_EXTENDER 0x00100000
147#define SECPKG_FLAG_NEGOTIABLE2 0x00200000
148#define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH 0x00400000
149#define SECPKG_FLAG_APPCONTAINER_CHECKS 0x00800000
150#define SECPKG_FLAG_APPLY_LOOPBACK 0x02000000
151
152typedef struct _SecBuffer {
157
158/* values for BufferType */
159#define SECBUFFER_EMPTY 0
160#define SECBUFFER_DATA 1
161#define SECBUFFER_TOKEN 2
162#define SECBUFFER_PKG_PARAMS 3
163#define SECBUFFER_MISSING 4
164#define SECBUFFER_EXTRA 5
165#define SECBUFFER_STREAM_TRAILER 6
166#define SECBUFFER_STREAM_HEADER 7
167#define SECBUFFER_NEGOTIATION_INFO 8
168#define SECBUFFER_PADDING 9
169#define SECBUFFER_STREAM 10
170#define SECBUFFER_MECHLIST 11
171#define SECBUFFER_MECHLIST_SIGNATURE 12
172#define SECBUFFER_TARGET 13
173#define SECBUFFER_CHANNEL_BINDINGS 14
174
175#define SECBUFFER_ATTRMASK 0xf0000000
176#define SECBUFFER_READONLY 0x80000000
177#define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000
178#define SECBUFFER_RESERVED 0x60000000
179
180typedef struct _SecBufferDesc {
185
186/* values for ulVersion */
187#define SECBUFFER_VERSION 0
188
189typedef void (SEC_ENTRY *SEC_GET_KEY_FN)(void *Arg, void *Principal,
190 ULONG KeyVer, void **Key, SECURITY_STATUS *Status);
191
195 _Out_ PULONG pcPackages,
196 _Outptr_ PSecPkgInfoA *ppPackageInfo);
197
201 _Out_ PULONG pcPackages,
202 _Outptr_ PSecPkgInfoW *ppPackageInfo);
203
204#define EnumerateSecurityPackages WINELIB_NAME_AW(EnumerateSecurityPackages)
205
207 PSecPkgInfoA *);
209 PSecPkgInfoW *);
210#define ENUMERATE_SECURITY_PACKAGES_FN WINELIB_NAME_AW(ENUMERATE_SECURITY_PACKAGES_FN_)
211
215 _In_ PCredHandle phCredential,
216 _In_ ULONG ulAttribute,
217 _Inout_ void *pBuffer);
218
222 _In_ PCredHandle phCredential,
223 _In_ ULONG ulAttribute,
224 _Inout_ void *pBuffer);
225
226#define QueryCredentialsAttributes WINELIB_NAME_AW(QueryCredentialsAttributes)
227
232#define QUERY_CREDENTIALS_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CREDENTIALS_ATTRIBUTES_FN_)
233
234typedef struct _SEC_CHANNEL_BINDINGS {
244
245/* values for QueryCredentialsAttributes ulAttribute */
246#define SECPKG_CRED_ATTR_NAMES 1
247
248/* types for QueryCredentialsAttributes */
250{
253
255{
258
259#define SecPkgCredentials_Names WINELIB_NAME_AW(SecPkgCredentials_Names)
260
264 _In_opt_ SEC_CHAR *pszPrincipal,
265 _In_ SEC_CHAR *pszPackage,
266 _In_ ULONG fCredentialsUse,
267 _In_opt_ PLUID pvLogonID,
268 _In_opt_ PVOID pAuthData,
269 _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
270 _In_opt_ PVOID pvGetKeyArgument,
271 _Out_ PCredHandle phCredential,
272 _Out_opt_ PTimeStamp ptsExpiry);
273
277 _In_opt_ SEC_WCHAR *pszPrincipal,
278 _In_ SEC_WCHAR *pszPackage,
279 _In_ ULONG fCredentialsUse,
280 _In_opt_ PLUID pvLogonID,
281 _In_opt_ PVOID pAuthData,
282 _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
283 _In_opt_ PVOID pvGetKeyArgument,
284 _Out_ PCredHandle phCredential,
285 _Out_opt_ PTimeStamp ptsExpiry);
286
287#define AcquireCredentialsHandle WINELIB_NAME_AW(AcquireCredentialsHandle)
288
289/* flags for fCredentialsUse */
290#define SECPKG_CRED_INBOUND 0x00000001
291#define SECPKG_CRED_OUTBOUND 0x00000002
292#define SECPKG_CRED_BOTH (SECPKG_CRED_INBOUND | SECPKG_CRED_OUTBOUND)
293#define SECPKG_CRED_DEFAULT 0x00000004
294#define SECPKG_CRED_RESERVED 0xf0000000
295
302#define ACQUIRE_CREDENTIALS_HANDLE_FN WINELIB_NAME_AW(ACQUIRE_CREDENTIALS_HANDLE_FN_)
303
305
307
311 _In_ PCredHandle phCredential);
312
313#define FreeCredentialHandle FreeCredentialsHandle
314
316
320 _In_opt_ PCredHandle phCredential,
321 _In_opt_ PCtxtHandle phContext,
322 _In_opt_ SEC_CHAR *pszTargetName,
323 _In_ ULONG fContextReq,
325 _In_ ULONG TargetDataRep,
328 _Inout_opt_ PCtxtHandle phNewContext,
330 _Out_ ULONG *pfContextAttr,
331 _Out_opt_ PTimeStamp ptsExpiry);
332
336 _In_opt_ PCredHandle phCredential,
337 _In_opt_ PCtxtHandle phContext,
338 _In_opt_ SEC_WCHAR *pszTargetName,
339 _In_ ULONG fContextReq,
341 _In_ ULONG TargetDataRep,
344 _Inout_opt_ PCtxtHandle phNewContext,
346 _Out_ ULONG *pfContextAttr,
347 _Out_opt_ PTimeStamp ptsExpiry);
348
349#define InitializeSecurityContext WINELIB_NAME_AW(InitializeSecurityContext)
350
354 ULONG *, PTimeStamp);
358 ULONG *, PTimeStamp);
359#define INITIALIZE_SECURITY_CONTEXT_FN WINELIB_NAME_AW(INITIALIZE_SECURITY_CONTEXT_FN_)
360
361/* flags for InitializeSecurityContext fContextReq and pfContextAttr */
362#define ISC_REQ_DELEGATE 0x00000001
363#define ISC_REQ_MUTUAL_AUTH 0x00000002
364#define ISC_REQ_REPLAY_DETECT 0x00000004
365#define ISC_REQ_SEQUENCE_DETECT 0x00000008
366#define ISC_REQ_CONFIDENTIALITY 0x00000010
367#define ISC_REQ_USE_SESSION_KEY 0x00000020
368#define ISC_REQ_PROMPT_FOR_CREDS 0x00000040
369#define ISC_REQ_USE_SUPPLIED_CREDS 0x00000080
370#define ISC_REQ_ALLOCATE_MEMORY 0x00000100
371#define ISC_REQ_USE_DCE_STYLE 0x00000200
372#define ISC_REQ_DATAGRAM 0x00000400
373#define ISC_REQ_CONNECTION 0x00000800
374#define ISC_REQ_CALL_LEVEL 0x00001000
375#define ISC_REQ_FRAGMENT_SUPPLIED 0x00002000
376#define ISC_REQ_EXTENDED_ERROR 0x00004000
377#define ISC_REQ_STREAM 0x00008000
378#define ISC_REQ_INTEGRITY 0x00010000
379#define ISC_REQ_IDENTIFY 0x00020000
380#define ISC_REQ_NULL_SESSION 0x00040000
381#define ISC_REQ_MANUAL_CRED_VALIDATION 0x00080000
382#define ISC_REQ_RESERVED1 0x00100000
383#define ISC_REQ_FRAGMENT_TO_FIT 0x00200000
384
385#define ISC_RET_DELEGATE 0x00000001
386#define ISC_RET_MUTUAL_AUTH 0x00000002
387#define ISC_RET_REPLAY_DETECT 0x00000004
388#define ISC_RET_SEQUENCE_DETECT 0x00000008
389#define ISC_RET_CONFIDENTIALITY 0x00000010
390#define ISC_RET_USE_SESSION_KEY 0x00000020
391#define ISC_RET_USED_COLLECTED_CREDS 0x00000040
392#define ISC_RET_USED_SUPPLIED_CREDS 0x00000080
393#define ISC_RET_ALLOCATED_MEMORY 0x00000100
394#define ISC_RET_USED_DCE_STYLE 0x00000200
395#define ISC_RET_DATAGRAM 0x00000400
396#define ISC_RET_CONNECTION 0x00000800
397#define ISC_RET_INTERMEDIATE_RETURN 0x00001000
398#define ISC_RET_CALL_LEVEL 0x00002000
399#define ISC_RET_EXTENDED_ERROR 0x00004000
400#define ISC_RET_STREAM 0x00008000
401#define ISC_RET_INTEGRITY 0x00010000
402#define ISC_RET_IDENTIFY 0x00020000
403#define ISC_RET_NULL_SESSION 0x00040000
404#define ISC_RET_MANUAL_CRED_VALIDATION 0x00080000
405#define ISC_RET_RESERVED1 0x00100000
406#define ISC_RET_FRAGMENT_ONLY 0x00200000
407
411 _In_opt_ PCredHandle phCredential,
412 _In_opt_ PCtxtHandle phContext,
414 _In_ ULONG fContextReq,
415 _In_ ULONG TargetDataRep,
416 _Inout_opt_ PCtxtHandle phNewContext,
418 _Out_ ULONG *pfContextAttr,
419 _Out_opt_ PTimeStamp ptsExpiry);
420
424
425/* flags for AcceptSecurityContext fContextReq and pfContextAttr */
426#define ASC_REQ_DELEGATE 0x00000001
427#define ASC_REQ_MUTUAL_AUTH 0x00000002
428#define ASC_REQ_REPLAY_DETECT 0x00000004
429#define ASC_REQ_SEQUENCE_DETECT 0x00000008
430#define ASC_REQ_CONFIDENTIALITY 0x00000010
431#define ASC_REQ_USE_SESSION_KEY 0x00000020
432#define ASC_REQ_ALLOCATE_MEMORY 0x00000100
433#define ASC_REQ_USE_DCE_STYLE 0x00000200
434#define ASC_REQ_DATAGRAM 0x00000400
435#define ASC_REQ_CONNECTION 0x00000800
436#define ASC_REQ_CALL_LEVEL 0x00001000
437#define ASC_REQ_FRAGMENT_SUPPLIED 0x00002000
438#define ASC_REQ_EXTENDED_ERROR 0x00008000
439#define ASC_REQ_STREAM 0x00010000
440#define ASC_REQ_INTEGRITY 0x00020000
441#define ASC_REQ_LICENSING 0x00040000
442#define ASC_REQ_IDENTIFY 0x00080000
443#define ASC_REQ_ALLOW_NULL_SESSION 0x00100000
444#define ASC_REQ_ALLOW_NON_USER_LOGONS 0x00200000
445#define ASC_REQ_ALLOW_CONTEXT_REPLAY 0x00400000
446#define ASC_REQ_FRAGMENT_TO_FIT 0x00800000
447#define ASC_REQ_FRAGMENT_NO_TOKEN 0x01000000
448
449#define ASC_RET_DELEGATE 0x00000001
450#define ASC_RET_MUTUAL_AUTH 0x00000002
451#define ASC_RET_REPLAY_DETECT 0x00000004
452#define ASC_RET_SEQUENCE_DETECT 0x00000008
453#define ASC_RET_CONFIDENTIALITY 0x00000010
454#define ASC_RET_USE_SESSION_KEY 0x00000020
455#define ASC_RET_ALLOCATED_MEMORY 0x00000100
456#define ASC_RET_USED_DCE_STYLE 0x00000200
457#define ASC_RET_DATAGRAM 0x00000400
458#define ASC_RET_CONNECTION 0x00000800
459#define ASC_RET_CALL_LEVEL 0x00002000
460#define ASC_RET_THIRD_LEG_FAILED 0x00004000
461#define ASC_RET_EXTENDED_ERROR 0x00008000
462#define ASC_RET_STREAM 0x00010000
463#define ASC_RET_INTEGRITY 0x00020000
464#define ASC_RET_LICENSING 0x00040000
465#define ASC_RET_IDENTIFY 0x00080000
466#define ASC_RET_NULL_SESSION 0x00100000
467#define ASC_RET_ALLOW_NON_USER_LOGONS 0x00200000
468#define ASC_RET_ALLOW_CONTEXT_REPLAY 0x00400000
469#define ASC_RET_FRAGMENT_ONLY 0x00800000
470#define ASC_RET_NO_TOKEN 0x01000000
471
472/*Vvalues for TargetDataRep */
473#define SECURITY_NATIVE_DREP 0x00000010
474#define SECURITY_NETWORK_DREP 0x00000000
475
479 _In_ PCtxtHandle phContext,
480 _In_ PSecBufferDesc pToken);
481
484
486
488
492 _In_ PCtxtHandle phContext,
493 _In_ PSecBufferDesc pInput);
494
497
501 _In_ PCtxtHandle phContext,
502 _In_ ULONG ulAttribute,
503 _Out_ void *pBuffer);
504
508 _In_ PCtxtHandle phContext,
509 _In_ ULONG ulAttribute,
510 _Out_ void *pBuffer);
511
512#define QueryContextAttributes WINELIB_NAME_AW(QueryContextAttributes)
513
515 ULONG, void *);
517 ULONG, void *);
518#define QUERY_CONTEXT_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CONTEXT_ATTRIBUTES_FN_)
519
520/* values for QueryContextAttributes/SetContextAttributes ulAttribute */
521#define SECPKG_ATTR_SIZES 0
522#define SECPKG_ATTR_NAMES 1
523#define SECPKG_ATTR_LIFESPAN 2
524#define SECPKG_ATTR_DCE_INFO 3
525#define SECPKG_ATTR_STREAM_SIZES 4
526#define SECPKG_ATTR_KEY_INFO 5
527#define SECPKG_ATTR_AUTHORITY 6
528#define SECPKG_ATTR_PROTO_INFO 7
529#define SECPKG_ATTR_PASSWORD_EXPIRY 8
530#define SECPKG_ATTR_SESSION_KEY 9
531#define SECPKG_ATTR_PACKAGE_INFO 10
532#define SECPKG_ATTR_USER_FLAGS 11
533#define SECPKG_ATTR_NEGOTIATION_INFO 12
534#define SECPKG_ATTR_NATIVE_NAMES 13
535#define SECPKG_ATTR_FLAGS 14
536#define SECPKG_ATTR_USE_VALIDATED 15
537#define SECPKG_ATTR_CREDENTIAL_NAME 16
538#define SECPKG_ATTR_TARGET_INFORMATION 17
539#define SECPKG_ATTR_ACCESS_TOKEN 18
540#define SECPKG_ATTR_TARGET 19
541#define SECPKG_ATTR_AUTHENTICATION_ID 20
542#define SECPKG_ATTR_LOGOFF_TIME 21
543#define SECPKG_ATTR_NEGO_KEYS 22
544#define SECPKG_ATTR_PROMPTING_NEEDED 24
545#define SECPKG_ATTR_UNIQUE_BINDINGS 25
546#define SECPKG_ATTR_ENDPOINT_BINDINGS 26
547#define SECPKG_ATTR_CLIENT_SPECIFIED_TARGET 27
548#define SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS 30
549#define SECPKG_ATTR_NEGO_PKG_INFO 31
550#define SECPKG_ATTR_NEGO_STATUS 32
551#define SECPKG_ATTR_CONTEXT_DELETED 33
552
553#define SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES 128
554#define SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS 0x1
555#define SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM 0x2
556
557/* types for QueryContextAttributes/SetContextAttributes */
558
560{
566
568{
575
577{
580
582{
585
586#define SecPkgContext_Names WINELIB_NAME_AW(SecPkgContext_Names)
587#define PSecPkgContext_Names WINELIB_NAME_AW(PSecPkgContext_Names)
588
590{
594
596{
598 void *pPac;
600
602{
609
611{
618
619#define SecPkgContext_KeyInfo WINELIB_NAME_AW(SecPkgContext_KeyInfo)
620#define PSecPkgContext_KeyInfo WINELIB_NAME_AW(PSecPkgContext_KeyInfo)
621
623{
626
628{
631
632#define SecPkgContext_Authority WINELIB_NAME_AW(SecPkgContext_Authority)
633#define PSecPkgContext_Authority WINELIB_NAME_AW(PSecPkgContext_Authority)
634
636{
641
643{
648
649#define SecPkgContext_ProtoInfo WINELIB_NAME_AW(SecPkgContext_ProtoInfo)
650#define PSecPkgContext_ProtoInfo WINELIB_NAME_AW(PSecPkgContext_ProtoInfo)
651
653{
656
659 _Field_size_bytes_(SessionKeyLength) unsigned char *SessionKey;
661
663{
666
668{
671
672#define SecPkgContext_PackageInfo WINELIB_NAME_AW(SecPkgContext_PackageInfo)
673#define PSecPkgContext_PackageInfo WINELIB_NAME_AW(PSecPkgContext_PackageInfo)
674
676{
679
681{
684
686{
690
692{
696
697#define SecPkgContext_NegotiationInfo WINELIB_NAME_AW(SecPkgContext_NegotiationInfo)
698#define PSecPkgContext_NegotiationInfo WINELIB_NAME_AW(PSecPkgContext_NegotiationInfo)
699
700/* values for NegotiationState */
701#define SECPKG_NEGOTIATION_COMPLETE 0
702#define SECPKG_NEGOTIATION_OPTIMISTIC 1
703#define SECPKG_NEGOTIATION_IN_PROGRESS 2
704#define SECPKG_NEGOTIATION_DIRECT 3
705#define SECPKG_NEGOTIATION_TRY_MULTICRED 4
706
708{
712
714{
718
719#define SecPkgContext_NativeNames WINELIB_NAME_AW(SecPkgContext_NativeNames)
720#define PSecPkgContext_NativeNames WINELIB_NAME_AW(PSecPkgContext_NativeNames)
721
723{
727
729{
733
734#define SecPkgContext_CredentialName WINELIB_NAME_AW(SecPkgContext_CredentialName)
735#define PSecPkgContext_CredentialName WINELIB_NAME_AW(PSecPkgContext_CredentialName)
736
738{
741
743{
745 unsigned char *MarshalledTargetInfo;
747
749{
751 char *AuthzID;
753
755{
757 char *Target;
759
761{
765
770 _In_ PCtxtHandle phContext);
771
773 (PCtxtHandle);
774
776
778
782 _In_ PCtxtHandle phContext,
783 _In_ ULONG fQOP,
784 _In_ PSecBufferDesc pMessage,
785 _In_ ULONG MessageSeqNo);
786
789
793 _In_ PCtxtHandle phContext,
794 _In_ PSecBufferDesc pMessage,
795 _In_ ULONG MessageSeqNo,
796 _Out_ PULONG pfQOP);
797
800
804 _In_ SEC_CHAR *pszPackageName,
805 _Outptr_ PSecPkgInfoA *ppPackageInfo);
806
810 _In_ SEC_WCHAR *pszPackageName,
811 _Outptr_ PSecPkgInfoW *ppPackageInfo);
812
813#define QuerySecurityPackageInfo WINELIB_NAME_AW(QuerySecurityPackageInfo)
814
816 (SEC_CHAR *, PSecPkgInfoA *);
818 (SEC_WCHAR *, PSecPkgInfoW *);
819#define QUERY_SECURITY_PACKAGE_INFO_FN WINELIB_NAME_AW(QUERY_SECURITY_PACKAGE_INFO_FN_)
820
824 _In_ PCtxtHandle phContext,
825 _In_ ULONG fFlags,
826 _Out_ PSecBuffer pPackedContext,
827 _Out_ void **pToken);
828
830 ULONG, PSecBuffer, void **);
831
832/* values for ExportSecurityContext fFlags */
833#define SECPKG_CONTEXT_EXPORT_RESET_NEW 0x00000001
834#define SECPKG_CONTEXT_EXPORT_DELETE_OLD 0x00000002
835
839 _In_ SEC_CHAR *pszPackage,
840 _In_ PSecBuffer pPackedContext,
841 _In_ void *Token,
842 _Out_ PCtxtHandle phContext);
843
847 _In_ SEC_WCHAR *pszPackage,
848 _In_ PSecBuffer pPackedContext,
849 _In_ void *Token,
850 _Out_ PCtxtHandle phContext);
851
852#define ImportSecurityContext WINELIB_NAME_AW(ImportSecurityContext)
853
855 PSecBuffer, void *, PCtxtHandle);
857 PSecBuffer, void *, PCtxtHandle);
858#define IMPORT_SECURITY_CONTEXT_FN WINELIB_NAME_AW(IMPORT_SECURITY_CONTEXT_FN_)
859
863 _In_ PCredHandle hCredentials,
864 _In_opt_ SEC_CHAR *pszPrincipal,
865 _In_ SEC_CHAR *pszPackage,
866 _In_ ULONG fCredentialUse,
867 _In_opt_ void *pAuthData,
868 _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
869 _In_opt_ void *pvGetKeyArgument,
870 _Out_opt_ PTimeStamp ptsExpiry);
871
875 _In_ PCredHandle hCredentials,
876 _In_opt_ SEC_WCHAR *pszPrincipal,
877 _In_ SEC_WCHAR *pszPackage,
878 _In_ ULONG fCredentialUse,
879 _In_opt_ void *pAuthData,
880 _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
881 _In_opt_ void *pvGetKeyArgument,
882 _Out_opt_ PTimeStamp ptsExpiry);
883
884#define AddCredentials WINELIB_NAME_AW(AddCredentials)
885
887 SEC_CHAR *, SEC_CHAR *, ULONG, void *, SEC_GET_KEY_FN, void *,
888 PTimeStamp);
890 SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *,
891 PTimeStamp);
892
896 _In_ PCtxtHandle phContext,
898
900 (PCtxtHandle, HANDLE *);
901
905 _In_ PCtxtHandle phContext,
906 _In_ ULONG fQOP,
907 _In_ PSecBufferDesc pMessage,
908 _In_ ULONG MessageSeqNo);
909
913 _In_ PCtxtHandle phContext,
914 _In_ PSecBufferDesc pMessage,
915 _In_ ULONG MessageSeqNo,
916 _Out_opt_ PULONG pfQOP);
917
918/* values for EncryptMessage fQOP */
919#define SECQOP_WRAP_NO_ENCRYPT 0x80000001
920
925
929 _In_ PCtxtHandle phContext,
930 _In_ ULONG ulAttribute,
931 _In_reads_bytes_(cbBuffer) void *pBuffer,
932 _In_ ULONG cbBuffer);
933
937 _In_ PCtxtHandle phContext,
938 _In_ ULONG ulAttribute,
939 _In_reads_bytes_(cbBuffer) void *pBuffer,
940 _In_ ULONG cbBuffer);
941
942#define SetContextAttributes WINELIB_NAME_AW(SetContextAttributes)
943
945 ULONG, void *, ULONG);
947 ULONG, void *, ULONG);
948
949#define SECURITY_ENTRYPOINT_ANSIA "InitSecurityInterfaceA"
950#define SECURITY_ENTRYPOINT_ANSIW "InitSecurityInterfaceW"
951#define SECURITY_ENTRYPOINT_ANSI WINELIB_NAME_AW(SECURITY_ENTRYPOINT_ANSI)
952
954{
984
985/* No, it really is FreeCredentialsHandle, see the thread beginning
986 * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a
987 * discovery discussion. */
989{
1019
1020#define SecurityFunctionTable WINELIB_NAME_AW(SecurityFunctionTable)
1021#define PSecurityFunctionTable WINELIB_NAME_AW(PSecurityFunctionTable)
1022
1023#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1
1024#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2
1025
1028#define InitSecurityInterface WINELIB_NAME_AW(InitSecurityInterface)
1029
1032#define INIT_SECURITY_INTERFACE WINELIB_NAME_AW(INIT_SECURITY_INTERFACE_)
1033
1034#ifdef __cplusplus
1035}
1036#endif
1037
1038#endif /* ndef __WINE_SSPI_H__ */
@ Reserved2
Definition: bcd.h:202
@ Reserved1
Definition: bcd.h:201
struct _LUID * PLUID
Status
Definition: gdiplustypes.h:25
#define _Out_opt_
Definition: ms_sal.h:346
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
#define _Inout_
Definition: ms_sal.h:378
#define _Check_return_
Definition: ms_sal.h:557
#define _Outptr_
Definition: ms_sal.h:427
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
PVOID *typedef PSecBuffer
Definition: ntsecpkg.h:440
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
SECURITY_STATUS SEC_ENTRY AcceptSecurityContext(_In_opt_ PCredHandle phCredential, _In_opt_ PCtxtHandle phContext, _In_opt_ PSecBufferDesc pInput, _In_ ULONG fContextReq, _In_ ULONG TargetDataRep, _Inout_opt_ PCtxtHandle phNewContext, _Inout_opt_ PSecBufferDesc pOutput, _Out_ ULONG *pfContextAttr, _Out_opt_ PTimeStamp ptsExpiry)
SECURITY_STATUS(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle, ULONG, void *, ULONG)
Definition: sspi.h:944
SECURITY_STATUS(SEC_ENTRY * ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle, PCtxtHandle, PSecBufferDesc, ULONG, ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp)
Definition: sspi.h:421
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG, PSecPkgInfoW *)
Definition: sspi.h:208
struct _SecPkgContext_StreamSizes SecPkgContext_StreamSizes
struct _SecPkgContext_Flags * PSecPkgContext_Flags
SECURITY_STATUS SEC_ENTRY ImportSecurityContextW(_In_ SEC_WCHAR *pszPackage, _In_ PSecBuffer pPackedContext, _In_ void *Token, _Out_ PCtxtHandle phContext)
SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(_Out_ PULONG pcPackages, _Outptr_ PSecPkgInfoA *ppPackageInfo)
struct _SecPkgContext_CredentialNameA * PSecPkgContext_CredentialNameA
struct _SecPkgInfoW SecPkgInfoW
struct _SecPkgContext_NegotiationInfoA SecPkgContext_NegotiationInfoA
SECURITY_STATUS(SEC_ENTRY * COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:482
LONG SECURITY_STATUS
Definition: sspi.h:34
SECURITY_STATUS(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, void *)
Definition: sspi.h:516
struct _SecPkgContext_PackageInfoW * PSecPkgContext_PackageInfoW
struct _SecPkgContext_ProtoInfoW * PSecPkgContext_ProtoInfoW
SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(_In_ PCredHandle phCredential, _In_ ULONG ulAttribute, _Inout_ void *pBuffer)
struct _SecPkgInfoW * PSecPkgInfoW
SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(_In_ SEC_CHAR *pszPackageName, _Outptr_ PSecPkgInfoA *ppPackageInfo)
struct _SecPkgContext_PackageInfoA SecPkgContext_PackageInfoA
struct _SecPkgContext_AuthzID * PSecPkgContext_AuthzID
SECURITY_STATUS SEC_ENTRY AddCredentialsW(_In_ PCredHandle hCredentials, _In_opt_ SEC_WCHAR *pszPrincipal, _In_ SEC_WCHAR *pszPackage, _In_ ULONG fCredentialUse, _In_opt_ void *pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn, _In_opt_ void *pvGetKeyArgument, _Out_opt_ PTimeStamp ptsExpiry)
struct _SecPkgContext_NativeNamesA * PSecPkgContext_NativeNamesA
SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(_Out_ PULONG pcPackages, _Outptr_ PSecPkgInfoW *ppPackageInfo)
ULONG SEC_ENTRY SspiPromptForCredentialsW(_In_ PCWSTR, _In_opt_ void *, _In_ ULONG, _In_ PCWSTR, _In_opt_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE, _Outptr_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE *, _Inout_opt_ int *, _In_ ULONG)
SECURITY_STATUS(SEC_ENTRY * DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:487
SECURITY_STATUS SEC_ENTRY InitializeSecurityContextW(_In_opt_ PCredHandle phCredential, _In_opt_ PCtxtHandle phContext, _In_opt_ SEC_WCHAR *pszTargetName, _In_ ULONG fContextReq, _In_ ULONG Reserved1, _In_ ULONG TargetDataRep, _In_opt_ PSecBufferDesc pInput, _In_ ULONG Reserved2, _Inout_opt_ PCtxtHandle phNewContext, _Inout_opt_ PSecBufferDesc pOutput, _Out_ ULONG *pfContextAttr, _Out_opt_ PTimeStamp ptsExpiry)
struct _SecPkgContext_NamesW * PSecPkgContext_NamesW
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_CONTEXT_TOKEN_FN)(PCtxtHandle, HANDLE *)
Definition: sspi.h:900
SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(_In_ SEC_WCHAR *pszPackageName, _Outptr_ PSecPkgInfoW *ppPackageInfo)
struct _SecPkgContext_NegotiationInfoW SecPkgContext_NegotiationInfoW
SECURITY_STATUS(SEC_ENTRY * VERIFY_SIGNATURE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:798
SECURITY_STATUS(SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_W)(SEC_WCHAR *, SEC_WCHAR *, ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID, PCredHandle, PTimeStamp)
Definition: sspi.h:299
SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(_In_ PCredHandle phCredential)
Definition: stubs.c:143
struct _SecPkgContext_NativeNamesA SecPkgContext_NativeNamesA
struct _SecPkgCredentials_NamesA SecPkgCredentials_NamesA
SECURITY_INTEGER * PTimeStamp
Definition: sspi.h:78
#define SEC_ENTRY
Definition: sspi.h:27
SECURITY_STATUS(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, void *, ULONG)
Definition: sspi.h:946
SECURITY_STATUS SEC_ENTRY MakeSignature(_In_ PCtxtHandle phContext, _In_ ULONG fQOP, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo)
Definition: stubs.c:256
struct _SecPkgContext_KeyInfoA * PSecPkgContext_KeyInfoA
SECURITY_STATUS(SEC_ENTRY * ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:921
struct _SecBufferDesc SecBufferDesc
SECURITY_STATUS SEC_ENTRY VerifySignature(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo, _Out_ PULONG pfQOP)
Definition: stubs.c:419
SECURITY_STATUS SEC_ENTRY SetContextAttributesA(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _In_reads_bytes_(cbBuffer) void *pBuffer, _In_ ULONG cbBuffer)
struct _SecPkgContext_SessionKey SecPkgContext_SessionKey
struct _SECURITY_INTEGER SECURITY_INTEGER
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_W)(SEC_WCHAR *, PSecBuffer, void *, PCtxtHandle)
Definition: sspi.h:856
void * PSEC_WINNT_AUTH_IDENTITY_OPAQUE
Definition: sspi.h:96
SECURITY_STATUS SEC_ENTRY FreeContextBuffer(_Inout_ PVOID pv)
Definition: stubs.c:134
SECURITY_STATUS SEC_ENTRY SetContextAttributesW(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _In_reads_bytes_(cbBuffer) void *pBuffer, _In_ ULONG cbBuffer)
struct _SecPkgContext_PackageInfoW SecPkgContext_PackageInfoW
struct _SecPkgInfoA SecPkgInfoA
PSecurityFunctionTableW SEC_ENTRY InitSecurityInterfaceW(void)
Definition: sspi.c:132
struct _SecPkgContext_SessionKey * PSecPkgContext_SessionKey
struct _SecPkgContext_CredentialNameA SecPkgContext_CredentialNameA
SECURITY_STATUS(SEC_ENTRY * ADD_CREDENTIALS_FN_A)(PCredHandle, SEC_CHAR *, SEC_CHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, PTimeStamp)
Definition: sspi.h:886
SECURITY_STATUS(SEC_ENTRY * REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:777
struct _SecPkgContext_Bindings SecPkgContext_Bindings
SECURITY_STATUS(SEC_ENTRY * FREE_CONTEXT_BUFFER_FN)(_Inout_ PVOID)
Definition: sspi.h:306
CHAR SEC_CHAR
Definition: sspi.h:30
struct _SecPkgContext_PasswordExpiry SecPkgContext_PasswordExpiry
SEC_CHAR * SECURITY_PSTR
Definition: sspi.h:45
SECURITY_STATUS SEC_ENTRY EncryptMessage(_In_ PCtxtHandle phContext, _In_ ULONG fQOP, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo)
SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(_In_ PCredHandle phCredential, _In_ ULONG ulAttribute, _Inout_ void *pBuffer)
SECURITY_STATUS(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle, ULONG, PVOID)
Definition: sspi.h:231
SECURITY_STATUS SEC_ENTRY RevertSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:317
SECURITY_STATUS(SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_A)(SEC_CHAR *, SEC_CHAR *, ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID, PCredHandle, PTimeStamp)
Definition: sspi.h:296
struct _SecPkgContext_AuthorityW SecPkgContext_AuthorityW
struct _SecPkgContext_TargetInformation * PSecPkgContext_TargetInformation
SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:89
SECURITY_STATUS(SEC_ENTRY * IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:773
struct _SecPkgContext_AuthorityA SecPkgContext_AuthorityA
struct _SecPkgContext_NegotiationInfoA * PSecPkgContext_NegotiationInfoA
SECURITY_STATUS(SEC_ENTRY * FREE_CREDENTIALS_HANDLE_FN)(PCredHandle)
Definition: sspi.h:315
SecHandle CtxtHandle
Definition: sspi.h:70
SECURITY_STATUS(SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_A)(PCredHandle, PCtxtHandle, SEC_CHAR *, ULONG, ULONG, ULONG, PSecBufferDesc, ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp)
Definition: sspi.h:352
struct _SecPkgContext_TargetInformation SecPkgContext_TargetInformation
struct _SecPkgContext_Sizes * PSecPkgContext_Sizes
struct _SecPkgContext_AccessToken SecPkgContext_AccessToken
struct _SecHandle * PSecHandle
struct _SecPkgContext_ProtoInfoW SecPkgContext_ProtoInfoW
struct _SecPkgContext_PackageInfoA * PSecPkgContext_PackageInfoA
_Check_return_ SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:178
struct _SECURITY_FUNCTION_TABLE_A SecurityFunctionTableA
struct _SecPkgContext_NamesA SecPkgContext_NamesA
SECURITY_STATUS SEC_ENTRY ApplyControlToken(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pInput)
Definition: stubs.c:72
SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(_In_ PCtxtHandle phContext, _Out_ HANDLE *phToken)
Definition: stubs.c:297
SECURITY_STATUS SEC_ENTRY CompleteAuthToken(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pToken)
SECURITY_STATUS SEC_ENTRY InitializeSecurityContextA(_In_opt_ PCredHandle phCredential, _In_opt_ PCtxtHandle phContext, _In_opt_ SEC_CHAR *pszTargetName, _In_ ULONG fContextReq, _In_ ULONG Reserved1, _In_ ULONG TargetDataRep, _In_opt_ PSecBufferDesc pInput, _In_ ULONG Reserved2, _Inout_opt_ PCtxtHandle phNewContext, _Inout_opt_ PSecBufferDesc pOutput, _Out_ ULONG *pfContextAttr, _Out_opt_ PTimeStamp ptsExpiry)
struct _SECURITY_FUNCTION_TABLE_A * PSecurityFunctionTableA
struct _SecPkgCredentials_NamesW * PSecPkgCredentials_NamesW
void(SEC_ENTRY * SEC_GET_KEY_FN)(void *Arg, void *Principal, ULONG KeyVer, void **Key, SECURITY_STATUS *Status)
Definition: sspi.h:189
struct _SecPkgContext_UserFlags * PSecPkgContext_UserFlags
struct _SecPkgContext_AuthorityA * PSecPkgContext_AuthorityA
struct _SecPkgContext_Flags SecPkgContext_Flags
struct _SecPkgCredentials_NamesW SecPkgCredentials_NamesW
struct _SecPkgContext_Lifespan SecPkgContext_Lifespan
struct _SecPkgContext_KeyInfoW SecPkgContext_KeyInfoW
struct _SecPkgContext_ProtoInfoA * PSecPkgContext_ProtoInfoA
SecHandle CredHandle
Definition: sspi.h:67
struct _SECURITY_FUNCTION_TABLE_W * PSecurityFunctionTableW
struct _SecPkgContext_AccessToken * PSecPkgContext_AccessToken
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR *, PSecPkgInfoW *)
Definition: sspi.h:818
struct _SecPkgInfoA * PSecPkgInfoA
struct _SecPkgContext_ProtoInfoA SecPkgContext_ProtoInfoA
struct _SecPkgContext_CredentialNameW SecPkgContext_CredentialNameW
SECURITY_STATUS(SEC_ENTRY * EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle, ULONG, PSecBuffer, void **)
Definition: sspi.h:829
struct _SecPkgContext_NamesA * PSecPkgContext_NamesA
PSecurityFunctionTableW(SEC_ENTRY * INIT_SECURITY_INTERFACE_W)(void)
Definition: sspi.h:1031
SECURITY_STATUS SEC_ENTRY AddCredentialsA(_In_ PCredHandle hCredentials, _In_opt_ SEC_CHAR *pszPrincipal, _In_ SEC_CHAR *pszPackage, _In_ ULONG fCredentialUse, _In_opt_ void *pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn, _In_opt_ void *pvGetKeyArgument, _Out_opt_ PTimeStamp ptsExpiry)
CONST SEC_CHAR * SECURITY_PCSTR
Definition: sspi.h:46
struct _SecPkgCredentials_NamesA * PSecPkgCredentials_NamesA
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_A)(SEC_CHAR *, PSecBuffer, void *, PCtxtHandle)
Definition: sspi.h:854
SECURITY_STATUS(SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_W)(PCredHandle, PCtxtHandle, SEC_WCHAR *, ULONG, ULONG, ULONG, PSecBufferDesc, ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp)
Definition: sspi.h:356
struct _SecPkgContext_NativeNamesW * PSecPkgContext_NativeNamesW
SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _Out_ void *pBuffer)
struct _SecPkgContext_NamesW SecPkgContext_NamesW
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG, PSecPkgInfoA *)
Definition: sspi.h:206
PSecurityFunctionTableA(SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void)
Definition: sspi.h:1030
struct _SecPkgContext_Bindings * PSecPkgContext_Bindings
struct _SecPkgContext_UserFlags SecPkgContext_UserFlags
PSecHandle PCtxtHandle
Definition: sspi.h:71
struct _SecPkgContext_PasswordExpiry * PSecPkgContext_PasswordExpiry
struct _SecPkgContext_Target SecPkgContext_Target
struct _SecPkgContext_NativeNamesW SecPkgContext_NativeNamesW
SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleA(_In_opt_ SEC_CHAR *pszPrincipal, _In_ SEC_CHAR *pszPackage, _In_ ULONG fCredentialsUse, _In_opt_ PLUID pvLogonID, _In_opt_ PVOID pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn, _In_opt_ PVOID pvGetKeyArgument, _Out_ PCredHandle phCredential, _Out_opt_ PTimeStamp ptsExpiry)
struct _SecPkgContext_AuthzID SecPkgContext_AuthzID
struct _SecPkgContext_AuthorityW * PSecPkgContext_AuthorityW
struct _SecPkgContext_KeyInfoA SecPkgContext_KeyInfoA
struct _SECURITY_INTEGER * PSECURITY_INTEGER
SECURITY_STATUS(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle, ULONG, void *)
Definition: sspi.h:514
struct _SecPkgContext_DceInfo SecPkgContext_DceInfo
SECURITY_STATUS SEC_ENTRY ImportSecurityContextA(_In_ SEC_CHAR *pszPackage, _In_ PSecBuffer pPackedContext, _In_ void *Token, _Out_ PCtxtHandle phContext)
PSecHandle PCredHandle
Definition: sspi.h:68
struct _SecBuffer SecBuffer
struct _SecHandle SecHandle
struct _SecPkgContext_Sizes SecPkgContext_Sizes
SECURITY_STATUS SEC_ENTRY ExportSecurityContext(_In_ PCtxtHandle phContext, _In_ ULONG fFlags, _Out_ PSecBuffer pPackedContext, _Out_ void **pToken)
struct _SECURITY_STRING SECURITY_STRING
SECURITY_STATUS(SEC_ENTRY * ADD_CREDENTIALS_FN_W)(PCredHandle, SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, PTimeStamp)
Definition: sspi.h:889
struct _SecPkgContext_KeyInfoW * PSecPkgContext_KeyInfoW
WCHAR SEC_WCHAR
Definition: sspi.h:29
SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _Out_ void *pBuffer)
struct _SECURITY_FUNCTION_TABLE_W SecurityFunctionTableW
struct _SecPkgContext_NegotiationInfoW * PSecPkgContext_NegotiationInfoW
struct _SecPkgContext_StreamSizes * PSecPkgContext_StreamSizes
struct _SecPkgContext_Lifespan * PSecPkgContext_Lifespan
struct _SecBufferDesc * PSecBufferDesc
Definition: main.c:41
struct _SecPkgContext_DceInfo * PSecPkgContext_DceInfo
SECURITY_STATUS(SEC_ENTRY * DECRYPT_MESSAGE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:923
struct _SecBuffer * PSecBuffer
struct _SEC_CHANNEL_BINDINGS SEC_CHANNEL_BINDINGS
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_A)(SEC_CHAR *, PSecPkgInfoA *)
Definition: sspi.h:816
SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleW(_In_opt_ SEC_WCHAR *pszPrincipal, _In_ SEC_WCHAR *pszPackage, _In_ ULONG fCredentialsUse, _In_opt_ PLUID pvLogonID, _In_opt_ PVOID pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn, _In_opt_ PVOID pvGetKeyArgument, _Out_ PCredHandle phCredential, _Out_opt_ PTimeStamp ptsExpiry)
struct _SecPkgContext_Target * PSecPkgContext_Target
struct _SECURITY_STRING * PSECURITY_STRING
SECURITY_STATUS(SEC_ENTRY * MAKE_SIGNATURE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:787
PSecurityFunctionTableA SEC_ENTRY InitSecurityInterfaceA(void)
Definition: sspi.c:123
struct _SEC_CHANNEL_BINDINGS * PSEC_CHANNEL_BINDINGS
SECURITY_STATUS SEC_ENTRY DecryptMessage(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo, _Out_opt_ PULONG pfQOP)
struct _SecPkgContext_CredentialNameW * PSecPkgContext_CredentialNameW
SECURITY_STATUS(SEC_ENTRY * APPLY_CONTROL_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:495
SECURITY_INTEGER TimeStamp
Definition: sspi.h:78
SECURITY_STATUS(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_A)(PCredHandle, ULONG, PVOID)
Definition: sspi.h:229
PVOID pBuffer
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
Definition: sspi.h:964
APPLY_CONTROL_TOKEN_FN ApplyControlToken
Definition: sspi.h:965
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
Definition: sspi.h:971
QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA
Definition: sspi.h:972
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
Definition: sspi.h:979
ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA
Definition: sspi.h:958
INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA
Definition: sspi.h:961
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
Definition: sspi.h:975
IMPORT_SECURITY_CONTEXT_FN_A ImportSecurityContextA
Definition: sspi.h:976
ENCRYPT_MESSAGE_FN EncryptMessage
Definition: sspi.h:980
VERIFY_SIGNATURE_FN VerifySignature
Definition: sspi.h:970
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
Definition: sspi.h:967
MAKE_SIGNATURE_FN MakeSignature
Definition: sspi.h:969
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
Definition: sspi.h:968
ADD_CREDENTIALS_FN_A AddCredentialsA
Definition: sspi.h:977
ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA
Definition: sspi.h:956
QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA
Definition: sspi.h:957
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
Definition: sspi.h:963
SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA
Definition: sspi.h:982
DECRYPT_MESSAGE_FN DecryptMessage
Definition: sspi.h:981
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
Definition: sspi.h:962
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
Definition: sspi.h:959
QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA
Definition: sspi.h:966
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
Definition: sspi.h:997
INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW
Definition: sspi.h:996
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
Definition: sspi.h:999
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
Definition: sspi.h:1014
ENCRYPT_MESSAGE_FN EncryptMessage
Definition: sspi.h:1015
VERIFY_SIGNATURE_FN VerifySignature
Definition: sspi.h:1005
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
Definition: sspi.h:1010
QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW
Definition: sspi.h:1007
ADD_CREDENTIALS_FN_W AddCredentialsW
Definition: sspi.h:1012
SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW
Definition: sspi.h:1017
ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW
Definition: sspi.h:993
DECRYPT_MESSAGE_FN DecryptMessage
Definition: sspi.h:1016
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
Definition: sspi.h:1006
ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW
Definition: sspi.h:991
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
Definition: sspi.h:998
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
Definition: sspi.h:994
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
Definition: sspi.h:1003
IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW
Definition: sspi.h:1011
MAKE_SIGNATURE_FN MakeSignature
Definition: sspi.h:1004
APPLY_CONTROL_TOKEN_FN ApplyControlToken
Definition: sspi.h:1000
QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW
Definition: sspi.h:1001
QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW
Definition: sspi.h:992
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
Definition: sspi.h:1002
ULONG LowPart
Definition: sspi.h:75
LONG HighPart
Definition: sspi.h:76
unsigned short MaximumLength
Definition: sspi.h:86
unsigned short Length
Definition: sspi.h:85
unsigned short * Buffer
Definition: sspi.h:87
ULONG dwInitiatorAddrType
Definition: sspi.h:235
ULONG cbAcceptorLength
Definition: sspi.h:239
ULONG dwApplicationDataOffset
Definition: sspi.h:242
ULONG cbInitiatorLength
Definition: sspi.h:236
ULONG dwInitiatorOffset
Definition: sspi.h:237
ULONG cbApplicationDataLength
Definition: sspi.h:241
ULONG dwAcceptorAddrType
Definition: sspi.h:238
ULONG dwAcceptorOffset
Definition: sspi.h:240
ULONG cBuffers
Definition: sspi.h:182
ULONG ulVersion
Definition: sspi.h:181
_Field_size_(cBuffers) PSecBuffer pBuffers
ULONG BufferType
Definition: sspi.h:154
_Field_size_bytes_(cbBuffer) void *pvBuffer
ULONG cbBuffer
Definition: sspi.h:153
ULONG_PTR dwLower
Definition: sspi.h:53
ULONG_PTR dwUpper
Definition: sspi.h:54
SEC_CHAR * sAuthorityName
Definition: sspi.h:624
SEC_WCHAR * sAuthorityName
Definition: sspi.h:629
SEC_CHANNEL_BINDINGS * Bindings
Definition: sspi.h:763
SEC_CHAR * sCredentialName
Definition: sspi.h:725
SEC_WCHAR * sCredentialName
Definition: sspi.h:731
ULONG SignatureAlgorithm
Definition: sspi.h:606
SEC_CHAR * sEncryptAlgorithmName
Definition: sspi.h:604
SEC_CHAR * sSignatureAlgorithmName
Definition: sspi.h:603
ULONG EncryptAlgorithm
Definition: sspi.h:607
SEC_WCHAR * sEncryptAlgorithmName
Definition: sspi.h:613
ULONG SignatureAlgorithm
Definition: sspi.h:615
ULONG EncryptAlgorithm
Definition: sspi.h:616
SEC_WCHAR * sSignatureAlgorithmName
Definition: sspi.h:612
TimeStamp tsStart
Definition: sspi.h:591
TimeStamp tsExpiry
Definition: sspi.h:592
SEC_CHAR * sUserName
Definition: sspi.h:578
SEC_WCHAR * sUserName
Definition: sspi.h:583
SEC_CHAR * sClientName
Definition: sspi.h:709
SEC_CHAR * sServerName
Definition: sspi.h:710
SEC_WCHAR * sClientName
Definition: sspi.h:715
SEC_WCHAR * sServerName
Definition: sspi.h:716
PSecPkgInfoA PackageInfo
Definition: sspi.h:687
PSecPkgInfoW PackageInfo
Definition: sspi.h:693
PSecPkgInfoA PackageInfo
Definition: sspi.h:664
PSecPkgInfoW PackageInfo
Definition: sspi.h:669
TimeStamp tsPasswordExpires
Definition: sspi.h:654
SEC_CHAR * sProtocolName
Definition: sspi.h:637
SEC_WCHAR * sProtocolName
Definition: sspi.h:644
_Field_size_bytes_(SessionKeyLength) unsigned char *SessionKey
ULONG cbBlockSize
Definition: sspi.h:563
ULONG cbSecurityTrailer
Definition: sspi.h:564
ULONG cbMaxSignature
Definition: sspi.h:562
ULONG cbMaxToken
Definition: sspi.h:561
unsigned char * MarshalledTargetInfo
Definition: sspi.h:745
ULONG TargetLength
Definition: sspi.h:756
SEC_CHAR * sUserName
Definition: sspi.h:251
SEC_WCHAR * sUserName
Definition: sspi.h:256
SEC_CHAR * Comment
Definition: sspi.h:109
SEC_CHAR * Name
Definition: sspi.h:108
unsigned short wVersion
Definition: sspi.h:105
ULONG cbMaxToken
Definition: sspi.h:107
ULONG fCapabilities
Definition: sspi.h:104
unsigned short wRPCID
Definition: sspi.h:106
ULONG cbMaxToken
Definition: sspi.h:117
unsigned short wVersion
Definition: sspi.h:115
SEC_WCHAR * Comment
Definition: sspi.h:119
unsigned short wRPCID
Definition: sspi.h:116
ULONG fCapabilities
Definition: sspi.h:114
SEC_WCHAR * Name
Definition: sspi.h:118
uint32_t * PULONG
Definition: typedefs.h:59
const uint16_t * PCWSTR
Definition: typedefs.h:57
void * PVOID
Definition: typedefs.h:50
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
Definition: winbase.h:2715
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG, PSecPkgInfoW *)
Definition: sspi.h:831
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_W)(PSSPI_SEC_STRING, PSecBuffer, PVOID, PCtxtHandle)
Definition: sspi.h:897
SECURITY_STATUS(SEC_ENTRY * COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:774
SECURITY_STATUS(SEC_ENTRY * ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle, PCtxtHandle, PSecBufferDesc, ULONG, ULONG, PCtxtHandle, PSecBufferDesc, PULONG, PTimeStamp)
Definition: sspi.h:597
SECURITY_STATUS(SEC_ENTRY * DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:802
SECURITY_STATUS(SEC_ENTRY * VERIFY_SIGNATURE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:1091
SECURITY_STATUS(SEC_ENTRY * ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:815
SECURITY_STATUS(SEC_ENTRY * EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle, ULONG, PSecBuffer, PVOID *)
Definition: sspi.h:847
SECURITY_STATUS(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, PVOID)
Definition: sspi.h:978
SECURITY_STATUS(SEC_ENTRY * REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:1036
SECURITY_STATUS(SEC_ENTRY * FREE_CONTEXT_BUFFER_FN)(_Inout_ PVOID)
Definition: sspi.h:860
SECURITY_STATUS(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle, ULONG, PVOID)
Definition: sspi.h:995
SECURITY_STATUS(SEC_ENTRY * IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:882
SECURITY_STATUS(SEC_ENTRY * FREE_CREDENTIALS_HANDLE_FN)(PCredHandle)
Definition: sspi.h:871
SECURITY_STATUS(SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_W)(PCredHandle, PCtxtHandle, PSSPI_SEC_STRING, ULONG, ULONG, ULONG, PSecBufferDesc, ULONG, PCtxtHandle, PSecBufferDesc, PULONG, PTimeStamp)
Definition: sspi.h:924
SECURITY_STATUS(SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_W)(PSSPI_SEC_STRING, PSSPI_SEC_STRING, ULONG, PVOID, PVOID, SEC_GET_KEY_FN, PVOID, PCredHandle, PTimeStamp)
Definition: sspi.h:625
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_CONTEXT_TOKEN_FN)(PCtxtHandle, PVOID *)
Definition: sspi.h:1010
WCHAR SEC_WCHAR
Definition: sspi.h:258
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_W)(PSSPI_SEC_STRING, PSecPkgInfoW *)
Definition: sspi.h:1023
SECURITY_STATUS(SEC_ENTRY * DECRYPT_MESSAGE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:788
SECURITY_STATUS(SEC_ENTRY * MAKE_SIGNATURE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:961
SECURITY_STATUS(SEC_ENTRY * ADD_CREDENTIALS_FN_W)(PCredHandle, PSSPI_SEC_STRING, PSSPI_SEC_STRING, ULONG, PVOID, SEC_GET_KEY_FN, PVOID, PTimeStamp)
Definition: sspi.h:676
SECURITY_STATUS(SEC_ENTRY * APPLY_CONTROL_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:703
__wchar_t WCHAR
Definition: xmlstorage.h:180
char CHAR
Definition: xmlstorage.h:175