Commit 420cb678 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

secur32: Forward schannel InitializeSecurityContextA to InitializeSecurityContextW.

parent 937488c2
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
#include "winnls.h"
#include "sspi.h" #include "sspi.h"
#include "schannel.h" #include "schannel.h"
#include "secur32_priv.h" #include "secur32_priv.h"
...@@ -406,10 +407,10 @@ static SECURITY_STATUS SEC_ENTRY schan_FreeCredentialsHandle( ...@@ -406,10 +407,10 @@ static SECURITY_STATUS SEC_ENTRY schan_FreeCredentialsHandle(
} }
/*********************************************************************** /***********************************************************************
* InitializeSecurityContextA * InitializeSecurityContextW
*/ */
static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextA( static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextW(
PCredHandle phCredential, PCtxtHandle phContext, SEC_CHAR *pszTargetName, PCredHandle phCredential, PCtxtHandle phContext, SEC_WCHAR *pszTargetName,
ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep,
PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext,
PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry) PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
...@@ -417,9 +418,9 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextA( ...@@ -417,9 +418,9 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextA(
SECURITY_STATUS ret; SECURITY_STATUS ret;
TRACE("%p %p %s %d %d %d %p %d %p %p %p %p\n", phCredential, phContext, TRACE("%p %p %s %d %d %d %p %d %p %p %p %p\n", phCredential, phContext,
debugstr_a(pszTargetName), fContextReq, Reserved1, TargetDataRep, pInput, debugstr_w(pszTargetName), fContextReq, Reserved1, TargetDataRep, pInput,
Reserved1, phNewContext, pOutput, pfContextAttr, ptsExpiry); Reserved1, phNewContext, pOutput, pfContextAttr, ptsExpiry);
if(phCredential) if (phCredential)
{ {
FIXME("stub\n"); FIXME("stub\n");
ret = SEC_E_UNSUPPORTED_FUNCTION; ret = SEC_E_UNSUPPORTED_FUNCTION;
...@@ -432,28 +433,34 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextA( ...@@ -432,28 +433,34 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextA(
} }
/*********************************************************************** /***********************************************************************
* InitializeSecurityContextW * InitializeSecurityContextA
*/ */
static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextW( static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextA(
PCredHandle phCredential, PCtxtHandle phContext, SEC_WCHAR *pszTargetName, PCredHandle phCredential, PCtxtHandle phContext, SEC_CHAR *pszTargetName,
ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep,
PSecBufferDesc pInput,ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext,
PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry) PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
{ {
SECURITY_STATUS ret; SECURITY_STATUS ret;
SEC_WCHAR *target_name = NULL;
TRACE("%p %p %s %d %d %d %p %d %p %p %p %p\n", phCredential, phContext, TRACE("%p %p %s %d %d %d %p %d %p %p %p %p\n", phCredential, phContext,
debugstr_w(pszTargetName), fContextReq, Reserved1, TargetDataRep, pInput, debugstr_a(pszTargetName), fContextReq, Reserved1, TargetDataRep, pInput,
Reserved1, phNewContext, pOutput, pfContextAttr, ptsExpiry); Reserved1, phNewContext, pOutput, pfContextAttr, ptsExpiry);
if (phCredential)
{ if (pszTargetName)
FIXME("stub\n");
ret = SEC_E_UNSUPPORTED_FUNCTION;
}
else
{ {
ret = SEC_E_INVALID_HANDLE; INT len = MultiByteToWideChar(CP_ACP, 0, pszTargetName, -1, NULL, 0);
target_name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(*target_name));
MultiByteToWideChar(CP_ACP, 0, pszTargetName, -1, target_name, len);
} }
ret = schan_InitializeSecurityContextW(phCredential, phContext, target_name,
fContextReq, Reserved1, TargetDataRep, pInput, Reserved2,
phNewContext, pOutput, pfContextAttr, ptsExpiry);
HeapFree(GetProcessHeap(), 0, target_name);
return ret; return ret;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment