Blame winpr/libwinpr/sspi/sspi_export.c

Packit 1fb8d4
/**
Packit 1fb8d4
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit 1fb8d4
 * Security Support Provider Interface (SSPI)
Packit 1fb8d4
 *
Packit 1fb8d4
 * Copyright 2012-2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit 1fb8d4
 *
Packit 1fb8d4
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1fb8d4
 * you may not use this file except in compliance with the License.
Packit 1fb8d4
 * You may obtain a copy of the License at
Packit 1fb8d4
 *
Packit 1fb8d4
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1fb8d4
 *
Packit 1fb8d4
 * Unless required by applicable law or agreed to in writing, software
Packit 1fb8d4
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1fb8d4
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1fb8d4
 * See the License for the specific language governing permissions and
Packit 1fb8d4
 * limitations under the License.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#ifdef HAVE_CONFIG_H
Packit 1fb8d4
#include "config.h"
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit 1fb8d4
#ifdef _WIN32
Packit 1fb8d4
#define SEC_ENTRY __stdcall
Packit Service 5a9772
#define SSPI_EXPORT __declspec(dllexport)
Packit 1fb8d4
#else
Packit 1fb8d4
#include <winpr/winpr.h>
Packit 1fb8d4
#define SEC_ENTRY
Packit 1fb8d4
#define SSPI_EXPORT WINPR_API
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit 1fb8d4
#ifdef _WIN32
Packit 1fb8d4
typedef long LONG;
Packit 1fb8d4
typedef unsigned long ULONG;
Packit 1fb8d4
#endif
Packit 1fb8d4
typedef LONG SECURITY_STATUS;
Packit 1fb8d4
Packit 1fb8d4
/**
Packit 1fb8d4
 * Standard SSPI API
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
/* Package Management */
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_EnumerateSecurityPackagesW(void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(void* pcPackages,
Packit Service 5a9772
                                                                 void* ppPackageInfo)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_EnumerateSecurityPackagesW(pcPackages, ppPackageInfo);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_EnumerateSecurityPackagesA(void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(void* pcPackages,
Packit Service 5a9772
                                                                 void* ppPackageInfo)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_EnumerateSecurityPackagesA(pcPackages, ppPackageInfo);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern void* SEC_ENTRY sspi_InitSecurityInterfaceW(void);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT void* SEC_ENTRY InitSecurityInterfaceW(void)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_InitSecurityInterfaceW();
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern void* SEC_ENTRY sspi_InitSecurityInterfaceA(void);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT void* SEC_ENTRY InitSecurityInterfaceA(void)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_InitSecurityInterfaceA();
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_QuerySecurityPackageInfoW(void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(void* pszPackageName,
Packit Service 5a9772
                                                                void* ppPackageInfo)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_QuerySecurityPackageInfoW(pszPackageName, ppPackageInfo);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_QuerySecurityPackageInfoA(void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(void* pszPackageName,
Packit Service 5a9772
                                                                void* ppPackageInfo)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_QuerySecurityPackageInfoA(pszPackageName, ppPackageInfo);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
/* Credential Management */
Packit 1fb8d4
Packit Service 5a9772
extern SECURITY_STATUS SEC_ENTRY sspi_AcquireCredentialsHandleW(void*, void*, ULONG, void*, void*,
Packit Service 5a9772
                                                                void*, void*, void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleW(
Packit Service 5a9772
    void* pszPrincipal, void* pszPackage, ULONG fCredentialUse, void* pvLogonID, void* pAuthData,
Packit Service 5a9772
    void* pGetKeyFn, void* pvGetKeyArgument, void* phCredential, void* ptsExpiry)
Packit 1fb8d4
{
Packit Service 5a9772
	return sspi_AcquireCredentialsHandleW(pszPrincipal, pszPackage, fCredentialUse, pvLogonID,
Packit Service 5a9772
	                                      pAuthData, pGetKeyFn, pvGetKeyArgument, phCredential,
Packit Service 5a9772
	                                      ptsExpiry);
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
extern SECURITY_STATUS SEC_ENTRY sspi_AcquireCredentialsHandleA(void*, void*, ULONG, void*, void*,
Packit Service 5a9772
                                                                void*, void*, void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleA(
Packit Service 5a9772
    void* pszPrincipal, void* pszPackage, ULONG fCredentialUse, void* pvLogonID, void* pAuthData,
Packit Service 5a9772
    void* pGetKeyFn, void* pvGetKeyArgument, void* phCredential, void* ptsExpiry)
Packit 1fb8d4
{
Packit Service 5a9772
	return sspi_AcquireCredentialsHandleA(pszPrincipal, pszPackage, fCredentialUse, pvLogonID,
Packit Service 5a9772
	                                      pAuthData, pGetKeyFn, pvGetKeyArgument, phCredential,
Packit Service 5a9772
	                                      ptsExpiry);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_ExportSecurityContext(void*, ULONG, void*, void**);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ExportSecurityContext(void* phContext, ULONG fFlags,
Packit Service 5a9772
                                                            void* pPackedContext, void** pToken)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_ExportSecurityContext(phContext, fFlags, pPackedContext, pToken);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_FreeCredentialsHandle(void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(void* phCredential)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_FreeCredentialsHandle(phCredential);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_ImportSecurityContextW(void*, void*, void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ImportSecurityContextW(void* pszPackage, void* pPackedContext,
Packit Service 5a9772
                                                             void* pToken, void* phContext)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_ImportSecurityContextW(pszPackage, pPackedContext, pToken, phContext);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_ImportSecurityContextA(void*, void*, void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ImportSecurityContextA(void* pszPackage, void* pPackedContext,
Packit Service 5a9772
                                                             void* pToken, void* phContext)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_ImportSecurityContextA(pszPackage, pPackedContext, pToken, phContext);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_QueryCredentialsAttributesW(void*, ULONG, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(void* phCredential,
Packit Service 5a9772
                                                                  ULONG ulAttribute, void* pBuffer)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_QueryCredentialsAttributesW(phCredential, ulAttribute, pBuffer);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_QueryCredentialsAttributesA(void*, ULONG, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(void* phCredential,
Packit Service 5a9772
                                                                  ULONG ulAttribute, void* pBuffer)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_QueryCredentialsAttributesA(phCredential, ulAttribute, pBuffer);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
/* Context Management */
Packit 1fb8d4
Packit Service 5a9772
extern SECURITY_STATUS SEC_ENTRY sspi_AcceptSecurityContext(void*, void*, void*, ULONG, ULONG,
Packit Service 5a9772
                                                            void*, void*, void*, void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY AcceptSecurityContext(void* phCredential, void* phContext,
Packit Service 5a9772
                                                            void* pInput, ULONG fContextReq,
Packit Service 5a9772
                                                            ULONG TargetDataRep, void* phNewContext,
Packit Service 5a9772
                                                            void* pOutput, void* pfContextAttr,
Packit Service 5a9772
                                                            void* ptsTimeStamp)
Packit 1fb8d4
{
Packit Service 5a9772
	return sspi_AcceptSecurityContext(phCredential, phContext, pInput, fContextReq, TargetDataRep,
Packit Service 5a9772
	                                  phNewContext, pOutput, pfContextAttr, ptsTimeStamp);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_ApplyControlToken(void*, void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ApplyControlToken(void* phContext, void* pInput)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_ApplyControlToken(phContext, pInput);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_CompleteAuthToken(void*, void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY CompleteAuthToken(void* phContext, void* pToken)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_CompleteAuthToken(phContext, pToken);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_DeleteSecurityContext(void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(void* phContext)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_DeleteSecurityContext(phContext);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_FreeContextBuffer(void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY FreeContextBuffer(void* pvContextBuffer)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_FreeContextBuffer(pvContextBuffer);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_ImpersonateSecurityContext(void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(void* phContext)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_ImpersonateSecurityContext(phContext);
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
extern SECURITY_STATUS SEC_ENTRY sspi_InitializeSecurityContextW(void*, void*, void*, ULONG, ULONG,
Packit Service 5a9772
                                                                 ULONG, void*, ULONG, void*, void*,
Packit Service 5a9772
                                                                 void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY InitializeSecurityContextW(
Packit Service 5a9772
    void* phCredential, void* phContext, void* pszTargetName, ULONG fContextReq, ULONG Reserved1,
Packit Service 5a9772
    ULONG TargetDataRep, void* pInput, ULONG Reserved2, void* phNewContext, void* pOutput,
Packit Service 5a9772
    void* pfContextAttr, void* ptsExpiry)
Packit 1fb8d4
{
Packit Service 5a9772
	return sspi_InitializeSecurityContextW(phCredential, phContext, pszTargetName, fContextReq,
Packit Service 5a9772
	                                       Reserved1, TargetDataRep, pInput, Reserved2,
Packit Service 5a9772
	                                       phNewContext, pOutput, pfContextAttr, ptsExpiry);
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
extern SECURITY_STATUS SEC_ENTRY sspi_InitializeSecurityContextA(void*, void*, void*, ULONG, ULONG,
Packit Service 5a9772
                                                                 ULONG, void*, ULONG, void*, void*,
Packit Service 5a9772
                                                                 void*, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY InitializeSecurityContextA(
Packit Service 5a9772
    void* phCredential, void* phContext, void* pszTargetName, ULONG fContextReq, ULONG Reserved1,
Packit Service 5a9772
    ULONG TargetDataRep, void* pInput, ULONG Reserved2, void* phNewContext, void* pOutput,
Packit Service 5a9772
    void* pfContextAttr, void* ptsExpiry)
Packit 1fb8d4
{
Packit Service 5a9772
	return sspi_InitializeSecurityContextA(phCredential, phContext, pszTargetName, fContextReq,
Packit Service 5a9772
	                                       Reserved1, TargetDataRep, pInput, Reserved2,
Packit Service 5a9772
	                                       phNewContext, pOutput, pfContextAttr, ptsExpiry);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_QueryContextAttributesW(void*, ULONG, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(void* phContext, ULONG ulAttribute,
Packit Service 5a9772
                                                              void* pBuffer)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_QueryContextAttributesW(phContext, ulAttribute, pBuffer);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_QueryContextAttributesA(void*, ULONG, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(void* phContext, ULONG ulAttribute,
Packit Service 5a9772
                                                              void* pBuffer)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_QueryContextAttributesA(phContext, ulAttribute, pBuffer);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_QuerySecurityContextToken(void*, void**);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(void* phContext, void** phToken)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_QuerySecurityContextToken(phContext, phToken);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_SetContextAttributesW(void*, ULONG, void*, ULONG);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY SetContextAttributesW(void* phContext, ULONG ulAttribute,
Packit Service 5a9772
                                                            void* pBuffer, ULONG cbBuffer)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_SetContextAttributesW(phContext, ulAttribute, pBuffer, cbBuffer);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_SetContextAttributesA(void*, ULONG, void*, ULONG);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY SetContextAttributesA(void* phContext, ULONG ulAttribute,
Packit Service 5a9772
                                                            void* pBuffer, ULONG cbBuffer)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_SetContextAttributesA(phContext, ulAttribute, pBuffer, cbBuffer);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_RevertSecurityContext(void*);
Packit 1fb8d4
Packit 1fb8d4
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY RevertSecurityContext(void* phContext)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_RevertSecurityContext(phContext);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
/* Message Support */
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_DecryptMessage(void*, void*, ULONG, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY DecryptMessage(void* phContext, void* pMessage,
Packit Service 5a9772
                                                     ULONG MessageSeqNo, void* pfQOP)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_DecryptMessage(phContext, pMessage, MessageSeqNo, pfQOP);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_EncryptMessage(void*, ULONG, void*, ULONG);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY EncryptMessage(void* phContext, ULONG fQOP, void* pMessage,
Packit Service 5a9772
                                                     ULONG MessageSeqNo)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_EncryptMessage(phContext, fQOP, pMessage, MessageSeqNo);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_MakeSignature(void*, ULONG, void*, ULONG);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY MakeSignature(void* phContext, ULONG fQOP, void* pMessage,
Packit Service 5a9772
                                                    ULONG MessageSeqNo)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_MakeSignature(phContext, fQOP, pMessage, MessageSeqNo);
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
extern SECURITY_STATUS SEC_ENTRY sspi_VerifySignature(void*, void*, ULONG, void*);
Packit 1fb8d4
Packit Service 5a9772
SSPI_EXPORT SECURITY_STATUS SEC_ENTRY VerifySignature(void* phContext, void* pMessage,
Packit Service 5a9772
                                                      ULONG MessageSeqNo, void* pfQOP)
Packit 1fb8d4
{
Packit 1fb8d4
	return sspi_VerifySignature(phContext, pMessage, MessageSeqNo, pfQOP);
Packit 1fb8d4
}