FreeRDP
sspi_winpr.c File Reference
#include <winpr/windows.h>
#include <winpr/crt.h>
#include <winpr/sspi.h>
#include <winpr/ssl.h>
#include <winpr/print.h>
#include "sspi.h"
#include "sspi_winpr.h"
#include "../log.h"

Macros

#define TAG   WINPR_TAG("sspi")
 
#define SecHandle_LOWER_MAX   0xFFFFFFFF
 
#define SecHandle_UPPER_MAX   0xFFFFFFFE
 

Functions

static int sspi_ContextBufferAllocTableNew (void)
 
static int sspi_ContextBufferAllocTableGrow (void)
 
static void sspi_ContextBufferAllocTableFree (void)
 
static voidsspi_ContextBufferAlloc (UINT32 allocatorIndex, size_t size)
 
SSPI_CREDENTIALS * sspi_CredentialsNew (void)
 
void sspi_CredentialsFree (SSPI_CREDENTIALS *credentials)
 
voidsspi_SecBufferAlloc (PSecBuffer SecBuffer, ULONG size)
 
void sspi_SecBufferFree (PSecBuffer SecBuffer)
 
SecHandle * sspi_SecureHandleAlloc (void)
 
voidsspi_SecureHandleGetLowerPointer (SecHandle *handle)
 
void sspi_SecureHandleInvalidate (SecHandle *handle)
 
void sspi_SecureHandleSetLowerPointer (SecHandle *handle, void *pointer)
 
voidsspi_SecureHandleGetUpperPointer (SecHandle *handle)
 
void sspi_SecureHandleSetUpperPointer (SecHandle *handle, void *pointer)
 
void sspi_SecureHandleFree (SecHandle *handle)
 
int sspi_SetAuthIdentity (SEC_WINNT_AUTH_IDENTITY *identity, const char *user, const char *domain, const char *password)
 
int sspi_SetAuthIdentityWithUnicodePassword (SEC_WINNT_AUTH_IDENTITY *identity, const char *user, const char *domain, LPWSTR password, ULONG passwordLength)
 
int sspi_CopyAuthIdentity (SEC_WINNT_AUTH_IDENTITY *identity, SEC_WINNT_AUTH_IDENTITY *srcIdentity)
 
PSecBuffer sspi_FindSecBuffer (PSecBufferDesc pMessage, ULONG BufferType)
 
static BOOL CALLBACK sspi_init (PINIT_ONCE InitOnce, PVOID Parameter, PVOID *Context)
 
void sspi_GlobalInit (void)
 
void sspi_GlobalFinish (void)
 
static SecurityFunctionTableA * sspi_GetSecurityFunctionTableAByNameA (const SEC_CHAR *Name)
 
static SecurityFunctionTableW * sspi_GetSecurityFunctionTableWByNameW (const SEC_WCHAR *Name)
 
static SecurityFunctionTableW * sspi_GetSecurityFunctionTableWByNameA (const SEC_CHAR *Name)
 
static void FreeContextBuffer_EnumerateSecurityPackages (void *contextBuffer)
 
static void FreeContextBuffer_QuerySecurityPackageInfo (void *contextBuffer)
 
static void sspi_ContextBufferFree (void *contextBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_EnumerateSecurityPackagesW (ULONG *pcPackages, PSecPkgInfoW *ppPackageInfo)
 
static SECURITY_STATUS SEC_ENTRY winpr_EnumerateSecurityPackagesA (ULONG *pcPackages, PSecPkgInfoA *ppPackageInfo)
 
SecurityFunctionTableW *SEC_ENTRY winpr_InitSecurityInterfaceW (void)
 
SecurityFunctionTableA *SEC_ENTRY winpr_InitSecurityInterfaceA (void)
 
static SECURITY_STATUS SEC_ENTRY winpr_QuerySecurityPackageInfoW (SEC_WCHAR *pszPackageName, PSecPkgInfoW *ppPackageInfo)
 
static SECURITY_STATUS SEC_ENTRY winpr_QuerySecurityPackageInfoA (SEC_CHAR *pszPackageName, PSecPkgInfoA *ppPackageInfo)
 
static SECURITY_STATUS SEC_ENTRY winpr_AcquireCredentialsHandleW (SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialUse, void *pvLogonID, void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
 
static SECURITY_STATUS SEC_ENTRY winpr_AcquireCredentialsHandleA (SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialUse, void *pvLogonID, void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
 
static SECURITY_STATUS SEC_ENTRY winpr_ExportSecurityContext (PCtxtHandle phContext, ULONG fFlags, PSecBuffer pPackedContext, HANDLE *pToken)
 
static SECURITY_STATUS SEC_ENTRY winpr_FreeCredentialsHandle (PCredHandle phCredential)
 
static SECURITY_STATUS SEC_ENTRY winpr_ImportSecurityContextW (SEC_WCHAR *pszPackage, PSecBuffer pPackedContext, HANDLE pToken, PCtxtHandle phContext)
 
static SECURITY_STATUS SEC_ENTRY winpr_ImportSecurityContextA (SEC_CHAR *pszPackage, PSecBuffer pPackedContext, HANDLE pToken, PCtxtHandle phContext)
 
static SECURITY_STATUS SEC_ENTRY winpr_QueryCredentialsAttributesW (PCredHandle phCredential, ULONG ulAttribute, void *pBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_QueryCredentialsAttributesA (PCredHandle phCredential, ULONG ulAttribute, void *pBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_AcceptSecurityContext (PCredHandle phCredential, PCtxtHandle phContext, PSecBufferDesc pInput, ULONG fContextReq, ULONG TargetDataRep, PCtxtHandle phNewContext, PSecBufferDesc pOutput, PULONG pfContextAttr, PTimeStamp ptsTimeStamp)
 
static SECURITY_STATUS SEC_ENTRY winpr_ApplyControlToken (PCtxtHandle phContext, PSecBufferDesc pInput)
 
static SECURITY_STATUS SEC_ENTRY winpr_CompleteAuthToken (PCtxtHandle phContext, PSecBufferDesc pToken)
 
static SECURITY_STATUS SEC_ENTRY winpr_DeleteSecurityContext (PCtxtHandle phContext)
 
static SECURITY_STATUS SEC_ENTRY winpr_FreeContextBuffer (void *pvContextBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_ImpersonateSecurityContext (PCtxtHandle phContext)
 
static SECURITY_STATUS SEC_ENTRY winpr_InitializeSecurityContextW (PCredHandle phCredential, PCtxtHandle phContext, SEC_WCHAR *pszTargetName, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, PULONG pfContextAttr, PTimeStamp ptsExpiry)
 
static SECURITY_STATUS SEC_ENTRY winpr_InitializeSecurityContextA (PCredHandle phCredential, PCtxtHandle phContext, SEC_CHAR *pszTargetName, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, PULONG pfContextAttr, PTimeStamp ptsExpiry)
 
static SECURITY_STATUS SEC_ENTRY winpr_QueryContextAttributesW (PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_QueryContextAttributesA (PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_QuerySecurityContextToken (PCtxtHandle phContext, HANDLE *phToken)
 
static SECURITY_STATUS SEC_ENTRY winpr_SetContextAttributesW (PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer, ULONG cbBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_SetContextAttributesA (PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer, ULONG cbBuffer)
 
static SECURITY_STATUS SEC_ENTRY winpr_RevertSecurityContext (PCtxtHandle phContext)
 
static SECURITY_STATUS SEC_ENTRY winpr_DecryptMessage (PCtxtHandle phContext, PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP)
 
static SECURITY_STATUS SEC_ENTRY winpr_EncryptMessage (PCtxtHandle phContext, ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo)
 
static SECURITY_STATUS SEC_ENTRY winpr_MakeSignature (PCtxtHandle phContext, ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo)
 
static SECURITY_STATUS SEC_ENTRY winpr_VerifySignature (PCtxtHandle phContext, PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP)
 

Variables

const SecPkgInfoA NTLM_SecPkgInfoA
 
const SecPkgInfoW NTLM_SecPkgInfoW
 
const SecurityFunctionTableA NTLM_SecurityFunctionTableA
 
const SecurityFunctionTableW NTLM_SecurityFunctionTableW
 
const SecPkgInfoA KERBEROS_SecPkgInfoA
 
const SecPkgInfoW KERBEROS_SecPkgInfoW
 
const SecurityFunctionTableA KERBEROS_SecurityFunctionTableA
 
const SecurityFunctionTableW KERBEROS_SecurityFunctionTableW
 
const SecPkgInfoA NEGOTIATE_SecPkgInfoA
 
const SecPkgInfoW NEGOTIATE_SecPkgInfoW
 
const SecurityFunctionTableA NEGOTIATE_SecurityFunctionTableA
 
const SecurityFunctionTableW NEGOTIATE_SecurityFunctionTableW
 
const SecPkgInfoA CREDSSP_SecPkgInfoA
 
const SecPkgInfoW CREDSSP_SecPkgInfoW
 
const SecurityFunctionTableA CREDSSP_SecurityFunctionTableA
 
const SecurityFunctionTableW CREDSSP_SecurityFunctionTableW
 
const SecPkgInfoA SCHANNEL_SecPkgInfoA
 
const SecPkgInfoW SCHANNEL_SecPkgInfoW
 
const SecurityFunctionTableA SCHANNEL_SecurityFunctionTableA
 
const SecurityFunctionTableW SCHANNEL_SecurityFunctionTableW
 
static const SecPkgInfoA * SecPkgInfoA_LIST []
 
static const SecPkgInfoW * SecPkgInfoW_LIST []
 
static SecurityFunctionTableA winpr_SecurityFunctionTableA
 
static SecurityFunctionTableW winpr_SecurityFunctionTableW
 
static const SecurityFunctionTableA_NAME SecurityFunctionTableA_NAME_LIST []
 
static const WCHAR NTLM_NAME_W [] = { 'N', 'T', 'L', 'M', '\0' }
 
static const WCHAR KERBEROS_NAME_W [] = { 'K', 'e', 'r', 'b', 'e', 'r', 'o', 's', '\0' }
 
static const WCHAR NEGOTIATE_NAME_W [] = { 'N', 'e', 'g', 'o', 't', 'i', 'a', 't', 'e', '\0' }
 
static const WCHAR CREDSSP_NAME_W [] = { 'C', 'r', 'e', 'd', 'S', 'S', 'P', '\0' }
 
static const WCHAR SCHANNEL_NAME_W [] = { 'S', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '\0' }
 
static const SecurityFunctionTableW_NAME SecurityFunctionTableW_NAME_LIST []
 
static CONTEXT_BUFFER_ALLOC_TABLE ContextBufferAllocTable = { 0 }
 

Macro Definition Documentation

#define SecHandle_LOWER_MAX   0xFFFFFFFF
#define SecHandle_UPPER_MAX   0xFFFFFFFE
#define TAG   WINPR_TAG("sspi")

FreeRDP: A Remote Desktop Protocol Implementation Security Support Provider Interface (SSPI)

Copyright 2012-2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2017 Dorian Ducournau doria.nosp@m.n.du.nosp@m.courn.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

static void FreeContextBuffer_EnumerateSecurityPackages ( void contextBuffer)
static

Here is the caller graph for this function:

void FreeContextBuffer_QuerySecurityPackageInfo ( void contextBuffer)
static

Here is the caller graph for this function:

static void* sspi_ContextBufferAlloc ( UINT32  allocatorIndex,
size_t  size 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static void sspi_ContextBufferAllocTableFree ( void  )
static

Here is the caller graph for this function:

static int sspi_ContextBufferAllocTableGrow ( void  )
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int sspi_ContextBufferAllocTableNew ( void  )
static

Here is the caller graph for this function:

static void sspi_ContextBufferFree ( void contextBuffer)
static

Here is the call graph for this function:

Here is the caller graph for this function:

int sspi_CopyAuthIdentity ( SEC_WINNT_AUTH_IDENTITY *  identity,
SEC_WINNT_AUTH_IDENTITY *  srcIdentity 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void sspi_CredentialsFree ( SSPI_CREDENTIALS *  credentials)

Here is the caller graph for this function:

SSPI_CREDENTIALS* sspi_CredentialsNew ( void  )

Here is the caller graph for this function:

PSecBuffer sspi_FindSecBuffer ( PSecBufferDesc  pMessage,
ULONG  BufferType 
)

Here is the caller graph for this function:

static SecurityFunctionTableA* sspi_GetSecurityFunctionTableAByNameA ( const SEC_CHAR Name)
static

Here is the caller graph for this function:

static SecurityFunctionTableW* sspi_GetSecurityFunctionTableWByNameA ( const SEC_CHAR Name)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SecurityFunctionTableW* sspi_GetSecurityFunctionTableWByNameW ( const SEC_WCHAR Name)
static

Here is the call graph for this function:

Here is the caller graph for this function:

void sspi_GlobalFinish ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void sspi_GlobalInit ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL CALLBACK sspi_init ( PINIT_ONCE  InitOnce,
PVOID  Parameter,
PVOID *  Context 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

void* sspi_SecBufferAlloc ( PSecBuffer  SecBuffer,
ULONG  size 
)

Here is the caller graph for this function:

void sspi_SecBufferFree ( PSecBuffer  SecBuffer)

Here is the caller graph for this function:

SecHandle* sspi_SecureHandleAlloc ( void  )
void sspi_SecureHandleFree ( SecHandle *  handle)
void* sspi_SecureHandleGetLowerPointer ( SecHandle *  handle)

Here is the caller graph for this function:

void* sspi_SecureHandleGetUpperPointer ( SecHandle *  handle)

Here is the caller graph for this function:

void sspi_SecureHandleInvalidate ( SecHandle *  handle)

Here is the caller graph for this function:

void sspi_SecureHandleSetLowerPointer ( SecHandle *  handle,
void pointer 
)

Here is the caller graph for this function:

void sspi_SecureHandleSetUpperPointer ( SecHandle *  handle,
void pointer 
)

Here is the caller graph for this function:

int sspi_SetAuthIdentity ( SEC_WINNT_AUTH_IDENTITY *  identity,
const char *  user,
const char *  domain,
const char *  password 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int sspi_SetAuthIdentityWithUnicodePassword ( SEC_WINNT_AUTH_IDENTITY *  identity,
const char *  user,
const char *  domain,
LPWSTR  password,
ULONG  passwordLength 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_AcceptSecurityContext ( PCredHandle  phCredential,
PCtxtHandle  phContext,
PSecBufferDesc  pInput,
ULONG  fContextReq,
ULONG  TargetDataRep,
PCtxtHandle  phNewContext,
PSecBufferDesc  pOutput,
PULONG  pfContextAttr,
PTimeStamp  ptsTimeStamp 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_AcquireCredentialsHandleA ( SEC_CHAR pszPrincipal,
SEC_CHAR pszPackage,
ULONG  fCredentialUse,
void pvLogonID,
void pAuthData,
SEC_GET_KEY_FN  pGetKeyFn,
void pvGetKeyArgument,
PCredHandle  phCredential,
PTimeStamp  ptsExpiry 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_AcquireCredentialsHandleW ( SEC_WCHAR pszPrincipal,
SEC_WCHAR pszPackage,
ULONG  fCredentialUse,
void pvLogonID,
void pAuthData,
SEC_GET_KEY_FN  pGetKeyFn,
void pvGetKeyArgument,
PCredHandle  phCredential,
PTimeStamp  ptsExpiry 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_ApplyControlToken ( PCtxtHandle  phContext,
PSecBufferDesc  pInput 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_CompleteAuthToken ( PCtxtHandle  phContext,
PSecBufferDesc  pToken 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_DecryptMessage ( PCtxtHandle  phContext,
PSecBufferDesc  pMessage,
ULONG  MessageSeqNo,
PULONG  pfQOP 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_DeleteSecurityContext ( PCtxtHandle  phContext)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_EncryptMessage ( PCtxtHandle  phContext,
ULONG  fQOP,
PSecBufferDesc  pMessage,
ULONG  MessageSeqNo 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_EnumerateSecurityPackagesA ( ULONG *  pcPackages,
PSecPkgInfoA ppPackageInfo 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_EnumerateSecurityPackagesW ( ULONG *  pcPackages,
PSecPkgInfoW ppPackageInfo 
)
static

Standard SSPI API

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_ExportSecurityContext ( PCtxtHandle  phContext,
ULONG  fFlags,
PSecBuffer  pPackedContext,
HANDLE *  pToken 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_FreeContextBuffer ( void pvContextBuffer)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_FreeCredentialsHandle ( PCredHandle  phCredential)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_ImpersonateSecurityContext ( PCtxtHandle  phContext)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_ImportSecurityContextA ( SEC_CHAR pszPackage,
PSecBuffer  pPackedContext,
HANDLE  pToken,
PCtxtHandle  phContext 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_ImportSecurityContextW ( SEC_WCHAR pszPackage,
PSecBuffer  pPackedContext,
HANDLE  pToken,
PCtxtHandle  phContext 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_InitializeSecurityContextA ( PCredHandle  phCredential,
PCtxtHandle  phContext,
SEC_CHAR pszTargetName,
ULONG  fContextReq,
ULONG  Reserved1,
ULONG  TargetDataRep,
PSecBufferDesc  pInput,
ULONG  Reserved2,
PCtxtHandle  phNewContext,
PSecBufferDesc  pOutput,
PULONG  pfContextAttr,
PTimeStamp  ptsExpiry 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_InitializeSecurityContextW ( PCredHandle  phCredential,
PCtxtHandle  phContext,
SEC_WCHAR pszTargetName,
ULONG  fContextReq,
ULONG  Reserved1,
ULONG  TargetDataRep,
PSecBufferDesc  pInput,
ULONG  Reserved2,
PCtxtHandle  phNewContext,
PSecBufferDesc  pOutput,
PULONG  pfContextAttr,
PTimeStamp  ptsExpiry 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

SecurityFunctionTableA* SEC_ENTRY winpr_InitSecurityInterfaceA ( void  )

Here is the caller graph for this function:

SecurityFunctionTableW* SEC_ENTRY winpr_InitSecurityInterfaceW ( void  )

WinPR: Windows Portable Runtime Security Support Provider Interface (SSPI)

Copyright 2012-2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_MakeSignature ( PCtxtHandle  phContext,
ULONG  fQOP,
PSecBufferDesc  pMessage,
ULONG  MessageSeqNo 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_QueryContextAttributesA ( PCtxtHandle  phContext,
ULONG  ulAttribute,
void pBuffer 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_QueryContextAttributesW ( PCtxtHandle  phContext,
ULONG  ulAttribute,
void pBuffer 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_QueryCredentialsAttributesA ( PCredHandle  phCredential,
ULONG  ulAttribute,
void pBuffer 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_QueryCredentialsAttributesW ( PCredHandle  phCredential,
ULONG  ulAttribute,
void pBuffer 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_QuerySecurityContextToken ( PCtxtHandle  phContext,
HANDLE *  phToken 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_QuerySecurityPackageInfoA ( SEC_CHAR pszPackageName,
PSecPkgInfoA ppPackageInfo 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_QuerySecurityPackageInfoW ( SEC_WCHAR pszPackageName,
PSecPkgInfoW ppPackageInfo 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_RevertSecurityContext ( PCtxtHandle  phContext)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_SetContextAttributesA ( PCtxtHandle  phContext,
ULONG  ulAttribute,
void pBuffer,
ULONG  cbBuffer 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_SetContextAttributesW ( PCtxtHandle  phContext,
ULONG  ulAttribute,
void pBuffer,
ULONG  cbBuffer 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static SECURITY_STATUS SEC_ENTRY winpr_VerifySignature ( PCtxtHandle  phContext,
PSecBufferDesc  pMessage,
ULONG  MessageSeqNo,
PULONG  pfQOP 
)
static

Here is the call graph for this function:

Variable Documentation

CONTEXT_BUFFER_ALLOC_TABLE ContextBufferAllocTable = { 0 }
static
const WCHAR CREDSSP_NAME_W[] = { 'C', 'r', 'e', 'd', 'S', 'S', 'P', '\0' }
static
const SecPkgInfoA CREDSSP_SecPkgInfoA
const SecPkgInfoW CREDSSP_SecPkgInfoW
const SecurityFunctionTableA CREDSSP_SecurityFunctionTableA
const SecurityFunctionTableW CREDSSP_SecurityFunctionTableW
const WCHAR KERBEROS_NAME_W[] = { 'K', 'e', 'r', 'b', 'e', 'r', 'o', 's', '\0' }
static
const SecPkgInfoA KERBEROS_SecPkgInfoA
const SecPkgInfoW KERBEROS_SecPkgInfoW
const SecurityFunctionTableA KERBEROS_SecurityFunctionTableA
const SecurityFunctionTableW KERBEROS_SecurityFunctionTableW
const WCHAR NEGOTIATE_NAME_W[] = { 'N', 'e', 'g', 'o', 't', 'i', 'a', 't', 'e', '\0' }
static
const SecPkgInfoA NEGOTIATE_SecPkgInfoA
const SecPkgInfoW NEGOTIATE_SecPkgInfoW
const SecurityFunctionTableA NEGOTIATE_SecurityFunctionTableA
const SecurityFunctionTableW NEGOTIATE_SecurityFunctionTableW
const WCHAR NTLM_NAME_W[] = { 'N', 'T', 'L', 'M', '\0' }
static
const SecPkgInfoA NTLM_SecPkgInfoA
const SecPkgInfoW NTLM_SecPkgInfoW
const SecurityFunctionTableA NTLM_SecurityFunctionTableA
const SecurityFunctionTableW NTLM_SecurityFunctionTableW
const WCHAR SCHANNEL_NAME_W[] = { 'S', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '\0' }
static
const SecPkgInfoA SCHANNEL_SecPkgInfoA
const SecPkgInfoW SCHANNEL_SecPkgInfoW
const SecurityFunctionTableA SCHANNEL_SecurityFunctionTableA
const SecurityFunctionTableW SCHANNEL_SecurityFunctionTableW
const SecPkgInfoA* SecPkgInfoA_LIST[]
static
Initial value:
=
{
}
const SecPkgInfoA NTLM_SecPkgInfoA
Definition: winpr/libwinpr/sspi/NTLM/ntlm.c:1238
const SecPkgInfoA SCHANNEL_SecPkgInfoA
Definition: schannel.c:408
const SecPkgInfoA CREDSSP_SecPkgInfoA
Definition: credssp.c:264
const SecPkgInfoA KERBEROS_SecPkgInfoA
Definition: kerberos.c:64
const SecPkgInfoA NEGOTIATE_SecPkgInfoA
Definition: negotiate.c:47
const SecPkgInfoW* SecPkgInfoW_LIST[]
static
Initial value:
=
{
}
const SecPkgInfoW NEGOTIATE_SecPkgInfoW
Definition: negotiate.c:66
const SecPkgInfoW SCHANNEL_SecPkgInfoW
Definition: schannel.c:427
const SecPkgInfoW CREDSSP_SecPkgInfoW
Definition: credssp.c:284
const SecPkgInfoW KERBEROS_SecPkgInfoW
Definition: kerberos.c:83
const SecPkgInfoW NTLM_SecPkgInfoW
Definition: winpr/libwinpr/sspi/NTLM/ntlm.c:1257
const SecurityFunctionTableA_NAME SecurityFunctionTableA_NAME_LIST[]
static
Initial value:
=
{
}
const SecurityFunctionTableA SCHANNEL_SecurityFunctionTableA
Definition: schannel.c:344
const SecurityFunctionTableA CREDSSP_SecurityFunctionTableA
Definition: credssp.c:200
const SecurityFunctionTableA NTLM_SecurityFunctionTableA
Definition: winpr/libwinpr/sspi/NTLM/ntlm.c:1174
const SecurityFunctionTableA KERBEROS_SecurityFunctionTableA
Definition: kerberos.c:745
const SecurityFunctionTableA NEGOTIATE_SecurityFunctionTableA
Definition: negotiate.c:553
const SecurityFunctionTableW_NAME SecurityFunctionTableW_NAME_LIST[]
static
Initial value:
=
{
}
const SecurityFunctionTableW CREDSSP_SecurityFunctionTableW
Definition: credssp.c:232
const SecurityFunctionTableW KERBEROS_SecurityFunctionTableW
Definition: kerberos.c:777
static const WCHAR NEGOTIATE_NAME_W[]
Definition: sspi_winpr.c:112
const SecurityFunctionTableW NEGOTIATE_SecurityFunctionTableW
Definition: negotiate.c:585
const SecurityFunctionTableW SCHANNEL_SecurityFunctionTableW
Definition: schannel.c:376
const SecurityFunctionTableW NTLM_SecurityFunctionTableW
Definition: winpr/libwinpr/sspi/NTLM/ntlm.c:1206
static const WCHAR CREDSSP_NAME_W[]
Definition: sspi_winpr.c:113
static const WCHAR NTLM_NAME_W[]
Definition: sspi_winpr.c:110
static const WCHAR SCHANNEL_NAME_W[]
Definition: sspi_winpr.c:114
static const WCHAR KERBEROS_NAME_W[]
Definition: sspi_winpr.c:111
static SecurityFunctionTableA winpr_SecurityFunctionTableA
static
static SecurityFunctionTableW winpr_SecurityFunctionTableW
static