ReactOS  0.4.14-dev-49-gfb4591c
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
24 extern "C" {
25 #endif
26 
27 #define SEC_ENTRY WINAPI
28 
29 typedef WCHAR SEC_WCHAR;
30 typedef 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
42 typedef SEC_WCHAR * SECURITY_PSTR;
44 #else
47 #endif
48 
49 #ifndef __SECHANDLE_DEFINED__
50 #define __SECHANDLE_DEFINED__
51 typedef 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 
73 typedef struct _SECURITY_INTEGER
74 {
79 
80 #define SSPIPFC_CREDPROV_DO_NOT_SAVE 0x00000001
81 #define SSPIPFC_NO_CHECKBOX 0x00000002
82 
84 
88 
89 typedef struct _SecPkgInfoA
90 {
92  unsigned short wVersion;
93  unsigned short wRPCID;
98 
99 typedef struct _SecPkgInfoW
100 {
102  unsigned short wVersion;
103  unsigned short wRPCID;
108 
109 #define SecPkgInfo WINELIB_NAME_AW(SecPkgInfo)
110 #define PSecPkgInfo WINELIB_NAME_AW(PSecPkgInfo)
111 
112 /* fCapabilities field of SecPkgInfo */
113 #define SECPKG_FLAG_INTEGRITY 0x00000001
114 #define SECPKG_FLAG_PRIVACY 0x00000002
115 #define SECPKG_FLAG_TOKEN_ONLY 0x00000004
116 #define SECPKG_FLAG_DATAGRAM 0x00000008
117 #define SECPKG_FLAG_CONNECTION 0x00000010
118 #define SECPKG_FLAG_MULTI_REQUIRED 0x00000020
119 #define SECPKG_FLAG_CLIENT_ONLY 0x00000040
120 #define SECPKG_FLAG_EXTENDED_ERROR 0x00000080
121 #define SECPKG_FLAG_IMPERSONATION 0x00000100
122 #define SECPKG_FLAG_ACCEPT_WIN32_NAME 0x00000200
123 #define SECPKG_FLAG_STREAM 0x00000400
124 #define SECPKG_FLAG_NEGOTIABLE 0x00000800
125 #define SECPKG_FLAG_GSS_COMPATIBLE 0x00001000
126 #define SECPKG_FLAG_LOGON 0x00002000
127 #define SECPKG_FLAG_ASCII_BUFFERS 0x00004000
128 #define SECPKG_FLAG_FRAGMENT 0x00008000
129 #define SECPKG_FLAG_MUTUAL_AUTH 0x00010000
130 #define SECPKG_FLAG_DELEGATION 0x00020000
131 #define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000
132 #define SECPKG_FLAG_RESTRICTED_TOKENS 0x00080000
133 #define SECPKG_FLAG_NEGO_EXTENDER 0x00100000
134 #define SECPKG_FLAG_NEGOTIABLE2 0x00200000
135 #define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH 0x00400000
136 #define SECPKG_FLAG_APPCONTAINER_CHECKS 0x00800000
137 
138 typedef struct _SecBuffer {
141  _Field_size_bytes_(cbBuffer) void *pvBuffer;
143 
144 /* values for BufferType */
145 #define SECBUFFER_EMPTY 0
146 #define SECBUFFER_DATA 1
147 #define SECBUFFER_TOKEN 2
148 #define SECBUFFER_PKG_PARAMS 3
149 #define SECBUFFER_MISSING 4
150 #define SECBUFFER_EXTRA 5
151 #define SECBUFFER_STREAM_TRAILER 6
152 #define SECBUFFER_STREAM_HEADER 7
153 #define SECBUFFER_NEGOTIATION_INFO 8
154 #define SECBUFFER_PADDING 9
155 #define SECBUFFER_STREAM 10
156 #define SECBUFFER_MECHLIST 11
157 #define SECBUFFER_MECHLIST_SIGNATURE 12
158 #define SECBUFFER_TARGET 13
159 #define SECBUFFER_CHANNEL_BINDINGS 14
160 
161 #define SECBUFFER_ATTRMASK 0xf0000000
162 #define SECBUFFER_READONLY 0x80000000
163 #define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000
164 #define SECBUFFER_RESERVED 0x60000000
165 
166 typedef struct _SecBufferDesc {
169  _Field_size_(cBuffers) PSecBuffer pBuffers;
171 
172 /* values for ulVersion */
173 #define SECBUFFER_VERSION 0
174 
175 typedef void (SEC_ENTRY *SEC_GET_KEY_FN)(void *Arg, void *Principal,
176  ULONG KeyVer, void **Key, SECURITY_STATUS *Status);
177 
179 SEC_ENTRY
181  _Out_ PULONG pcPackages,
182  _Outptr_ PSecPkgInfoA *ppPackageInfo);
183 
185 SEC_ENTRY
187  _Out_ PULONG pcPackages,
188  _Outptr_ PSecPkgInfoW *ppPackageInfo);
189 
190 #define EnumerateSecurityPackages WINELIB_NAME_AW(EnumerateSecurityPackages)
191 
193  PSecPkgInfoA *);
195  PSecPkgInfoW *);
196 #define ENUMERATE_SECURITY_PACKAGES_FN WINELIB_NAME_AW(ENUMERATE_SECURITY_PACKAGES_FN_)
197 
199 SEC_ENTRY
201  _In_ PCredHandle phCredential,
202  _In_ ULONG ulAttribute,
203  _Inout_ void *pBuffer);
204 
206 SEC_ENTRY
208  _In_ PCredHandle phCredential,
209  _In_ ULONG ulAttribute,
210  _Inout_ void *pBuffer);
211 
212 #define QueryCredentialsAttributes WINELIB_NAME_AW(QueryCredentialsAttributes)
213 
218 #define QUERY_CREDENTIALS_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CREDENTIALS_ATTRIBUTES_FN_)
219 
220 typedef struct _SEC_CHANNEL_BINDINGS {
230 
231 /* values for QueryCredentialsAttributes ulAttribute */
232 #define SECPKG_CRED_ATTR_NAMES 1
233 
234 /* types for QueryCredentialsAttributes */
236 {
239 
241 {
244 
245 #define SecPkgCredentials_Names WINELIB_NAME_AW(SecPkgCredentials_Names)
246 
248 SEC_ENTRY
250  _In_opt_ SEC_CHAR *pszPrincipal,
251  _In_ SEC_CHAR *pszPackage,
252  _In_ ULONG fCredentialsUse,
253  _In_opt_ PLUID pvLogonID,
254  _In_opt_ PVOID pAuthData,
255  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
256  _In_opt_ PVOID pvGetKeyArgument,
257  _Out_ PCredHandle phCredential,
258  _Out_opt_ PTimeStamp ptsExpiry);
259 
261 SEC_ENTRY
263  _In_opt_ SEC_WCHAR *pszPrincipal,
264  _In_ SEC_WCHAR *pszPackage,
265  _In_ ULONG fCredentialsUse,
266  _In_opt_ PLUID pvLogonID,
267  _In_opt_ PVOID pAuthData,
268  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
269  _In_opt_ PVOID pvGetKeyArgument,
270  _Out_ PCredHandle phCredential,
271  _Out_opt_ PTimeStamp ptsExpiry);
272 
273 #define AcquireCredentialsHandle WINELIB_NAME_AW(AcquireCredentialsHandle)
274 
275 /* flags for fCredentialsUse */
276 #define SECPKG_CRED_INBOUND 0x00000001
277 #define SECPKG_CRED_OUTBOUND 0x00000002
278 #define SECPKG_CRED_BOTH (SECPKG_CRED_INBOUND | SECPKG_CRED_OUTBOUND)
279 #define SECPKG_CRED_DEFAULT 0x00000004
280 #define SECPKG_CRED_RESERVED 0xf0000000
281 
288 #define ACQUIRE_CREDENTIALS_HANDLE_FN WINELIB_NAME_AW(ACQUIRE_CREDENTIALS_HANDLE_FN_)
289 
291 
293 
295 SEC_ENTRY
297  _In_ PCredHandle phCredential);
298 
299 #define FreeCredentialHandle FreeCredentialsHandle
300 
302 
304 SEC_ENTRY
306  _In_opt_ PCredHandle phCredential,
307  _In_opt_ PCtxtHandle phContext,
308  _In_opt_ SEC_CHAR *pszTargetName,
309  _In_ ULONG fContextReq,
311  _In_ ULONG TargetDataRep,
312  _In_opt_ PSecBufferDesc pInput,
314  _Inout_opt_ PCtxtHandle phNewContext,
315  _Inout_opt_ PSecBufferDesc pOutput,
316  _Out_ ULONG *pfContextAttr,
317  _Out_opt_ PTimeStamp ptsExpiry);
318 
320 SEC_ENTRY
322  _In_opt_ PCredHandle phCredential,
323  _In_opt_ PCtxtHandle phContext,
324  _In_opt_ SEC_WCHAR *pszTargetName,
325  _In_ ULONG fContextReq,
327  _In_ ULONG TargetDataRep,
328  _In_opt_ PSecBufferDesc pInput,
330  _Inout_opt_ PCtxtHandle phNewContext,
331  _Inout_opt_ PSecBufferDesc pOutput,
332  _Out_ ULONG *pfContextAttr,
333  _Out_opt_ PTimeStamp ptsExpiry);
334 
335 #define InitializeSecurityContext WINELIB_NAME_AW(InitializeSecurityContext)
336 
340  ULONG *, PTimeStamp);
344  ULONG *, PTimeStamp);
345 #define INITIALIZE_SECURITY_CONTEXT_FN WINELIB_NAME_AW(INITIALIZE_SECURITY_CONTEXT_FN_)
346 
347 /* flags for InitializeSecurityContext fContextReq and pfContextAttr */
348 #define ISC_REQ_DELEGATE 0x00000001
349 #define ISC_REQ_MUTUAL_AUTH 0x00000002
350 #define ISC_REQ_REPLAY_DETECT 0x00000004
351 #define ISC_REQ_SEQUENCE_DETECT 0x00000008
352 #define ISC_REQ_CONFIDENTIALITY 0x00000010
353 #define ISC_REQ_USE_SESSION_KEY 0x00000020
354 #define ISC_REQ_PROMPT_FOR_CREDS 0x00000040
355 #define ISC_REQ_USE_SUPPLIED_CREDS 0x00000080
356 #define ISC_REQ_ALLOCATE_MEMORY 0x00000100
357 #define ISC_REQ_USE_DCE_STYLE 0x00000200
358 #define ISC_REQ_DATAGRAM 0x00000400
359 #define ISC_REQ_CONNECTION 0x00000800
360 #define ISC_REQ_CALL_LEVEL 0x00001000
361 #define ISC_REQ_FRAGMENT_SUPPLIED 0x00002000
362 #define ISC_REQ_EXTENDED_ERROR 0x00004000
363 #define ISC_REQ_STREAM 0x00008000
364 #define ISC_REQ_INTEGRITY 0x00010000
365 #define ISC_REQ_IDENTIFY 0x00020000
366 #define ISC_REQ_NULL_SESSION 0x00040000
367 #define ISC_REQ_MANUAL_CRED_VALIDATION 0x00080000
368 #define ISC_REQ_RESERVED1 0x00100000
369 #define ISC_REQ_FRAGMENT_TO_FIT 0x00200000
370 
371 #define ISC_RET_DELEGATE 0x00000001
372 #define ISC_RET_MUTUAL_AUTH 0x00000002
373 #define ISC_RET_REPLAY_DETECT 0x00000004
374 #define ISC_RET_SEQUENCE_DETECT 0x00000008
375 #define ISC_RET_CONFIDENTIALITY 0x00000010
376 #define ISC_RET_USE_SESSION_KEY 0x00000020
377 #define ISC_RET_USED_COLLECTED_CREDS 0x00000040
378 #define ISC_RET_USED_SUPPLIED_CREDS 0x00000080
379 #define ISC_RET_ALLOCATED_MEMORY 0x00000100
380 #define ISC_RET_USED_DCE_STYLE 0x00000200
381 #define ISC_RET_DATAGRAM 0x00000400
382 #define ISC_RET_CONNECTION 0x00000800
383 #define ISC_RET_INTERMEDIATE_RETURN 0x00001000
384 #define ISC_RET_CALL_LEVEL 0x00002000
385 #define ISC_RET_EXTENDED_ERROR 0x00004000
386 #define ISC_RET_STREAM 0x00008000
387 #define ISC_RET_INTEGRITY 0x00010000
388 #define ISC_RET_IDENTIFY 0x00020000
389 #define ISC_RET_NULL_SESSION 0x00040000
390 #define ISC_RET_MANUAL_CRED_VALIDATION 0x00080000
391 #define ISC_RET_RESERVED1 0x00100000
392 #define ISC_RET_FRAGMENT_ONLY 0x00200000
393 
395 SEC_ENTRY
397  _In_opt_ PCredHandle phCredential,
398  _In_opt_ PCtxtHandle phContext,
399  _In_opt_ PSecBufferDesc pInput,
400  _In_ ULONG fContextReq,
401  _In_ ULONG TargetDataRep,
402  _Inout_opt_ PCtxtHandle phNewContext,
403  _Inout_opt_ PSecBufferDesc pOutput,
404  _Out_ ULONG *pfContextAttr,
405  _Out_opt_ PTimeStamp ptsExpiry);
406 
410 
411 /* flags for AcceptSecurityContext fContextReq and pfContextAttr */
412 #define ASC_REQ_DELEGATE 0x00000001
413 #define ASC_REQ_MUTUAL_AUTH 0x00000002
414 #define ASC_REQ_REPLAY_DETECT 0x00000004
415 #define ASC_REQ_SEQUENCE_DETECT 0x00000008
416 #define ASC_REQ_CONFIDENTIALITY 0x00000010
417 #define ASC_REQ_USE_SESSION_KEY 0x00000020
418 #define ASC_REQ_ALLOCATE_MEMORY 0x00000100
419 #define ASC_REQ_USE_DCE_STYLE 0x00000200
420 #define ASC_REQ_DATAGRAM 0x00000400
421 #define ASC_REQ_CONNECTION 0x00000800
422 #define ASC_REQ_CALL_LEVEL 0x00001000
423 #define ASC_REQ_FRAGMENT_SUPPLIED 0x00002000
424 #define ASC_REQ_EXTENDED_ERROR 0x00008000
425 #define ASC_REQ_STREAM 0x00010000
426 #define ASC_REQ_INTEGRITY 0x00020000
427 #define ASC_REQ_LICENSING 0x00040000
428 #define ASC_REQ_IDENTIFY 0x00080000
429 #define ASC_REQ_ALLOW_NULL_SESSION 0x00100000
430 #define ASC_REQ_ALLOW_NON_USER_LOGONS 0x00200000
431 #define ASC_REQ_ALLOW_CONTEXT_REPLAY 0x00400000
432 #define ASC_REQ_FRAGMENT_TO_FIT 0x00800000
433 #define ASC_REQ_FRAGMENT_NO_TOKEN 0x01000000
434 
435 #define ASC_RET_DELEGATE 0x00000001
436 #define ASC_RET_MUTUAL_AUTH 0x00000002
437 #define ASC_RET_REPLAY_DETECT 0x00000004
438 #define ASC_RET_SEQUENCE_DETECT 0x00000008
439 #define ASC_RET_CONFIDENTIALITY 0x00000010
440 #define ASC_RET_USE_SESSION_KEY 0x00000020
441 #define ASC_RET_ALLOCATED_MEMORY 0x00000100
442 #define ASC_RET_USED_DCE_STYLE 0x00000200
443 #define ASC_RET_DATAGRAM 0x00000400
444 #define ASC_RET_CONNECTION 0x00000800
445 #define ASC_RET_CALL_LEVEL 0x00002000
446 #define ASC_RET_THIRD_LEG_FAILED 0x00004000
447 #define ASC_RET_EXTENDED_ERROR 0x00008000
448 #define ASC_RET_STREAM 0x00010000
449 #define ASC_RET_INTEGRITY 0x00020000
450 #define ASC_RET_LICENSING 0x00040000
451 #define ASC_RET_IDENTIFY 0x00080000
452 #define ASC_RET_NULL_SESSION 0x00100000
453 #define ASC_RET_ALLOW_NON_USER_LOGONS 0x00200000
454 #define ASC_RET_ALLOW_CONTEXT_REPLAY 0x00400000
455 #define ASC_RET_FRAGMENT_ONLY 0x00800000
456 #define ASC_RET_NO_TOKEN 0x01000000
457 
458 /*Vvalues for TargetDataRep */
459 #define SECURITY_NATIVE_DREP 0x00000010
460 #define SECURITY_NETWORK_DREP 0x00000000
461 
463 SEC_ENTRY
465  _In_ PCtxtHandle phContext,
466  _In_ PSecBufferDesc pToken);
467 
470 
472 
474 
476 SEC_ENTRY
478  _In_ PCtxtHandle phContext,
479  _In_ PSecBufferDesc pInput);
480 
483 
485 SEC_ENTRY
487  _In_ PCtxtHandle phContext,
488  _In_ ULONG ulAttribute,
489  _Out_ void *pBuffer);
490 
492 SEC_ENTRY
494  _In_ PCtxtHandle phContext,
495  _In_ ULONG ulAttribute,
496  _Out_ void *pBuffer);
497 
498 #define QueryContextAttributes WINELIB_NAME_AW(QueryContextAttributes)
499 
501  ULONG, void *);
503  ULONG, void *);
504 #define QUERY_CONTEXT_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CONTEXT_ATTRIBUTES_FN_)
505 
506 /* values for QueryContextAttributes/SetContextAttributes ulAttribute */
507 #define SECPKG_ATTR_SIZES 0
508 #define SECPKG_ATTR_NAMES 1
509 #define SECPKG_ATTR_LIFESPAN 2
510 #define SECPKG_ATTR_DCE_INFO 3
511 #define SECPKG_ATTR_STREAM_SIZES 4
512 #define SECPKG_ATTR_KEY_INFO 5
513 #define SECPKG_ATTR_AUTHORITY 6
514 #define SECPKG_ATTR_PROTO_INFO 7
515 #define SECPKG_ATTR_PASSWORD_EXPIRY 8
516 #define SECPKG_ATTR_SESSION_KEY 9
517 #define SECPKG_ATTR_PACKAGE_INFO 10
518 #define SECPKG_ATTR_USER_FLAGS 11
519 #define SECPKG_ATTR_NEGOTIATION_INFO 12
520 #define SECPKG_ATTR_NATIVE_NAMES 13
521 #define SECPKG_ATTR_FLAGS 14
522 #define SECPKG_ATTR_USE_VALIDATED 15
523 #define SECPKG_ATTR_CREDENTIAL_NAME 16
524 #define SECPKG_ATTR_TARGET_INFORMATION 17
525 #define SECPKG_ATTR_ACCESS_TOKEN 18
526 #define SECPKG_ATTR_TARGET 19
527 #define SECPKG_ATTR_AUTHENTICATION_ID 20
528 #define SECPKG_ATTR_LOGOFF_TIME 21
529 #define SECPKG_ATTR_NEGO_KEYS 22
530 #define SECPKG_ATTR_PROMPTING_NEEDED 24
531 #define SECPKG_ATTR_UNIQUE_BINDINGS 25
532 #define SECPKG_ATTR_ENDPOINT_BINDINGS 26
533 #define SECPKG_ATTR_CLIENT_SPECIFIED_TARGET 27
534 #define SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS 30
535 #define SECPKG_ATTR_NEGO_PKG_INFO 31
536 #define SECPKG_ATTR_NEGO_STATUS 32
537 #define SECPKG_ATTR_CONTEXT_DELETED 33
538 
539 #define SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES 128
540 #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS 0x1
541 #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM 0x2
542 
543 /* types for QueryContextAttributes/SetContextAttributes */
544 
545 typedef struct _SecPkgContext_Sizes
546 {
552 
554 {
561 
562 typedef struct _SecPkgContext_NamesA
563 {
566 
567 typedef struct _SecPkgContext_NamesW
568 {
571 
572 #define SecPkgContext_Names WINELIB_NAME_AW(SecPkgContext_Names)
573 #define PSecPkgContext_Names WINELIB_NAME_AW(PSecPkgContext_Names)
574 
576 {
580 
582 {
584  void *pPac;
586 
588 {
595 
597 {
604 
605 #define SecPkgContext_KeyInfo WINELIB_NAME_AW(SecPkgContext_KeyInfo)
606 #define PSecPkgContext_KeyInfo WINELIB_NAME_AW(PSecPkgContext_KeyInfo)
607 
609 {
612 
614 {
617 
618 #define SecPkgContext_Authority WINELIB_NAME_AW(SecPkgContext_Authority)
619 #define PSecPkgContext_Authority WINELIB_NAME_AW(PSecPkgContext_Authority)
620 
622 {
627 
629 {
634 
635 #define SecPkgContext_ProtoInfo WINELIB_NAME_AW(SecPkgContext_ProtoInfo)
636 #define PSecPkgContext_ProtoInfo WINELIB_NAME_AW(PSecPkgContext_ProtoInfo)
637 
639 {
642 
645  _Field_size_bytes_(SessionKeyLength) unsigned char *SessionKey;
647 
649 {
652 
654 {
657 
658 #define SecPkgContext_PackageInfo WINELIB_NAME_AW(SecPkgContext_PackageInfo)
659 #define PSecPkgContext_PackageInfo WINELIB_NAME_AW(PSecPkgContext_PackageInfo)
660 
661 typedef struct _SecPkgContext_Flags
662 {
665 
667 {
670 
672 {
676 
678 {
682 
683 #define SecPkgContext_NegotiationInfo WINELIB_NAME_AW(SecPkgContext_NegotiationInfo)
684 #define PSecPkgContext_NegotiationInfo WINELIB_NAME_AW(PSecPkgContext_NegotiationInfo)
685 
686 /* values for NegotiationState */
687 #define SECPKG_NEGOTIATION_COMPLETE 0
688 #define SECPKG_NEGOTIATION_OPTIMISTIC 1
689 #define SECPKG_NEGOTIATION_IN_PROGRESS 2
690 #define SECPKG_NEGOTIATION_DIRECT 3
691 #define SECPKG_NEGOTIATION_TRY_MULTICRED 4
692 
694 {
698 
700 {
704 
705 #define SecPkgContext_NativeNames WINELIB_NAME_AW(SecPkgContext_NativeNames)
706 #define PSecPkgContext_NativeNames WINELIB_NAME_AW(PSecPkgContext_NativeNames)
707 
709 {
713 
715 {
719 
720 #define SecPkgContext_CredentialName WINELIB_NAME_AW(SecPkgContext_CredentialName)
721 #define PSecPkgContext_CredentialName WINELIB_NAME_AW(PSecPkgContext_CredentialName)
722 
724 {
725  void *AccessToken;
727 
729 {
731  unsigned char *MarshalledTargetInfo;
733 
735 {
737  char *AuthzID;
739 
740 typedef struct _SecPkgContext_Target
741 {
743  char *Target;
745 
747 {
751 
754 SEC_ENTRY
756  _In_ PCtxtHandle phContext);
757 
760 
762 
764 
766 SEC_ENTRY
768  _In_ PCtxtHandle phContext,
769  _In_ ULONG fQOP,
770  _In_ PSecBufferDesc pMessage,
771  _In_ ULONG MessageSeqNo);
772 
775 
777 SEC_ENTRY
779  _In_ PCtxtHandle phContext,
780  _In_ PSecBufferDesc pMessage,
781  _In_ ULONG MessageSeqNo,
782  _Out_ PULONG pfQOP);
783 
786 
788 SEC_ENTRY
790  _In_ SEC_CHAR *pszPackageName,
791  _Outptr_ PSecPkgInfoA *ppPackageInfo);
792 
794 SEC_ENTRY
796  _In_ SEC_WCHAR *pszPackageName,
797  _Outptr_ PSecPkgInfoW *ppPackageInfo);
798 
799 #define QuerySecurityPackageInfo WINELIB_NAME_AW(QuerySecurityPackageInfo)
800 
805 #define QUERY_SECURITY_PACKAGE_INFO_FN WINELIB_NAME_AW(QUERY_SECURITY_PACKAGE_INFO_FN_)
806 
808 SEC_ENTRY
810  _In_ PCtxtHandle phContext,
811  _In_ ULONG fFlags,
812  _Out_ PSecBuffer pPackedContext,
813  _Out_ void **pToken);
814 
816  ULONG, PSecBuffer, void **);
817 
818 /* values for ExportSecurityContext fFlags */
819 #define SECPKG_CONTEXT_EXPORT_RESET_NEW 0x00000001
820 #define SECPKG_CONTEXT_EXPORT_DELETE_OLD 0x00000002
821 
823 SEC_ENTRY
825  _In_ SEC_CHAR *pszPackage,
826  _In_ PSecBuffer pPackedContext,
827  _In_ void *Token,
828  _Out_ PCtxtHandle phContext);
829 
831 SEC_ENTRY
833  _In_ SEC_WCHAR *pszPackage,
834  _In_ PSecBuffer pPackedContext,
835  _In_ void *Token,
836  _Out_ PCtxtHandle phContext);
837 
838 #define ImportSecurityContext WINELIB_NAME_AW(ImportSecurityContext)
839 
841  PSecBuffer, void *, PCtxtHandle);
843  PSecBuffer, void *, PCtxtHandle);
844 #define IMPORT_SECURITY_CONTEXT_FN WINELIB_NAME_AW(IMPORT_SECURITY_CONTEXT_FN_)
845 
847 SEC_ENTRY
849  _In_ PCredHandle hCredentials,
850  _In_opt_ SEC_CHAR *pszPrincipal,
851  _In_ SEC_CHAR *pszPackage,
852  _In_ ULONG fCredentialUse,
853  _In_opt_ void *pAuthData,
854  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
855  _In_opt_ void *pvGetKeyArgument,
856  _Out_opt_ PTimeStamp ptsExpiry);
857 
859 SEC_ENTRY
861  _In_ PCredHandle hCredentials,
862  _In_opt_ SEC_WCHAR *pszPrincipal,
863  _In_ SEC_WCHAR *pszPackage,
864  _In_ ULONG fCredentialUse,
865  _In_opt_ void *pAuthData,
866  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
867  _In_opt_ void *pvGetKeyArgument,
868  _Out_opt_ PTimeStamp ptsExpiry);
869 
870 #define AddCredentials WINELIB_NAME_AW(AddCredentials)
871 
873  SEC_CHAR *, SEC_CHAR *, ULONG, void *, SEC_GET_KEY_FN, void *,
874  PTimeStamp);
876  SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *,
877  PTimeStamp);
878 
880 SEC_ENTRY
882  _In_ PCtxtHandle phContext,
883  _Out_ HANDLE *phToken);
884 
887 
889 SEC_ENTRY
891  _In_ PCtxtHandle phContext,
892  _In_ ULONG fQOP,
893  _In_ PSecBufferDesc pMessage,
894  _In_ ULONG MessageSeqNo);
895 
897 SEC_ENTRY
899  _In_ PCtxtHandle phContext,
900  _In_ PSecBufferDesc pMessage,
901  _In_ ULONG MessageSeqNo,
902  _Out_opt_ PULONG pfQOP);
903 
904 /* values for EncryptMessage fQOP */
905 #define SECQOP_WRAP_NO_ENCRYPT 0x80000001
906 
911 
913 SEC_ENTRY
915  _In_ PCtxtHandle phContext,
916  _In_ ULONG ulAttribute,
917  _In_reads_bytes_(cbBuffer) void *pBuffer,
918  _In_ ULONG cbBuffer);
919 
921 SEC_ENTRY
923  _In_ PCtxtHandle phContext,
924  _In_ ULONG ulAttribute,
925  _In_reads_bytes_(cbBuffer) void *pBuffer,
926  _In_ ULONG cbBuffer);
927 
928 #define SetContextAttributes WINELIB_NAME_AW(SetContextAttributes)
929 
931  ULONG, void *, ULONG);
933  ULONG, void *, ULONG);
934 
935 #define SECURITY_ENTRYPOINT_ANSIA "InitSecurityInterfaceA"
936 #define SECURITY_ENTRYPOINT_ANSIW "InitSecurityInterfaceW"
937 #define SECURITY_ENTRYPOINT_ANSI WINELIB_NAME_AW(SECURITY_ENTRYPOINT_ANSI)
938 
940 {
946  void *Reserved2;
959  void *Reserved3;
960  void *Reserved4;
964  void *Reserved8;
970 
971 /* No, it really is FreeCredentialsHandle, see the thread beginning
972  * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a
973  * discovery discussion. */
975 {
981  void *Reserved2;
994  void *Reserved3;
995  void *Reserved4;
999  void *Reserved8;
1005 
1006 #define SecurityFunctionTable WINELIB_NAME_AW(SecurityFunctionTable)
1007 #define PSecurityFunctionTable WINELIB_NAME_AW(PSecurityFunctionTable)
1008 
1009 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1
1010 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2
1011 
1014 #define InitSecurityInterface WINELIB_NAME_AW(InitSecurityInterface)
1015 
1018 #define INIT_SECURITY_INTERFACE WINELIB_NAME_AW(INIT_SECURITY_INTERFACE_)
1019 
1020 #ifdef __cplusplus
1021 }
1022 #endif
1023 
1024 #endif /* ndef __WINE_SSPI_H__ */
SEC_WCHAR * sUserName
Definition: sspi.h:569
SEC_WCHAR * sServerName
Definition: sspi.h:702
SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(_In_ PCredHandle phCredential, _In_ ULONG ulAttribute, _Inout_ void *pBuffer)
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
Definition: sspi.h:950
_Field_size_(cBuffers) PSecBuffer pBuffers
DECRYPT_MESSAGE_FN DecryptMessage
Definition: sspi.h:967
const uint16_t * PCWSTR
Definition: typedefs.h:55
struct _SEC_CHANNEL_BINDINGS SEC_CHANNEL_BINDINGS
QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA
Definition: sspi.h:958
SEC_WCHAR * Comment
Definition: sspi.h:106
PSecurityFunctionTableA SEC_ENTRY InitSecurityInterfaceA(void)
Definition: sspi.c:123
struct _SecPkgContext_PasswordExpiry * PSecPkgContext_PasswordExpiry
SECURITY_STATUS(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle, ULONG, void *, ULONG)
Definition: sspi.h:930
SECURITY_STATUS(SEC_ENTRY * EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle, ULONG, PSecBuffer, void **)
Definition: sspi.h:815
SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _Out_ void *pBuffer)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
ULONG dwInitiatorOffset
Definition: sspi.h:223
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG Key
Definition: fatprocs.h:2697
struct _SecPkgInfoW SecPkgInfoW
APPLY_CONTROL_TOKEN_FN ApplyControlToken
Definition: sspi.h:986
ADD_CREDENTIALS_FN_A AddCredentialsA
Definition: sspi.h:963
struct _SecBuffer * PSecBuffer
TimeStamp tsStart
Definition: sspi.h:577
struct _SecPkgCredentials_NamesA * PSecPkgCredentials_NamesA
WCHAR SEC_WCHAR
Definition: sspi.h:29
ULONG cbApplicationDataLength
Definition: sspi.h:227
ULONG EncryptAlgorithm
Definition: sspi.h:602
ULONG LowPart
Definition: sspi.h:75
VERIFY_SIGNATURE_FN VerifySignature
Definition: sspi.h:991
unsigned short wRPCID
Definition: sspi.h:93
ULONG ulVersion
Definition: sspi.h:167
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_A)(SEC_CHAR *, PSecBuffer, void *, PCtxtHandle)
Definition: sspi.h:840
struct _SecPkgContext_NamesW SecPkgContext_NamesW
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:282
struct _SecPkgCredentials_NamesA SecPkgCredentials_NamesA
struct _SecPkgContext_UserFlags SecPkgContext_UserFlags
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG, PSecPkgInfoW *)
Definition: sspi.h:194
struct _SecPkgContext_Bindings * PSecPkgContext_Bindings
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
Definition: sspi.h:989
char CHAR
Definition: xmlstorage.h:175
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
Definition: sspi.h:980
SECURITY_STATUS SEC_ENTRY SetContextAttributesW(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _In_reads_bytes_(cbBuffer) void *pBuffer, _In_ ULONG cbBuffer)
PSecHandle PCtxtHandle
Definition: sspi.h:71
SECURITY_STATUS SEC_ENTRY VerifySignature(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo, _Out_ PULONG pfQOP)
Definition: stubs.c:413
struct _LUID * PLUID
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG, PSecPkgInfoA *)
Definition: sspi.h:192
SEC_CHAR * sClientName
Definition: sspi.h:695
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS _In_ PTOKEN_SOURCE _Out_ PVOID _Out_ PULONG _Inout_ PLUID _Out_ PHANDLE Token
DECRYPT_MESSAGE_FN DecryptMessage
Definition: sspi.h:1002
#define _Outptr_
Definition: no_sal2.h:396
struct _SecHandle * PSecHandle
struct _SecPkgContext_PackageInfoA SecPkgContext_PackageInfoA
PSecPkgInfoA PackageInfo
Definition: sspi.h:673
struct _SecPkgContext_NamesW * PSecPkgContext_NamesW
APPLY_CONTROL_TOKEN_FN ApplyControlToken
Definition: sspi.h:951
unsigned short wVersion
Definition: sspi.h:102
SECURITY_STATUS SEC_ENTRY ExportSecurityContext(_In_ PCtxtHandle phContext, _In_ ULONG fFlags, _Out_ PSecBuffer pPackedContext, _Out_ void **pToken)
void * PSEC_WINNT_AUTH_IDENTITY_OPAQUE
Definition: sspi.h:83
SECURITY_STATUS SEC_ENTRY SetContextAttributesA(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _In_reads_bytes_(cbBuffer) void *pBuffer, _In_ ULONG cbBuffer)
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
Definition: sspi.h:945
SECURITY_STATUS(SEC_ENTRY * APPLY_CONTROL_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:481
#define _Check_return_
Definition: no_sal2.h:13
SECURITY_STATUS(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, void *, ULONG)
Definition: sspi.h:932
struct _SecPkgContext_NativeNamesA * PSecPkgContext_NativeNamesA
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
Definition: sspi.h:953
unsigned char * MarshalledTargetInfo
Definition: sspi.h:731
ULONG SignatureAlgorithm
Definition: sspi.h:592
ULONG_PTR dwLower
Definition: sspi.h:53
SECURITY_STATUS(SEC_ENTRY * REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:763
PSecPkgInfoW PackageInfo
Definition: sspi.h:655
SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(_In_ PCtxtHandle phContext, _Out_ HANDLE *phToken)
Definition: stubs.c:291
struct _SecPkgCredentials_NamesW * PSecPkgCredentials_NamesW
SECURITY_STATUS(SEC_ENTRY * DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:473
struct _SecPkgContext_ProtoInfoW * PSecPkgContext_ProtoInfoW
struct _SecPkgContext_NativeNamesA SecPkgContext_NativeNamesA
ULONG cbBlockSize
Definition: sspi.h:549
SECURITY_STATUS SEC_ENTRY EncryptMessage(_In_ PCtxtHandle phContext, _In_ ULONG fQOP, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo)
ULONG fCapabilities
Definition: sspi.h:91
SEC_WCHAR * sUserName
Definition: sspi.h:242
SECURITY_STATUS SEC_ENTRY FreeContextBuffer(_Inout_ PVOID pv)
Definition: stubs.c:133
struct _SecBufferDesc SecBufferDesc
struct _SecPkgContext_NativeNamesW SecPkgContext_NativeNamesW
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)
ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA
Definition: sspi.h:944
ENCRYPT_MESSAGE_FN EncryptMessage
Definition: sspi.h:1001
struct _SecPkgContext_KeyInfoA SecPkgContext_KeyInfoA
SECURITY_STATUS SEC_ENTRY ImportSecurityContextA(_In_ SEC_CHAR *pszPackage, _In_ PSecBuffer pPackedContext, _In_ void *Token, _Out_ PCtxtHandle phContext)
SEC_WCHAR * sSignatureAlgorithmName
Definition: sspi.h:598
struct _SecPkgContext_TargetInformation SecPkgContext_TargetInformation
#define _In_opt_
Definition: no_sal2.h:213
SECURITY_STATUS(SEC_ENTRY * ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle, PCtxtHandle, PSecBufferDesc, ULONG, ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp)
Definition: sspi.h:407
SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _Out_ void *pBuffer)
SECURITY_STATUS SEC_ENTRY DecryptMessage(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo, _Out_opt_ PULONG pfQOP)
struct _SecPkgContext_CredentialNameA * PSecPkgContext_CredentialNameA
SEC_CHAR * sEncryptAlgorithmName
Definition: sspi.h:590
struct _SecPkgContext_PackageInfoW SecPkgContext_PackageInfoW
TimeStamp tsPasswordExpires
Definition: sspi.h:640
struct _SecPkgContext_Sizes * PSecPkgContext_Sizes
ULONG fCapabilities
Definition: sspi.h:101
uint32_t ULONG_PTR
Definition: typedefs.h:63
ULONG cbInitiatorLength
Definition: sspi.h:222
ULONG cbMaxSignature
Definition: sspi.h:548
struct _SecPkgContext_Lifespan * PSecPkgContext_Lifespan
struct _SecPkgContext_NegotiationInfoW SecPkgContext_NegotiationInfoW
SECURITY_STATUS(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, void *)
Definition: sspi.h:502
struct _SecPkgContext_Target * PSecPkgContext_Target
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
Definition: sspi.h:965
SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(_Out_ PULONG pcPackages, _Outptr_ PSecPkgInfoA *ppPackageInfo)
SEC_CHAR * SECURITY_PSTR
Definition: sspi.h:45
struct _SecPkgContext_AuthorityA * PSecPkgContext_AuthorityA
SECURITY_STATUS SEC_ENTRY MakeSignature(_In_ PCtxtHandle phContext, _In_ ULONG fQOP, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo)
Definition: stubs.c:250
MAKE_SIGNATURE_FN MakeSignature
Definition: sspi.h:955
ULONG dwInitiatorAddrType
Definition: sspi.h:221
struct _SecPkgContext_ProtoInfoA * PSecPkgContext_ProtoInfoA
struct _SecPkgContext_NamesA * PSecPkgContext_NamesA
long LONG
Definition: pedump.c:60
ULONG cbMaxToken
Definition: sspi.h:104
QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA
Definition: sspi.h:952
struct _SecPkgContext_NegotiationInfoA * PSecPkgContext_NegotiationInfoA
_Field_size_bytes_(cbBuffer) void *pvBuffer
SECURITY_STATUS(SEC_ENTRY * DECRYPT_MESSAGE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:909
_Check_return_ SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:172
ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW
Definition: sspi.h:977
ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA
Definition: sspi.h:942
SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(_In_ SEC_CHAR *pszPackageName, _Outptr_ PSecPkgInfoA *ppPackageInfo)
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)
struct _SecPkgContext_PackageInfoW * PSecPkgContext_PackageInfoW
SEC_WCHAR * Name
Definition: sspi.h:105
SECURITY_INTEGER * PTimeStamp
Definition: sspi.h:78
struct _SecPkgContext_KeyInfoW * PSecPkgContext_KeyInfoW
SECURITY_STATUS SEC_ENTRY CompleteAuthToken(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pToken)
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
Definition: sspi.h:957
PSecurityFunctionTableA(SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void)
Definition: sspi.h:1016
PVOID pBuffer
SEC_CHAR * Comment
Definition: sspi.h:96
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:285
#define _Out_
Definition: no_sal2.h:323
unsigned short wRPCID
Definition: sspi.h:103
SECURITY_STATUS(SEC_ENTRY * ADD_CREDENTIALS_FN_A)(PCredHandle, SEC_CHAR *, SEC_CHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, PTimeStamp)
Definition: sspi.h:872
SEC_CHAR * sAuthorityName
Definition: sspi.h:610
struct _SecPkgContext_CredentialNameW SecPkgContext_CredentialNameW
void * PVOID
Definition: retypes.h:9
SECURITY_STATUS SEC_ENTRY ApplyControlToken(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pInput)
Definition: stubs.c:71
ENCRYPT_MESSAGE_FN EncryptMessage
Definition: sspi.h:966
struct _SecPkgContext_Flags SecPkgContext_Flags
Definition: bcd.h:202
struct _SecPkgContext_StreamSizes * PSecPkgContext_StreamSizes
SEC_CHAR * sUserName
Definition: sspi.h:237
LONG SECURITY_STATUS
Definition: sspi.h:34
PSecurityFunctionTableW(SEC_ENTRY * INIT_SECURITY_INTERFACE_W)(void)
Definition: sspi.h:1017
#define _Out_opt_
Definition: no_sal2.h:339
VERIFY_SIGNATURE_FN VerifySignature
Definition: sspi.h:956
struct _SecBufferDesc * PSecBufferDesc
Definition: main.c:39
SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(_In_ SEC_WCHAR *pszPackageName, _Outptr_ PSecPkgInfoW *ppPackageInfo)
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_A)(SEC_CHAR *, PSecPkgInfoA *)
Definition: sspi.h:802
SEC_WCHAR * sProtocolName
Definition: sspi.h:630
SECURITY_STATUS(SEC_ENTRY * FREE_CREDENTIALS_HANDLE_FN)(PCredHandle)
Definition: sspi.h:301
SECURITY_STATUS(SEC_ENTRY * VERIFY_SIGNATURE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:784
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)
__wchar_t WCHAR
Definition: xmlstorage.h:180
PVOID *typedef PSecBuffer
Definition: ntsecpkg.h:400
struct _SecPkgContext_Lifespan SecPkgContext_Lifespan
SecHandle CtxtHandle
Definition: sspi.h:70
struct _SEC_CHANNEL_BINDINGS * PSEC_CHANNEL_BINDINGS
IMPORT_SECURITY_CONTEXT_FN_A ImportSecurityContextA
Definition: sspi.h:962
struct _SecPkgContext_Bindings SecPkgContext_Bindings
LONG HighPart
Definition: sspi.h:76
struct _SecPkgContext_Target SecPkgContext_Target
SECURITY_STATUS(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle, ULONG, PVOID)
Definition: sspi.h:217
struct _SecPkgContext_ProtoInfoW SecPkgContext_ProtoInfoW
INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA
Definition: sspi.h:947
SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(_Out_ PULONG pcPackages, _Outptr_ PSecPkgInfoW *ppPackageInfo)
struct _SecPkgContext_AccessToken SecPkgContext_AccessToken
SECURITY_STATUS(SEC_ENTRY * COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:468
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
Definition: sspi.h:985
struct _SECURITY_INTEGER * PSECURITY_INTEGER
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
Definition: winbase.h:2651
struct _SecPkgContext_KeyInfoA * PSecPkgContext_KeyInfoA
struct _SECURITY_FUNCTION_TABLE_A * PSecurityFunctionTableA
INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW
Definition: sspi.h:982
struct _SecPkgContext_NegotiationInfoW * PSecPkgContext_NegotiationInfoW
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)
#define _Inout_
Definition: no_sal2.h:244
SEC_CHAR * sUserName
Definition: sspi.h:564
SECURITY_STATUS(SEC_ENTRY * MAKE_SIGNATURE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:773
struct _SecPkgContext_NamesA SecPkgContext_NamesA
SEC_CHAR * sCredentialName
Definition: sspi.h:711
struct _SecBuffer SecBuffer
ULONG dwApplicationDataOffset
Definition: sspi.h:228
ADD_CREDENTIALS_FN_W AddCredentialsW
Definition: sspi.h:998
IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW
Definition: sspi.h:997
TimeStamp tsExpiry
Definition: sspi.h:578
ULONG TargetLength
Definition: sspi.h:742
struct _SECURITY_FUNCTION_TABLE_W SecurityFunctionTableW
ULONG cbSecurityTrailer
Definition: sspi.h:550
struct _SecPkgContext_Flags * PSecPkgContext_Flags
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)
ULONG SignatureAlgorithm
Definition: sspi.h:601
SEC_CHAR * sServerName
Definition: sspi.h:696
ULONG BufferType
Definition: sspi.h:140
SECURITY_STATUS(SEC_ENTRY * ADD_CREDENTIALS_FN_W)(PCredHandle, SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, PTimeStamp)
Definition: sspi.h:875
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:338
PSecHandle PCredHandle
Definition: sspi.h:68
SECURITY_STATUS(SEC_ENTRY * IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:759
struct _SecPkgContext_PasswordExpiry SecPkgContext_PasswordExpiry
PSecPkgInfoW PackageInfo
Definition: sspi.h:679
SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(_In_ PCredHandle phCredential, _In_ ULONG ulAttribute, _Inout_ void *pBuffer)
PSecPkgInfoA PackageInfo
Definition: sspi.h:650
#define _In_reads_bytes_(size)
Definition: no_sal2.h:229
SECURITY_INTEGER TimeStamp
Definition: sspi.h:78
Status
Definition: gdiplustypes.h:24
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
Definition: sspi.h:996
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)
QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA
Definition: sspi.h:943
SEC_CHAR * Name
Definition: sspi.h:95
#define _In_
Definition: no_sal2.h:204
struct _SecPkgCredentials_NamesW SecPkgCredentials_NamesW
_Field_size_bytes_(SessionKeyLength) unsigned char *SessionKey
struct _SecPkgContext_AccessToken * PSecPkgContext_AccessToken
void(SEC_ENTRY * SEC_GET_KEY_FN)(void *Arg, void *Principal, ULONG KeyVer, void **Key, SECURITY_STATUS *Status)
Definition: sspi.h:175
struct _SecPkgInfoA SecPkgInfoA
ULONG cbAcceptorLength
Definition: sspi.h:225
SEC_CHANNEL_BINDINGS * Bindings
Definition: sspi.h:749
struct _SecPkgContext_UserFlags * PSecPkgContext_UserFlags
SEC_WCHAR * sEncryptAlgorithmName
Definition: sspi.h:599
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
Definition: sspi.h:1000
ULONG cbMaxToken
Definition: sspi.h:547
PSecurityFunctionTableW SEC_ENTRY InitSecurityInterfaceW(void)
Definition: sspi.c:132
ULONG cbBuffer
Definition: sspi.h:139
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
Definition: sspi.h:984
struct _SecPkgContext_ProtoInfoA SecPkgContext_ProtoInfoA
SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW
Definition: sspi.h:1003
ULONG dwAcceptorAddrType
Definition: sspi.h:224
SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:88
unsigned short wVersion
Definition: sspi.h:92
SEC_WCHAR * sClientName
Definition: sspi.h:701
struct _SecPkgInfoW * PSecPkgInfoW
struct _SecPkgContext_TargetInformation * PSecPkgContext_TargetInformation
unsigned int * PULONG
Definition: retypes.h:1
SecHandle CredHandle
Definition: sspi.h:67
SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA
Definition: sspi.h:968
struct _SecPkgContext_CredentialNameW * PSecPkgContext_CredentialNameW
struct _SecPkgContext_AuthorityA SecPkgContext_AuthorityA
CHAR SEC_CHAR
Definition: sspi.h:30
struct _SECURITY_FUNCTION_TABLE_A SecurityFunctionTableA
struct _SecPkgContext_AuthorityW SecPkgContext_AuthorityW
Definition: bcd.h:201
struct _SecPkgContext_NegotiationInfoA SecPkgContext_NegotiationInfoA
ULONG_PTR dwUpper
Definition: sspi.h:54
SEC_WCHAR * sAuthorityName
Definition: sspi.h:615
SEC_CHAR * sSignatureAlgorithmName
Definition: sspi.h:589
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
Definition: sspi.h:954
struct _SecPkgContext_PackageInfoA * PSecPkgContext_PackageInfoA
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
Definition: sspi.h:983
struct _SecPkgContext_AuthzID SecPkgContext_AuthzID
struct _SECURITY_INTEGER SECURITY_INTEGER
struct _SecPkgContext_DceInfo SecPkgContext_DceInfo
SEC_CHAR * sProtocolName
Definition: sspi.h:623
ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW
Definition: sspi.h:979
struct _SecPkgContext_DceInfo * PSecPkgContext_DceInfo
SEC_WCHAR * sCredentialName
Definition: sspi.h:717
SECURITY_STATUS(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_A)(PCredHandle, ULONG, PVOID)
Definition: sspi.h:215
SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(_In_ PCredHandle phCredential)
Definition: stubs.c:142
SECURITY_STATUS SEC_ENTRY ImportSecurityContextW(_In_ SEC_WCHAR *pszPackage, _In_ PSecBuffer pPackedContext, _In_ void *Token, _Out_ PCtxtHandle phContext)
unsigned int ULONG
Definition: retypes.h:1
QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW
Definition: sspi.h:987
ULONG EncryptAlgorithm
Definition: sspi.h:593
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
Definition: sspi.h:948
struct _SecPkgContext_SessionKey * PSecPkgContext_SessionKey
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 * QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle, ULONG, void *)
Definition: sspi.h:500
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_CONTEXT_TOKEN_FN)(PCtxtHandle, HANDLE *)
Definition: sspi.h:886
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_W)(SEC_WCHAR *, PSecBuffer, void *, PCtxtHandle)
Definition: sspi.h:842
struct _SecPkgContext_AuthzID * PSecPkgContext_AuthzID
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
Definition: sspi.h:992
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR *, PSecPkgInfoW *)
Definition: sspi.h:804
MAKE_SIGNATURE_FN MakeSignature
Definition: sspi.h:990
struct _SecPkgContext_KeyInfoW SecPkgContext_KeyInfoW
struct _SecPkgContext_NativeNamesW * PSecPkgContext_NativeNamesW
struct _SecPkgInfoA * PSecPkgInfoA
struct _SecHandle SecHandle
#define SEC_ENTRY
Definition: sspi.h:27
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
Definition: sspi.h:961
ULONG cBuffers
Definition: sspi.h:168
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
Definition: sspi.h:949
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
Definition: sspi.h:988
SECURITY_STATUS(SEC_ENTRY * FREE_CONTEXT_BUFFER_FN)(_Inout_ PVOID)
Definition: sspi.h:292
struct _SecPkgContext_CredentialNameA SecPkgContext_CredentialNameA
SECURITY_STATUS SEC_ENTRY RevertSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:311
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)
#define CONST
Definition: pedump.c:81
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:342
struct _SecPkgContext_AuthorityW * PSecPkgContext_AuthorityW
struct _SecPkgContext_StreamSizes SecPkgContext_StreamSizes
struct _SecPkgContext_Sizes SecPkgContext_Sizes
QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW
Definition: sspi.h:978
SECURITY_STATUS(SEC_ENTRY * ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:907
struct _SecPkgContext_SessionKey SecPkgContext_SessionKey
CONST SEC_CHAR * SECURITY_PCSTR
Definition: sspi.h:46
#define _Inout_opt_
Definition: no_sal2.h:258
ULONG cbMaxToken
Definition: sspi.h:94
struct _SECURITY_FUNCTION_TABLE_W * PSecurityFunctionTableW
QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW
Definition: sspi.h:993
ULONG dwAcceptorOffset
Definition: sspi.h:226