ReactOS  0.4.15-dev-994-ga9f6032
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 // 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_
84 typedef 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 
102 typedef struct _SecPkgInfoA
103 {
105  unsigned short wVersion;
106  unsigned short wRPCID;
111 
112 typedef 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 
152 typedef struct _SecBuffer {
155  _Field_size_bytes_(cbBuffer) void *pvBuffer;
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 
180 typedef struct _SecBufferDesc {
183  _Field_size_(cBuffers) PSecBuffer pBuffers;
185 
186 /* values for ulVersion */
187 #define SECBUFFER_VERSION 0
188 
189 typedef void (SEC_ENTRY *SEC_GET_KEY_FN)(void *Arg, void *Principal,
190  ULONG KeyVer, void **Key, SECURITY_STATUS *Status);
191 
193 SEC_ENTRY
195  _Out_ PULONG pcPackages,
196  _Outptr_ PSecPkgInfoA *ppPackageInfo);
197 
199 SEC_ENTRY
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 
213 SEC_ENTRY
215  _In_ PCredHandle phCredential,
216  _In_ ULONG ulAttribute,
217  _Inout_ void *pBuffer);
218 
220 SEC_ENTRY
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 
234 typedef 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 
262 SEC_ENTRY
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 
275 SEC_ENTRY
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 
309 SEC_ENTRY
311  _In_ PCredHandle phCredential);
312 
313 #define FreeCredentialHandle FreeCredentialsHandle
314 
316 
318 SEC_ENTRY
320  _In_opt_ PCredHandle phCredential,
321  _In_opt_ PCtxtHandle phContext,
322  _In_opt_ SEC_CHAR *pszTargetName,
323  _In_ ULONG fContextReq,
325  _In_ ULONG TargetDataRep,
326  _In_opt_ PSecBufferDesc pInput,
328  _Inout_opt_ PCtxtHandle phNewContext,
329  _Inout_opt_ PSecBufferDesc pOutput,
330  _Out_ ULONG *pfContextAttr,
331  _Out_opt_ PTimeStamp ptsExpiry);
332 
334 SEC_ENTRY
336  _In_opt_ PCredHandle phCredential,
337  _In_opt_ PCtxtHandle phContext,
338  _In_opt_ SEC_WCHAR *pszTargetName,
339  _In_ ULONG fContextReq,
341  _In_ ULONG TargetDataRep,
342  _In_opt_ PSecBufferDesc pInput,
344  _Inout_opt_ PCtxtHandle phNewContext,
345  _Inout_opt_ PSecBufferDesc pOutput,
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 
409 SEC_ENTRY
411  _In_opt_ PCredHandle phCredential,
412  _In_opt_ PCtxtHandle phContext,
413  _In_opt_ PSecBufferDesc pInput,
414  _In_ ULONG fContextReq,
415  _In_ ULONG TargetDataRep,
416  _Inout_opt_ PCtxtHandle phNewContext,
417  _Inout_opt_ PSecBufferDesc pOutput,
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 
477 SEC_ENTRY
479  _In_ PCtxtHandle phContext,
480  _In_ PSecBufferDesc pToken);
481 
484 
486 
488 
490 SEC_ENTRY
492  _In_ PCtxtHandle phContext,
493  _In_ PSecBufferDesc pInput);
494 
497 
499 SEC_ENTRY
501  _In_ PCtxtHandle phContext,
502  _In_ ULONG ulAttribute,
503  _Out_ void *pBuffer);
504 
506 SEC_ENTRY
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 
559 typedef struct _SecPkgContext_Sizes
560 {
566 
568 {
575 
576 typedef struct _SecPkgContext_NamesA
577 {
580 
581 typedef struct _SecPkgContext_NamesW
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 
675 typedef struct _SecPkgContext_Flags
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 {
739  void *AccessToken;
741 
743 {
745  unsigned char *MarshalledTargetInfo;
747 
749 {
751  char *AuthzID;
753 
754 typedef struct _SecPkgContext_Target
755 {
757  char *Target;
759 
761 {
765 
768 SEC_ENTRY
770  _In_ PCtxtHandle phContext);
771 
774 
776 
778 
780 SEC_ENTRY
782  _In_ PCtxtHandle phContext,
783  _In_ ULONG fQOP,
784  _In_ PSecBufferDesc pMessage,
785  _In_ ULONG MessageSeqNo);
786 
789 
791 SEC_ENTRY
793  _In_ PCtxtHandle phContext,
794  _In_ PSecBufferDesc pMessage,
795  _In_ ULONG MessageSeqNo,
796  _Out_ PULONG pfQOP);
797 
800 
802 SEC_ENTRY
804  _In_ SEC_CHAR *pszPackageName,
805  _Outptr_ PSecPkgInfoA *ppPackageInfo);
806 
808 SEC_ENTRY
810  _In_ SEC_WCHAR *pszPackageName,
811  _Outptr_ PSecPkgInfoW *ppPackageInfo);
812 
813 #define QuerySecurityPackageInfo WINELIB_NAME_AW(QuerySecurityPackageInfo)
814 
819 #define QUERY_SECURITY_PACKAGE_INFO_FN WINELIB_NAME_AW(QUERY_SECURITY_PACKAGE_INFO_FN_)
820 
822 SEC_ENTRY
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 
837 SEC_ENTRY
839  _In_ SEC_CHAR *pszPackage,
840  _In_ PSecBuffer pPackedContext,
841  _In_ void *Token,
842  _Out_ PCtxtHandle phContext);
843 
845 SEC_ENTRY
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 
861 SEC_ENTRY
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 
873 SEC_ENTRY
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 
894 SEC_ENTRY
896  _In_ PCtxtHandle phContext,
897  _Out_ HANDLE *phToken);
898 
901 
903 SEC_ENTRY
905  _In_ PCtxtHandle phContext,
906  _In_ ULONG fQOP,
907  _In_ PSecBufferDesc pMessage,
908  _In_ ULONG MessageSeqNo);
909 
911 SEC_ENTRY
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 
927 SEC_ENTRY
929  _In_ PCtxtHandle phContext,
930  _In_ ULONG ulAttribute,
931  _In_reads_bytes_(cbBuffer) void *pBuffer,
932  _In_ ULONG cbBuffer);
933 
935 SEC_ENTRY
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 {
960  void *Reserved2;
973  void *Reserved3;
974  void *Reserved4;
978  void *Reserved8;
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 {
995  void *Reserved2;
1008  void *Reserved3;
1009  void *Reserved4;
1013  void *Reserved8;
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__ */
SEC_WCHAR * sUserName
Definition: sspi.h:583
SEC_WCHAR * sServerName
Definition: sspi.h:716
SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(_In_ PCredHandle phCredential, _In_ ULONG ulAttribute, _Inout_ void *pBuffer)
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
Definition: sspi.h:964
_Field_size_(cBuffers) PSecBuffer pBuffers
DECRYPT_MESSAGE_FN DecryptMessage
Definition: sspi.h:981
const uint16_t * PCWSTR
Definition: typedefs.h:57
struct _SEC_CHANNEL_BINDINGS SEC_CHANNEL_BINDINGS
QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA
Definition: sspi.h:972
SEC_WCHAR * Comment
Definition: sspi.h:119
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:944
SECURITY_STATUS(SEC_ENTRY * EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle, ULONG, PSecBuffer, void **)
Definition: sspi.h:829
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:237
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG Key
Definition: fatprocs.h:2706
struct _SecPkgInfoW SecPkgInfoW
APPLY_CONTROL_TOKEN_FN ApplyControlToken
Definition: sspi.h:1000
ADD_CREDENTIALS_FN_A AddCredentialsA
Definition: sspi.h:977
struct _SecBuffer * PSecBuffer
TimeStamp tsStart
Definition: sspi.h:591
struct _SecPkgCredentials_NamesA * PSecPkgCredentials_NamesA
WCHAR SEC_WCHAR
Definition: sspi.h:29
ULONG cbApplicationDataLength
Definition: sspi.h:241
ULONG EncryptAlgorithm
Definition: sspi.h:616
ULONG LowPart
Definition: sspi.h:75
VERIFY_SIGNATURE_FN VerifySignature
Definition: sspi.h:1005
unsigned short wRPCID
Definition: sspi.h:106
ULONG ulVersion
Definition: sspi.h:181
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_A)(SEC_CHAR *, PSecBuffer, void *, PCtxtHandle)
Definition: sspi.h:854
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:296
struct _SecPkgCredentials_NamesA SecPkgCredentials_NamesA
struct _SecPkgContext_UserFlags SecPkgContext_UserFlags
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG, PSecPkgInfoW *)
Definition: sspi.h:208
struct _SecPkgContext_Bindings * PSecPkgContext_Bindings
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
Definition: sspi.h:1003
char CHAR
Definition: xmlstorage.h:175
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
Definition: sspi.h:994
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:419
struct _LUID * PLUID
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG, PSecPkgInfoA *)
Definition: sspi.h:206
SEC_CHAR * sClientName
Definition: sspi.h:709
_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:1016
#define _Outptr_
Definition: no_sal2.h:396
struct _SecHandle * PSecHandle
struct _SecPkgContext_PackageInfoA SecPkgContext_PackageInfoA
PSecPkgInfoA PackageInfo
Definition: sspi.h:687
struct _SecPkgContext_NamesW * PSecPkgContext_NamesW
APPLY_CONTROL_TOKEN_FN ApplyControlToken
Definition: sspi.h:965
unsigned short wVersion
Definition: sspi.h:115
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:96
struct _SECURITY_STRING SECURITY_STRING
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:959
SECURITY_STATUS(SEC_ENTRY * APPLY_CONTROL_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:495
#define _Check_return_
Definition: no_sal2.h:13
SECURITY_STATUS(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, void *, ULONG)
Definition: sspi.h:946
struct _SecPkgContext_NativeNamesA * PSecPkgContext_NativeNamesA
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
Definition: sspi.h:967
unsigned char * MarshalledTargetInfo
Definition: sspi.h:745
ULONG SignatureAlgorithm
Definition: sspi.h:606
ULONG_PTR dwLower
Definition: sspi.h:53
SECURITY_STATUS(SEC_ENTRY * REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:777
PSecPkgInfoW PackageInfo
Definition: sspi.h:669
SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(_In_ PCtxtHandle phContext, _Out_ HANDLE *phToken)
Definition: stubs.c:297
struct _SecPkgCredentials_NamesW * PSecPkgCredentials_NamesW
SECURITY_STATUS(SEC_ENTRY * DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:487
struct _SecPkgContext_ProtoInfoW * PSecPkgContext_ProtoInfoW
struct _SecPkgContext_NativeNamesA SecPkgContext_NativeNamesA
ULONG cbBlockSize
Definition: sspi.h:563
SECURITY_STATUS SEC_ENTRY EncryptMessage(_In_ PCtxtHandle phContext, _In_ ULONG fQOP, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo)
ULONG fCapabilities
Definition: sspi.h:104
SEC_WCHAR * sUserName
Definition: sspi.h:256
SECURITY_STATUS SEC_ENTRY FreeContextBuffer(_Inout_ PVOID pv)
Definition: stubs.c:134
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:958
ENCRYPT_MESSAGE_FN EncryptMessage
Definition: sspi.h:1015
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:612
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:421
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:604
struct _SecPkgContext_PackageInfoW SecPkgContext_PackageInfoW
TimeStamp tsPasswordExpires
Definition: sspi.h:654
struct _SecPkgContext_Sizes * PSecPkgContext_Sizes
ULONG fCapabilities
Definition: sspi.h:114
uint32_t ULONG_PTR
Definition: typedefs.h:65
ULONG cbInitiatorLength
Definition: sspi.h:236
ULONG cbMaxSignature
Definition: sspi.h:562
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:516
struct _SecPkgContext_Target * PSecPkgContext_Target
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
Definition: sspi.h:979
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:256
MAKE_SIGNATURE_FN MakeSignature
Definition: sspi.h:969
ULONG dwInitiatorAddrType
Definition: sspi.h:235
struct _SecPkgContext_ProtoInfoA * PSecPkgContext_ProtoInfoA
struct _SecPkgContext_NamesA * PSecPkgContext_NamesA
long LONG
Definition: pedump.c:60
ULONG cbMaxToken
Definition: sspi.h:117
QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA
Definition: sspi.h:966
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:923
_Check_return_ SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:178
ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW
Definition: sspi.h:991
ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA
Definition: sspi.h:956
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:118
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:971
PSecurityFunctionTableA(SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void)
Definition: sspi.h:1030
PVOID pBuffer
SEC_CHAR * Comment
Definition: sspi.h:109
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
#define _Out_
Definition: no_sal2.h:323
unsigned short wRPCID
Definition: sspi.h:116
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
SEC_CHAR * sAuthorityName
Definition: sspi.h:624
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:72
ENCRYPT_MESSAGE_FN EncryptMessage
Definition: sspi.h:980
struct _SecPkgContext_Flags SecPkgContext_Flags
Definition: bcd.h:202
struct _SecPkgContext_StreamSizes * PSecPkgContext_StreamSizes
SEC_CHAR * sUserName
Definition: sspi.h:251
LONG SECURITY_STATUS
Definition: sspi.h:34
PSecurityFunctionTableW(SEC_ENTRY * INIT_SECURITY_INTERFACE_W)(void)
Definition: sspi.h:1031
#define _Out_opt_
Definition: no_sal2.h:339
VERIFY_SIGNATURE_FN VerifySignature
Definition: sspi.h:970
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:816
SEC_WCHAR * sProtocolName
Definition: sspi.h:644
SECURITY_STATUS(SEC_ENTRY * FREE_CREDENTIALS_HANDLE_FN)(PCredHandle)
Definition: sspi.h:315
SECURITY_STATUS(SEC_ENTRY * VERIFY_SIGNATURE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:798
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:440
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:976
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:231
struct _SecPkgContext_ProtoInfoW SecPkgContext_ProtoInfoW
INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA
Definition: sspi.h:961
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:482
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
Definition: sspi.h:999
struct _SECURITY_INTEGER * PSECURITY_INTEGER
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
Definition: winbase.h:2674
struct _SecPkgContext_KeyInfoA * PSecPkgContext_KeyInfoA
struct _SECURITY_FUNCTION_TABLE_A * PSecurityFunctionTableA
INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW
Definition: sspi.h:996
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:578
SECURITY_STATUS(SEC_ENTRY * MAKE_SIGNATURE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:787
struct _SecPkgContext_NamesA SecPkgContext_NamesA
SEC_CHAR * sCredentialName
Definition: sspi.h:725
struct _SecBuffer SecBuffer
ULONG dwApplicationDataOffset
Definition: sspi.h:242
ADD_CREDENTIALS_FN_W AddCredentialsW
Definition: sspi.h:1012
IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW
Definition: sspi.h:1011
TimeStamp tsExpiry
Definition: sspi.h:592
ULONG TargetLength
Definition: sspi.h:756
Status
Definition: gdiplustypes.h:24
struct _SECURITY_FUNCTION_TABLE_W SecurityFunctionTableW
ULONG cbSecurityTrailer
Definition: sspi.h:564
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:615
SEC_CHAR * sServerName
Definition: sspi.h:710
ULONG BufferType
Definition: sspi.h:154
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
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
PSecHandle PCredHandle
Definition: sspi.h:68
SECURITY_STATUS(SEC_ENTRY * IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:773
struct _SecPkgContext_PasswordExpiry SecPkgContext_PasswordExpiry
PSecPkgInfoW PackageInfo
Definition: sspi.h:693
SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(_In_ PCredHandle phCredential, _In_ ULONG ulAttribute, _Inout_ void *pBuffer)
PSecPkgInfoA PackageInfo
Definition: sspi.h:664
#define _In_reads_bytes_(size)
Definition: no_sal2.h:229
SECURITY_INTEGER TimeStamp
Definition: sspi.h:78
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
Definition: sspi.h:1010
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)
unsigned short MaximumLength
Definition: sspi.h:86
QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA
Definition: sspi.h:957
SEC_CHAR * Name
Definition: sspi.h:108
#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:189
struct _SecPkgInfoA SecPkgInfoA
ULONG cbAcceptorLength
Definition: sspi.h:239
SEC_CHANNEL_BINDINGS * Bindings
Definition: sspi.h:763
struct _SecPkgContext_UserFlags * PSecPkgContext_UserFlags
SEC_WCHAR * sEncryptAlgorithmName
Definition: sspi.h:613
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
Definition: sspi.h:1014
ULONG cbMaxToken
Definition: sspi.h:561
PSecurityFunctionTableW SEC_ENTRY InitSecurityInterfaceW(void)
Definition: sspi.c:132
ULONG cbBuffer
Definition: sspi.h:153
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
Definition: sspi.h:998
struct _SecPkgContext_ProtoInfoA SecPkgContext_ProtoInfoA
SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW
Definition: sspi.h:1017
ULONG dwAcceptorAddrType
Definition: sspi.h:238
SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:89
unsigned short * Buffer
Definition: sspi.h:87
unsigned short wVersion
Definition: sspi.h:105
SEC_WCHAR * sClientName
Definition: sspi.h:715
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:982
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:629
SEC_CHAR * sSignatureAlgorithmName
Definition: sspi.h:603
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
Definition: sspi.h:968
struct _SecPkgContext_PackageInfoA * PSecPkgContext_PackageInfoA
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
Definition: sspi.h:997
struct _SecPkgContext_AuthzID SecPkgContext_AuthzID
struct _SECURITY_INTEGER SECURITY_INTEGER
struct _SecPkgContext_DceInfo SecPkgContext_DceInfo
struct _SECURITY_STRING * PSECURITY_STRING
SEC_CHAR * sProtocolName
Definition: sspi.h:637
ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW
Definition: sspi.h:993
struct _SecPkgContext_DceInfo * PSecPkgContext_DceInfo
SEC_WCHAR * sCredentialName
Definition: sspi.h:731
SECURITY_STATUS(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_A)(PCredHandle, ULONG, PVOID)
Definition: sspi.h:229
SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(_In_ PCredHandle phCredential)
Definition: stubs.c:143
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:1001
ULONG EncryptAlgorithm
Definition: sspi.h:607
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
Definition: sspi.h:962
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:514
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_CONTEXT_TOKEN_FN)(PCtxtHandle, HANDLE *)
Definition: sspi.h:900
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_W)(SEC_WCHAR *, PSecBuffer, void *, PCtxtHandle)
Definition: sspi.h:856
struct _SecPkgContext_AuthzID * PSecPkgContext_AuthzID
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
Definition: sspi.h:1006
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR *, PSecPkgInfoW *)
Definition: sspi.h:818
MAKE_SIGNATURE_FN MakeSignature
Definition: sspi.h:1004
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:975
ULONG cBuffers
Definition: sspi.h:182
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
Definition: sspi.h:963
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
Definition: sspi.h:1002
SECURITY_STATUS(SEC_ENTRY * FREE_CONTEXT_BUFFER_FN)(_Inout_ PVOID)
Definition: sspi.h:306
struct _SecPkgContext_CredentialNameA SecPkgContext_CredentialNameA
SECURITY_STATUS SEC_ENTRY RevertSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:317
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
unsigned short Length
Definition: sspi.h:85
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_AuthorityW * PSecPkgContext_AuthorityW
struct _SecPkgContext_StreamSizes SecPkgContext_StreamSizes
struct _SecPkgContext_Sizes SecPkgContext_Sizes
QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW
Definition: sspi.h:992
SECURITY_STATUS(SEC_ENTRY * ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:921
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:107
struct _SECURITY_FUNCTION_TABLE_W * PSecurityFunctionTableW
QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW
Definition: sspi.h:1007
ULONG dwAcceptorOffset
Definition: sspi.h:240