sspi.h revision ee6bcfc59fe3b0230aad85e2ef63d0402b7719b2
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * Copyright (C) 2004 Juan Lang
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * This library is free software; you can redistribute it and/or
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * modify it under the terms of the GNU Lesser General Public
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * License as published by the Free Software Foundation; either
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * version 2.1 of the License, or (at your option) any later version.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * This library is distributed in the hope that it will be useful,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * Lesser General Public License for more details.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * You should have received a copy of the GNU Lesser General Public
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * License along with this library; if not, write to the Free Software
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * other than GPL or LGPL is available it will apply instead, Sun elects to use only
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * a choice of LGPL license versions is made available with the language indicating
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * of the LGPL is applied is otherwise unspecified.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* FIXME: #include <sdkddkver.h> */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern "C" {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _SecHandle
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecInvalidateHandle(x) do { \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ((PSecHandle)(x))->dwLower = ((ULONG_PTR)((INT_PTR)-1)); \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ((PSecHandle)(x))->dwUpper = ((ULONG_PTR)((INT_PTR)-1)); \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync } while (0)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ((((PSecHandle)(x))->dwLower != ((ULONG_PTR)(INT_PTR)-1)) && \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync (((PSecHandle)(x))->dwUpper != ((ULONG_PTR)(INT_PTR)-1)))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _UNICODE_STRING {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef UNICODE_STRING SECURITY_STRING, *PSECURITY_STRING;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _SecPkgInfoA
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _SecPkgInfoW
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* fCapabilities field of SecPkgInfo */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _SecBuffer
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for BufferType */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for ulVersion */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (SEC_ENTRY *SEC_GET_KEY_FN)(void *Arg, void *Principal,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG KeyVer, void **Key, SECURITY_STATUS *Status);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(PULONG pcPackages,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(PULONG pcPackages,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define EnumerateSecurityPackages WINELIB_NAME_AW(EnumerateSecurityPackages)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define ENUMERATE_SECURITY_PACKAGES_FN WINELIB_NAME_AW(ENUMERATE_SECURITY_PACKAGES_FN_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PCredHandle phCredential, ULONG ulAttribute, void *pBuffer);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PCredHandle phCredential, ULONG ulAttribute, void *pBuffer);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define QueryCredentialsAttributes WINELIB_NAME_AW(QueryCredentialsAttributes)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *QUERY_CREDENTIALS_ATTRIBUTES_FN_A)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *QUERY_CREDENTIALS_ATTRIBUTES_FN_W)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define QUERY_CREDENTIALS_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CREDENTIALS_ATTRIBUTES_FN_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for QueryCredentialsAttributes ulAttribute */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* types for QueryCredentialsAttributes */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgCredentials_NamesA, *PSecPkgCredentials_NamesA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgCredentials_NamesW, *PSecPkgCredentials_NamesW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgCredentials_Names WINELIB_NAME_AW(SecPkgCredentials_Names)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleA(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleW(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialsUse,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define AcquireCredentialsHandle WINELIB_NAME_AW(AcquireCredentialsHandle)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* flags for fCredentialsUse */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SECPKG_CRED_BOTH (SECPKG_CRED_INBOUND | SECPKG_CRED_OUTBOUND)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ACQUIRE_CREDENTIALS_HANDLE_FN_A)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_CHAR *, SEC_CHAR *, ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ACQUIRE_CREDENTIALS_HANDLE_FN_W)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_WCHAR *, SEC_WCHAR *, ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define ACQUIRE_CREDENTIALS_HANDLE_FN WINELIB_NAME_AW(ACQUIRE_CREDENTIALS_HANDLE_FN_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY FreeContextBuffer(PVOID pv);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *FREE_CONTEXT_BUFFER_FN)(PVOID);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(PCredHandle
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *FREE_CREDENTIALS_HANDLE_FN)(PCredHandle);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY InitializeSecurityContextA(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY InitializeSecurityContextW(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define InitializeSecurityContext WINELIB_NAME_AW(InitializeSecurityContext)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *INITIALIZE_SECURITY_CONTEXT_FN_A)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync (PCredHandle, PCtxtHandle, SEC_CHAR *, ULONG, ULONG, ULONG, PSecBufferDesc,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *INITIALIZE_SECURITY_CONTEXT_FN_W)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync (PCredHandle, PCtxtHandle, SEC_WCHAR *, ULONG, ULONG, ULONG, PSecBufferDesc,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define INITIALIZE_SECURITY_CONTEXT_FN WINELIB_NAME_AW(INITIALIZE_SECURITY_CONTEXT_FN_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* flags for InitializeSecurityContext fContextReq and pfContextAttr */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PCredHandle phCredential, PCtxtHandle phContext, PSecBufferDesc pInput,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PCtxtHandle, PSecBufferDesc, ULONG, ULONG, PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* flags for AcceptSecurityContext fContextReq and pfContextAttr */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for TargetDataRep */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY CompleteAuthToken(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY DeleteSecurityContext(PCtxtHandle phContext);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY ApplyControlToken(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *APPLY_CONTROL_TOKEN_FN)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY QueryContextAttributesA(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY QueryContextAttributesW(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define QueryContextAttributes WINELIB_NAME_AW(QueryContextAttributes)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define QUERY_CONTEXT_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CONTEXT_ATTRIBUTES_FN_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for QueryContextAttributes/SetContextAttributes ulAttribute */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* types for QueryContextAttributes/SetContextAttributes */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_StreamSizes, *PSecPkgContext_StreamSizes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_Names WINELIB_NAME_AW(SecPkgContext_Names)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_Names WINELIB_NAME_AW(PSecPkgContext_Names)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_KeyInfo WINELIB_NAME_AW(SecPkgContext_KeyInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_KeyInfo WINELIB_NAME_AW(PSecPkgContext_KeyInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_AuthorityA, *PSecPkgContext_AuthorityA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_AuthorityW, *PSecPkgContext_AuthorityW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_Authority WINELIB_NAME_AW(SecPkgContext_Authority)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_Authority WINELIB_NAME_AW(PSecPkgContext_Authority)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_ProtoInfoA, *PSecPkgContext_ProtoInfoA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_ProtoInfoW, *PSecPkgContext_ProtoInfoW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_ProtoInfo WINELIB_NAME_AW(SecPkgContext_ProtoInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_ProtoInfo WINELIB_NAME_AW(PSecPkgContext_ProtoInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_PasswordExpiry, *PSecPkgContext_PasswordExpiry;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char *SessionKey;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_SessionKey, *PSecPkgContext_SessionKey;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_PackageInfoA, *PSecPkgContext_PackageInfoA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_PackageInfoW, *PSecPkgContext_PackageInfoW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_PackageInfo WINELIB_NAME_AW(SecPkgContext_PackageInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_PackageInfo WINELIB_NAME_AW(PSecPkgContext_PackageInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_UserFlags, *PSecPkgContext_UserFlags;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_NegotiationInfoA, *PSecPkgContext_NegotiationInfoA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_NegotiationInfoW, *PSecPkgContext_NegotiationInfoW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_NegotiationInfo WINELIB_NAME_AW(SecPkgContext_NegotiationInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_NegotiationInfo WINELIB_NAME_AW(PSecPkgContext_NegotiationInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for NegotiationState */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_NativeNamesA, *PSecPkgContext_NativeNamesA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_NativeNamesW, *PSecPkgContext_NativeNamesW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_NativeNames WINELIB_NAME_AW(SecPkgContext_NativeNames)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_NativeNames WINELIB_NAME_AW(PSecPkgContext_NativeNames)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_CredentialNameA, *PSecPkgContext_CredentialNameA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_CredentialNameW, *PSecPkgContext_CredentialNameW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecPkgContext_CredentialName WINELIB_NAME_AW(SecPkgContext_CredentialName)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecPkgContext_CredentialName WINELIB_NAME_AW(PSecPkgContext_CredentialName)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_AccessToken, *PSecPkgContext_AccessToken;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char *MarshalledTargetInfo;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} SecPkgContext_TargetInformation, *PSecPkgContext_TargetInformation;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(PCtxtHandle phContext);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *IMPERSONATE_SECURITY_CONTEXT_FN)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY RevertSecurityContext(PCtxtHandle phContext);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY MakeSignature(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *MAKE_SIGNATURE_FN)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY VerifySignature(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *VERIFY_SIGNATURE_FN)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_CHAR *pszPackageName, PSecPkgInfoA *ppPackageInfo);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_WCHAR *pszPackageName, PSecPkgInfoW *ppPackageInfo);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define QuerySecurityPackageInfo WINELIB_NAME_AW(QuerySecurityPackageInfo)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_PACKAGE_INFO_FN_A)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_PACKAGE_INFO_FN_W)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define QUERY_SECURITY_PACKAGE_INFO_FN WINELIB_NAME_AW(QUERY_SECURITY_PACKAGE_INFO_FN_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY ExportSecurityContext(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ULONG fFlags, PSecBuffer pPackedContext, void **pToken);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for ExportSecurityContext fFlags */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY ImportSecurityContextA(SEC_CHAR *pszPackage,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY ImportSecurityContextW(SEC_WCHAR *pszPackage,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define ImportSecurityContext WINELIB_NAME_AW(ImportSecurityContext)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *IMPORT_SECURITY_CONTEXT_FN_A)(SEC_CHAR *,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *IMPORT_SECURITY_CONTEXT_FN_W)(SEC_WCHAR *,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define IMPORT_SECURITY_CONTEXT_FN WINELIB_NAME_AW(IMPORT_SECURITY_CONTEXT_FN_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY AddCredentialsA(PCredHandle hCredentials,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialUse,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY AddCredentialsW(PCredHandle hCredentials,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialUse,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define AddCredentials WINELIB_NAME_AW(AddCredentials)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ADD_CREDENTIALS_FN_A)(PCredHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_CHAR *, SEC_CHAR *, ULONG, void *, SEC_GET_KEY_FN, void *,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ADD_CREDENTIALS_FN_W)(PCredHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_CONTEXT_TOKEN_FN)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY EncryptMessage(PCtxtHandle phContext, ULONG fQOP,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY DecryptMessage(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* values for EncryptMessage fQOP */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *DECRYPT_MESSAGE_FN)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY SetContextAttributesA(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSECURITY_STATUS SEC_ENTRY SetContextAttributesW(PCtxtHandle phContext,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SetContextAttributes WINELIB_NAME_AW(SetContextAttributes)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *SET_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef SECURITY_STATUS (SEC_ENTRY *SET_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SECURITY_ENTRYPOINT_ANSIA "InitSecurityInterfaceA"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SECURITY_ENTRYPOINT_ANSIW "InitSecurityInterfaceW"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SECURITY_ENTRYPOINT_ANSI WINELIB_NAME_AW(SECURITY_ENTRYPOINT_ANSI)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync IMPORT_SECURITY_CONTEXT_FN_A ImportSecurityContextA;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SecurityFunctionTable WINELIB_NAME_AW(SecurityFunctionTable)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSecurityFunctionTable WINELIB_NAME_AW(PSecurityFunctionTable)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPSecurityFunctionTableA SEC_ENTRY InitSecurityInterfaceA(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPSecurityFunctionTableW SEC_ENTRY InitSecurityInterfaceW(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define InitSecurityInterface WINELIB_NAME_AW(InitSecurityInterface)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef PSecurityFunctionTableA (SEC_ENTRY *INIT_SECURITY_INTERFACE_A)(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef PSecurityFunctionTableW (SEC_ENTRY *INIT_SECURITY_INTERFACE_W)(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define INIT_SECURITY_INTERFACE WINELIB_NAME_AW(INIT_SECURITY_INTERFACE_)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* ndef __WINE_SSPI_H__ */