Skip to content

Commit b45867b

Browse files
committed
LSA visual studio work
Add exports via pragma statements and reduce included libraires
1 parent 1067adc commit b45867b

File tree

3 files changed

+57
-41
lines changed

3 files changed

+57
-41
lines changed

contrib/win32/openssh/ssh-lsa.vcxproj

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -110,32 +110,35 @@
110110
<Optimization>Disabled</Optimization>
111111
<PreprocessorDefinitions>_WIN32_WINNT=0x501;__VS_BUILD__=1;__VS_BUILD__WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
112112
<SDLCheck>false</SDLCheck>
113-
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-Win32-Debug-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
113+
<AdditionalIncludeDirectories>$(OpenSSL-Win32-Debug-Path)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
114114
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
115+
<CallingConvention>StdCall</CallingConvention>
115116
</ClCompile>
116117
<Link>
117118
<SubSystem>Console</SubSystem>
118119
<GenerateDebugInformation>true</GenerateDebugInformation>
119-
<AdditionalDependencies>bcrypt.lib;Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
120-
<AdditionalLibraryDirectories>$(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-Win32-Debug-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
120+
<AdditionalDependencies>Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
121+
<AdditionalLibraryDirectories>$(OpenSSL-Win32-Debug-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
121122
</Link>
122123
</ItemDefinitionGroup>
123124
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
124125
<ClCompile>
125126
<PrecompiledHeader>
126127
</PrecompiledHeader>
127-
<WarningLevel>Level1</WarningLevel>
128+
<WarningLevel>Level3</WarningLevel>
128129
<Optimization>Disabled</Optimization>
129130
<PreprocessorDefinitions>_WIN32_WINNT=0x501;__VS_BUILD__=1;__VS_BUILD__WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
130-
<SDLCheck>false</SDLCheck>
131-
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-x64-Debug-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
131+
<SDLCheck>true</SDLCheck>
132+
<AdditionalIncludeDirectories>$(OpenSSL-x64-Debug-Path)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
132133
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
134+
<CallingConvention>StdCall</CallingConvention>
135+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
133136
</ClCompile>
134137
<Link>
135138
<SubSystem>Console</SubSystem>
136139
<GenerateDebugInformation>true</GenerateDebugInformation>
137-
<AdditionalDependencies>bcrypt.lib;Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
138-
<AdditionalLibraryDirectories>$(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-x64-Debug-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
140+
<AdditionalDependencies>Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
141+
<AdditionalLibraryDirectories>$(OpenSSL-x64-Debug-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
139142
</Link>
140143
</ItemDefinitionGroup>
141144
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -148,16 +151,17 @@
148151
<IntrinsicFunctions>true</IntrinsicFunctions>
149152
<PreprocessorDefinitions>_WIN32_WINNT=0x501;__VS_BUILD__=1;__VS_BUILD___LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
150153
<SDLCheck>false</SDLCheck>
151-
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-Win32-Release-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
154+
<AdditionalIncludeDirectories>$(OpenSSL-Win32-Release-Path)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
152155
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
156+
<CallingConvention>StdCall</CallingConvention>
153157
</ClCompile>
154158
<Link>
155159
<SubSystem>Console</SubSystem>
156160
<GenerateDebugInformation>No</GenerateDebugInformation>
157161
<EnableCOMDATFolding>true</EnableCOMDATFolding>
158162
<OptimizeReferences>true</OptimizeReferences>
159-
<AdditionalDependencies>bcrypt.lib;Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
160-
<AdditionalLibraryDirectories>$(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-Win32-Release-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
163+
<AdditionalDependencies>Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
164+
<AdditionalLibraryDirectories>$(OpenSSL-Win32-Release-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
161165
</Link>
162166
</ItemDefinitionGroup>
163167
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -170,16 +174,17 @@
170174
<IntrinsicFunctions>true</IntrinsicFunctions>
171175
<PreprocessorDefinitions>_WIN32_WINNT=0x501;__VS_BUILD__=1;__VS_BUILD___LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
172176
<SDLCheck>false</SDLCheck>
173-
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-x64-Release-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
177+
<AdditionalIncludeDirectories>$(OpenSSL-x64-Release-Path)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
174178
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
179+
<CallingConvention>StdCall</CallingConvention>
175180
</ClCompile>
176181
<Link>
177182
<SubSystem>Console</SubSystem>
178183
<GenerateDebugInformation>No</GenerateDebugInformation>
179184
<EnableCOMDATFolding>true</EnableCOMDATFolding>
180185
<OptimizeReferences>true</OptimizeReferences>
181-
<AdditionalDependencies>bcrypt.lib;Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
182-
<AdditionalLibraryDirectories>$(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-x64-Release-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
186+
<AdditionalDependencies>Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
187+
<AdditionalLibraryDirectories>$(OpenSSL-x64-Release-Path)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
183188
</Link>
184189
</ItemDefinitionGroup>
185190
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

contrib/win32/win32compat/lsa/LsaString.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,11 @@ NTSTATUS FillUnicodeString(UNICODE_STRING *lsaStr, const Char *str)
152152
// Fill string buffer.
153153
//
154154

155-
swprintf(lsaStr -> Buffer, L"%hs", str);
155+
#ifdef __VS_BUILD__
156+
_swprintf(lsaStr -> Buffer, L"%hs", str);
157+
#else
158+
swprintf(lsaStr->Buffer, L"%hs", str);
159+
#endif
156160

157161
lsaStr -> Length = cbSize * 2;
158162

contrib/win32/win32compat/lsa/Ssh-lsa.cpp

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
#define WINVER 0x501
3333

3434
#ifdef __VS_BUILD__
35+
#pragma comment(linker,"/EXPORT:LsaApInitializePackage")
36+
#pragma comment(linker,"/EXPORT:LsaApLogonUser")
37+
#pragma comment(linker,"/EXPORT:LsaApLogonTerminated")
38+
#pragma comment(linker,"/EXPORT:LsaApCallPackagePassthrough")
39+
#pragma comment(linker,"/EXPORT:LsaApCallPackageUntrusted")
40+
#pragma comment(linker,"/EXPORT:LsaApCallPackage")
41+
3542
#define UMDF_USING_NTSTATUS
3643
#include <winsock2.h>
3744
#include <Windows.h>
@@ -93,10 +100,10 @@ LSA_SECPKG_FUNCTION_TABLE LsaApi;
93100
//
94101

95102
NTSTATUS NTAPI LsaApInitializePackage(ULONG pkgId,
96-
PLSA_SECPKG_FUNCTION_TABLE func,
97-
PLSA_STRING database,
98-
PLSA_STRING confident,
99-
PLSA_STRING *pkgName)
103+
PLSA_SECPKG_FUNCTION_TABLE func,
104+
PLSA_STRING database,
105+
PLSA_STRING confident,
106+
PLSA_STRING *pkgName)
100107
{
101108
DBG_ENTRY("LsaApInitializePackage");
102109

@@ -519,13 +526,13 @@ Int AuthorizeUser(wchar_t homeDir[MAX_PATH], HANDLE token, SshLsaAuth *auth)
519526

520527
NTSTATUS NTAPI
521528
LsaApLogonUser(PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logonType,
522-
PVOID authData, PVOID clientAuthData, ULONG authDataSize,
523-
PVOID *profile, PULONG profileSize, PLUID logonId,
524-
PNTSTATUS subStat,
525-
PLSA_TOKEN_INFORMATION_TYPE tokenInfoType,
526-
PVOID *tokenInfo,
527-
PLSA_UNICODE_STRING *accountName,
528-
PLSA_UNICODE_STRING *authority)
529+
PVOID authData, PVOID clientAuthData, ULONG authDataSize,
530+
PVOID *profile, PULONG profileSize, PLUID logonId,
531+
PNTSTATUS subStat,
532+
PLSA_TOKEN_INFORMATION_TYPE tokenInfoType,
533+
PVOID *tokenInfo,
534+
PLSA_UNICODE_STRING *accountName,
535+
PLSA_UNICODE_STRING *authority)
529536
{
530537
DBG_ENTRY("LsaApLogonUser");
531538

@@ -946,12 +953,12 @@ BOOL APIENTRY DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpRes)
946953
//
947954

948955
NTSTATUS NTAPI LsaApCallPackagePassthrough(PLSA_CLIENT_REQUEST request,
949-
PVOID submitBuf,
950-
PVOID clientBufBase,
951-
ULONG submitBufSize,
952-
PVOID *outBuf,
953-
PULONG outBufSize,
954-
PNTSTATUS status)
956+
PVOID submitBuf,
957+
PVOID clientBufBase,
958+
ULONG submitBufSize,
959+
PVOID *outBuf,
960+
PULONG outBufSize,
961+
PNTSTATUS status)
955962
{
956963
DBG_ENTRY("LsaApCallPackagePassthrough(");
957964
DBG_LEAVE("LsaApCallPackagePassthrough(");
@@ -964,12 +971,12 @@ NTSTATUS NTAPI LsaApCallPackagePassthrough(PLSA_CLIENT_REQUEST request,
964971
//
965972

966973
NTSTATUS NTAPI LsaApCallPackageUntrusted(PLSA_CLIENT_REQUEST request,
967-
PVOID submitBuf,
968-
PVOID clientBufBase,
969-
ULONG submitBufSize,
970-
PVOID *outBuf,
971-
PULONG outBufSize,
972-
PNTSTATUS status)
974+
PVOID submitBuf,
975+
PVOID clientBufBase,
976+
ULONG submitBufSize,
977+
PVOID *outBuf,
978+
PULONG outBufSize,
979+
PNTSTATUS status)
973980
{
974981
DBG_ENTRY("LsaApCallPackageUntrusted");
975982
DBG_LEAVE("LsaApCallPackageUntrusted");
@@ -982,9 +989,9 @@ NTSTATUS NTAPI LsaApCallPackageUntrusted(PLSA_CLIENT_REQUEST request,
982989
//
983990

984991
NTSTATUS NTAPI LsaApCallPackage(PLSA_CLIENT_REQUEST request, PVOID submitBuf,
985-
PVOID clientBufBase, ULONG submitBufSize,
986-
PVOID *outBuf, PULONG outBufSize,
987-
PNTSTATUS status)
992+
PVOID clientBufBase, ULONG submitBufSize,
993+
PVOID *outBuf, PULONG outBufSize,
994+
PNTSTATUS status)
988995
{
989996
DBG_ENTRY("LsaApCallPackage");
990997
DBG_LEAVE("LsaApCallPackage");

0 commit comments

Comments
 (0)