From b45867b93cd698cbdbeb66cbb07304baa44634c2 Mon Sep 17 00:00:00 2001 From: dkulwin Date: Fri, 13 Nov 2015 11:58:51 -0600 Subject: [PATCH] LSA visual studio work Add exports via pragma statements and reduce included libraires --- contrib/win32/openssh/ssh-lsa.vcxproj | 33 +++++++----- contrib/win32/win32compat/lsa/LsaString.cpp | 6 ++- contrib/win32/win32compat/lsa/Ssh-lsa.cpp | 59 ++++++++++++--------- 3 files changed, 57 insertions(+), 41 deletions(-) diff --git a/contrib/win32/openssh/ssh-lsa.vcxproj b/contrib/win32/openssh/ssh-lsa.vcxproj index 6e199a8..b6e9453 100644 --- a/contrib/win32/openssh/ssh-lsa.vcxproj +++ b/contrib/win32/openssh/ssh-lsa.vcxproj @@ -110,32 +110,35 @@ Disabled _WIN32_WINNT=0x501;__VS_BUILD__=1;__VS_BUILD__WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) false - $(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) + $(OpenSSL-Win32-Debug-Path)include;%(AdditionalIncludeDirectories) MultiThreadedDebug + StdCall Console true - 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) - $(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-Win32-Debug-Path)lib;%(AdditionalLibraryDirectories) + Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies) + $(OpenSSL-Win32-Debug-Path)lib;%(AdditionalLibraryDirectories) - Level1 + Level3 Disabled _WIN32_WINNT=0x501;__VS_BUILD__=1;__VS_BUILD__WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) - false - $(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) + true + $(OpenSSL-x64-Debug-Path)include;%(AdditionalIncludeDirectories) MultiThreadedDebug + StdCall + ProgramDatabase Console true - 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) - $(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-x64-Debug-Path)lib;%(AdditionalLibraryDirectories) + Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies) + $(OpenSSL-x64-Debug-Path)lib;%(AdditionalLibraryDirectories) @@ -148,16 +151,17 @@ true _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) false - $(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) + $(OpenSSL-Win32-Release-Path)include;%(AdditionalIncludeDirectories) MultiThreaded + StdCall Console No true true - 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) - $(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-Win32-Release-Path)lib;%(AdditionalLibraryDirectories) + Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies) + $(OpenSSL-Win32-Release-Path)lib;%(AdditionalLibraryDirectories) @@ -170,16 +174,17 @@ true _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) false - $(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) + $(OpenSSL-x64-Release-Path)include;%(AdditionalIncludeDirectories) MultiThreaded + StdCall Console No true true - 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) - $(OpenSSH-Lib-Path)$(Platform)\$(Configuration);$(OpenSSL-x64-Release-Path)lib;%(AdditionalLibraryDirectories) + Userenv.lib;Ws2_32.lib;Secur32.lib;libeay32.lib;ssleay32.lib;kernel32.lib;advapi32.lib;%(AdditionalDependencies) + $(OpenSSL-x64-Release-Path)lib;%(AdditionalLibraryDirectories) diff --git a/contrib/win32/win32compat/lsa/LsaString.cpp b/contrib/win32/win32compat/lsa/LsaString.cpp index 851419e..f3200c9 100644 --- a/contrib/win32/win32compat/lsa/LsaString.cpp +++ b/contrib/win32/win32compat/lsa/LsaString.cpp @@ -152,7 +152,11 @@ NTSTATUS FillUnicodeString(UNICODE_STRING *lsaStr, const Char *str) // Fill string buffer. // - swprintf(lsaStr -> Buffer, L"%hs", str); +#ifdef __VS_BUILD__ + _swprintf(lsaStr -> Buffer, L"%hs", str); +#else + swprintf(lsaStr->Buffer, L"%hs", str); +#endif lsaStr -> Length = cbSize * 2; diff --git a/contrib/win32/win32compat/lsa/Ssh-lsa.cpp b/contrib/win32/win32compat/lsa/Ssh-lsa.cpp index 1cd4283..ca06b0c 100644 --- a/contrib/win32/win32compat/lsa/Ssh-lsa.cpp +++ b/contrib/win32/win32compat/lsa/Ssh-lsa.cpp @@ -32,6 +32,13 @@ #define WINVER 0x501 #ifdef __VS_BUILD__ +#pragma comment(linker,"/EXPORT:LsaApInitializePackage") +#pragma comment(linker,"/EXPORT:LsaApLogonUser") +#pragma comment(linker,"/EXPORT:LsaApLogonTerminated") +#pragma comment(linker,"/EXPORT:LsaApCallPackagePassthrough") +#pragma comment(linker,"/EXPORT:LsaApCallPackageUntrusted") +#pragma comment(linker,"/EXPORT:LsaApCallPackage") + #define UMDF_USING_NTSTATUS #include #include @@ -93,10 +100,10 @@ LSA_SECPKG_FUNCTION_TABLE LsaApi; // NTSTATUS NTAPI LsaApInitializePackage(ULONG pkgId, - PLSA_SECPKG_FUNCTION_TABLE func, - PLSA_STRING database, - PLSA_STRING confident, - PLSA_STRING *pkgName) + PLSA_SECPKG_FUNCTION_TABLE func, + PLSA_STRING database, + PLSA_STRING confident, + PLSA_STRING *pkgName) { DBG_ENTRY("LsaApInitializePackage"); @@ -519,13 +526,13 @@ fail: NTSTATUS NTAPI LsaApLogonUser(PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logonType, - PVOID authData, PVOID clientAuthData, ULONG authDataSize, - PVOID *profile, PULONG profileSize, PLUID logonId, - PNTSTATUS subStat, - PLSA_TOKEN_INFORMATION_TYPE tokenInfoType, - PVOID *tokenInfo, - PLSA_UNICODE_STRING *accountName, - PLSA_UNICODE_STRING *authority) + PVOID authData, PVOID clientAuthData, ULONG authDataSize, + PVOID *profile, PULONG profileSize, PLUID logonId, + PNTSTATUS subStat, + PLSA_TOKEN_INFORMATION_TYPE tokenInfoType, + PVOID *tokenInfo, + PLSA_UNICODE_STRING *accountName, + PLSA_UNICODE_STRING *authority) { DBG_ENTRY("LsaApLogonUser"); @@ -946,12 +953,12 @@ fail: // NTSTATUS NTAPI LsaApCallPackagePassthrough(PLSA_CLIENT_REQUEST request, - PVOID submitBuf, - PVOID clientBufBase, - ULONG submitBufSize, - PVOID *outBuf, - PULONG outBufSize, - PNTSTATUS status) + PVOID submitBuf, + PVOID clientBufBase, + ULONG submitBufSize, + PVOID *outBuf, + PULONG outBufSize, + PNTSTATUS status) { DBG_ENTRY("LsaApCallPackagePassthrough("); DBG_LEAVE("LsaApCallPackagePassthrough("); @@ -964,12 +971,12 @@ NTSTATUS NTAPI LsaApCallPackagePassthrough(PLSA_CLIENT_REQUEST request, // NTSTATUS NTAPI LsaApCallPackageUntrusted(PLSA_CLIENT_REQUEST request, - PVOID submitBuf, - PVOID clientBufBase, - ULONG submitBufSize, - PVOID *outBuf, - PULONG outBufSize, - PNTSTATUS status) + PVOID submitBuf, + PVOID clientBufBase, + ULONG submitBufSize, + PVOID *outBuf, + PULONG outBufSize, + PNTSTATUS status) { DBG_ENTRY("LsaApCallPackageUntrusted"); DBG_LEAVE("LsaApCallPackageUntrusted"); @@ -982,9 +989,9 @@ NTSTATUS NTAPI LsaApCallPackageUntrusted(PLSA_CLIENT_REQUEST request, // NTSTATUS NTAPI LsaApCallPackage(PLSA_CLIENT_REQUEST request, PVOID submitBuf, - PVOID clientBufBase, ULONG submitBufSize, - PVOID *outBuf, PULONG outBufSize, - PNTSTATUS status) + PVOID clientBufBase, ULONG submitBufSize, + PVOID *outBuf, PULONG outBufSize, + PNTSTATUS status) { DBG_ENTRY("LsaApCallPackage"); DBG_LEAVE("LsaApCallPackage");