From a8852ecf163b1e57a3e3d6d552606a15784d55d2 Mon Sep 17 00:00:00 2001 From: multiOTP Date: Fri, 21 Oct 2022 16:09:12 +0200 Subject: [PATCH] New release 5.9.3.1 FIX: Better special characters support in username and password ENH: Accounts with Without2FA tokens can now also be stored in cache --- CppClientCore/CppClientCore/MultiOTP.cpp | 4 +- CppClientCore/CppClientCore/MultiOTP.h | 4 +- .../CppClientCore/MultiOTPRegistryReader.cpp | 4 +- .../CppClientCore/MultiOTPRegistryReader.h | 4 +- .../CppClientCore/MultiotpHelpers.cpp | 35 +- CppClientCore/CppClientCore/MultiotpHelpers.h | 5 +- .../CppClientCore/MultiotpRegistry.cpp | 4 +- .../CppClientCore/MultiotpRegistry.h | 4 +- CredentialProvider/CredentialProvider.rc | Bin 7736 -> 7736 bytes CredentialProviderFilter/resources.aps | Bin 83868 -> 83868 bytes CredentialProviderFilter/resources.rc | 8 +- README.md | 10 +- Shared/Shared.vcxproj.user | 6 + multiOTPCredentialProvider.sln | 313 +++++++++--------- versioning/version.h | 2 +- 15 files changed, 222 insertions(+), 181 deletions(-) create mode 100644 Shared/Shared.vcxproj.user diff --git a/CppClientCore/CppClientCore/MultiOTP.cpp b/CppClientCore/CppClientCore/MultiOTP.cpp index 7f530a8..0e41f3c 100644 --- a/CppClientCore/CppClientCore/MultiOTP.cpp +++ b/CppClientCore/CppClientCore/MultiOTP.cpp @@ -2,8 +2,8 @@ * multiOTP Credential Provider, extends privacyIdea * * @author Yann Jeanrenaud, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2021 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) diff --git a/CppClientCore/CppClientCore/MultiOTP.h b/CppClientCore/CppClientCore/MultiOTP.h index 8e41fc2..9d5dcb1 100644 --- a/CppClientCore/CppClientCore/MultiOTP.h +++ b/CppClientCore/CppClientCore/MultiOTP.h @@ -2,8 +2,8 @@ * multiOTP Credential Provider, extends privacyIdea * * @author Yann Jeanrenaud, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2021 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) diff --git a/CppClientCore/CppClientCore/MultiOTPRegistryReader.cpp b/CppClientCore/CppClientCore/MultiOTPRegistryReader.cpp index 5c2adcb..4efa6e5 100644 --- a/CppClientCore/CppClientCore/MultiOTPRegistryReader.cpp +++ b/CppClientCore/CppClientCore/MultiOTPRegistryReader.cpp @@ -2,8 +2,8 @@ * multiOTP Credential Provider, extends privacyIdea RegistryReader * * @author Yann Jeanrenaud, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2021 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) diff --git a/CppClientCore/CppClientCore/MultiOTPRegistryReader.h b/CppClientCore/CppClientCore/MultiOTPRegistryReader.h index 3b5caf4..a365222 100644 --- a/CppClientCore/CppClientCore/MultiOTPRegistryReader.h +++ b/CppClientCore/CppClientCore/MultiOTPRegistryReader.h @@ -2,8 +2,8 @@ * multiOTP Credential Provider, extends privacyIdea RegistryReader * * @author Yann Jeanrenaud, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2021 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) diff --git a/CppClientCore/CppClientCore/MultiotpHelpers.cpp b/CppClientCore/CppClientCore/MultiotpHelpers.cpp index def85bd..e6291fc 100644 --- a/CppClientCore/CppClientCore/MultiotpHelpers.cpp +++ b/CppClientCore/CppClientCore/MultiotpHelpers.cpp @@ -4,8 +4,8 @@ * Extra code provided "as is" for the multiOTP open source project * * @author Andre Liechti, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2013 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) @@ -1293,6 +1293,7 @@ HRESULT multiotp_request(_In_ std::wstring username, DWORD server_cache_level = 1; PWSTR shared_secret; PWSTR servers; + std::wstring shared_secret_escaped; server_timeout = readRegistryValueInteger(CONF_SERVER_TIMEOUT, server_timeout); wchar_t server_timeout_string[1024]; @@ -1315,8 +1316,12 @@ HRESULT multiotp_request(_In_ std::wstring username, } if (readRegistryValueString(CONF_SHARED_SECRET, &shared_secret, L"ClientServerSecret") > 1) { + wcscat_s(options, 2048, L"\""); wcscat_s(options, 2048, L"-server-secret="); - wcscat_s(options, 2048, shared_secret); + shared_secret_escaped = shared_secret; + replaceAll(shared_secret_escaped, L"\"", L"\\\""); + wcscat_s(options, 2048, shared_secret_escaped.c_str()); + wcscat_s(options, 2048, L"\""); wcscat_s(options, 2048, L" "); } @@ -1662,7 +1667,6 @@ std::wstring getCleanUsername(const std::wstring username, const std::wstring do } } - HRESULT hideCPField(__in ICredentialProviderCredential* self, __in ICredentialProviderCredentialEvents* pCPCE, __in DWORD fieldId) { @@ -1703,7 +1707,6 @@ HRESULT displayCPField(__in ICredentialProviderCredential* self, __in ICredentia return hr; } - int minutesSinceEpoch() { std::time_t seconds = std::time(nullptr); return seconds/60; @@ -1773,6 +1776,7 @@ HRESULT multiotp_request_command(_In_ std::wstring command, _In_ std::wstring pa DWORD server_cache_level = 1; PWSTR shared_secret; PWSTR servers; + std::wstring shared_secret_escaped; server_timeout = readRegistryValueInteger(CONF_SERVER_TIMEOUT, server_timeout); wchar_t server_timeout_string[1024]; @@ -1795,8 +1799,12 @@ HRESULT multiotp_request_command(_In_ std::wstring command, _In_ std::wstring pa } if (readRegistryValueString(CONF_SHARED_SECRET, &shared_secret, L"ClientServerSecret") > 1) { - wcscat_s(options, 2048, L"-server-secret="); - wcscat_s(options, 2048, shared_secret); + wcscat_s(options, 2048, L"\""); + wcscat_s(options, 2048, L"-server-secret="); + shared_secret_escaped = shared_secret; + replaceAll(shared_secret_escaped, L"\"", L"\\\""); + wcscat_s(options, 2048, shared_secret_escaped.c_str()); + wcscat_s(options, 2048, L"\""); wcscat_s(options, 2048, L" "); } @@ -1863,4 +1871,17 @@ HRESULT multiotp_request_command(_In_ std::wstring command, _In_ std::wstring pa CoTaskMemFree(path); } return hr; +} + +void replaceAll(std::wstring& str, const std::wstring& from, const std::wstring& to) { + if (from.empty()) + return; + size_t start_pos = 0; + PrintLn(L"Looking for ", from.c_str()); + PrintLn(L" IN ", str.c_str()); + while ((start_pos = str.find(from, start_pos)) != std::string::npos) { + PrintLn(L"We found a ",from.c_str()); + str.replace(start_pos, from.length(), to); + start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' + } } \ No newline at end of file diff --git a/CppClientCore/CppClientCore/MultiotpHelpers.h b/CppClientCore/CppClientCore/MultiotpHelpers.h index 7d96fd9..7ee7de9 100644 --- a/CppClientCore/CppClientCore/MultiotpHelpers.h +++ b/CppClientCore/CppClientCore/MultiotpHelpers.h @@ -4,8 +4,8 @@ * Extra code provided "as is" for the multiOTP open source project * * @author Andre Liechti, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2013 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) @@ -267,4 +267,5 @@ int minutesSinceEpoch(); HRESULT multiotp_request_command(_In_ std::wstring command, _In_ std::wstring params); +void replaceAll(std::wstring& str, const std::wstring& from, const std::wstring& to); #endif \ No newline at end of file diff --git a/CppClientCore/CppClientCore/MultiotpRegistry.cpp b/CppClientCore/CppClientCore/MultiotpRegistry.cpp index 180d888..9e561db 100644 --- a/CppClientCore/CppClientCore/MultiotpRegistry.cpp +++ b/CppClientCore/CppClientCore/MultiotpRegistry.cpp @@ -2,8 +2,8 @@ * multiOTP Credential Provider * * @author Andre Liechti, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2013 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) diff --git a/CppClientCore/CppClientCore/MultiotpRegistry.h b/CppClientCore/CppClientCore/MultiotpRegistry.h index e23bf17..a5b5924 100644 --- a/CppClientCore/CppClientCore/MultiotpRegistry.h +++ b/CppClientCore/CppClientCore/MultiotpRegistry.h @@ -2,8 +2,8 @@ * multiOTP Credential Provider * * @author Andre Liechti, SysCo systemes de communication sa, - * @version 5.9.2.1 - * @date 2022-08-10 + * @version 5.9.3.1 + * @date 2022-10-21 * @since 2013 * @copyright (c) 2016-2022 SysCo systemes de communication sa * @copyright (c) 2015-2016 ArcadeJust ("RDP only" enhancement) diff --git a/CredentialProvider/CredentialProvider.rc b/CredentialProvider/CredentialProvider.rc index ea88991432bdbddaefd9fd615a54647cf812c627..8d7c1a44e3181a244f945423159d314a39225f6c 100644 GIT binary patch delta 50 zcmdmCv%_Y?8xBU}$!|II8I3o~at1R4sY0ILOhBkdgCaEC2ui diff --git a/CredentialProviderFilter/resources.rc b/CredentialProviderFilter/resources.rc index da33ef5..bd0d661 100644 --- a/CredentialProviderFilter/resources.rc +++ b/CredentialProviderFilter/resources.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 5,9,2,1 - PRODUCTVERSION 5,9,2,1 + FILEVERSION 5,9,3,1 + PRODUCTVERSION 5,9,3,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "SysCo systemes de communication sa" VALUE "FileDescription", "CredentialProviderFilter for the multiOTP CredentialProvider for Windows logon" - VALUE "FileVersion", "5.9.2.1" + VALUE "FileVersion", "5.9.3.1" VALUE "InternalName", "multiOTPCredentialProviderFilter.dll" VALUE "LegalCopyright", "Copyright (c) 2022 SysCo systemes de communication sa, 2019 NetKnights, 2016 Last Squirrel IT" VALUE "OriginalFilename", "multiOTPCredentialProviderFilter.dll" VALUE "ProductName", "multiOTPCredentialProvider" - VALUE "ProductVersion", "5.9.2.1" + VALUE "ProductVersion", "5.9.3.1" END END BLOCK "VarFileInfo" diff --git a/README.md b/README.md index 12e38cf..29be714 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ multiOTP Credential Provider for multiOTP is a free and open source implementati (c) 2015-2016 ArcadeJust ("RDP only" enhancement) (c) 2013-2015 Last Squirrel IT -Current build: 5.9.2.1 (2022-08-10) +Current build: 5.9.3.1 (2022-10-21) The binary download page is available here : https://download.multiotp.net/credential-provider/ (download link are at the bottom of the page) @@ -177,8 +177,12 @@ CHANGE LOG OF RELEASED VERSIONS =============================== ``` -2022-08-09 5.9.2.1 ENH: Support without2FA user, unlock timeout without 2FA, autocomplete username with last connected -2022-06-17 5.9.1.0 ENH: Added FastUserSwitching inactivation during wizard (to fix unlock issue) +2022-10-21 5.9.3.1 FIX: Better special characters support in username and password + ENH: Accounts with Without2FA tokens can now also be stored in cache +2022-08-09 5.9.2.1 ENH: Support without2FA user, unlock timeout without 2FA + ENH: Users without 2FA tokens don't see the second screen during logon + ENH: Autocomplete username (with the last connected username) +2022-06-17 5.9.1.0 ENH: FastUserSwitching inactivation done during wizard (to fix unlock issue) ENH: Last connected user available 2022-05-26 5.9.0.3 ENH: UPN and Lecagy cache handling when the domain controller is not reachable ENH: Better UPN account handling when the domain controller is not reachable diff --git a/Shared/Shared.vcxproj.user b/Shared/Shared.vcxproj.user new file mode 100644 index 0000000..429333d --- /dev/null +++ b/Shared/Shared.vcxproj.user @@ -0,0 +1,6 @@ + + + + true + + \ No newline at end of file diff --git a/multiOTPCredentialProvider.sln b/multiOTPCredentialProvider.sln index fba4027..38b181a 100644 --- a/multiOTPCredentialProvider.sln +++ b/multiOTPCredentialProvider.sln @@ -1,152 +1,161 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29613.14 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredentialProviderFilter", "CredentialProviderFilter\CredentialProviderFilter.vcxproj", "{E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{702EF40A-4EA9-4927-B46F-A876B7DA17DF}" - ProjectSection(SolutionItems) = preProject - ApacheLicense.rtf = ApacheLicense.rtf - ApacheLicense.txt = ApacheLicense.txt - BUILD.TXT = BUILD.TXT - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredentialProvider", "CredentialProvider\CredentialProvider.vcxproj", "{2DF895C3-D1B4-4632-8F76-F06670A0D311}" - ProjectSection(ProjectDependencies) = postProject - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC} = {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC} - EndProjectSection -EndProject -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "WiXSetup", "WiXSetup\WiXSetup.wixproj", "{4D2113B2-C2D3-44D1-BFC7-5502E801872E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "versioning", "versioning", "{F6FE8812-5A52-4DF8-A56A-9E8E1B4B9EE7}" - ProjectSection(SolutionItems) = preProject - versioning\version.h = versioning\version.h - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppClientCore", "CppClientCore\CppClientCore\CppClientCore.vcxproj", "{6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Shared", "Shared\Shared.vcxproj", "{B8D8378C-0720-4DCC-BA1D-D55BDDD97037}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Any CPU.ActiveCfg = Debug|x64 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|ARM.ActiveCfg = Debug|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Win32.ActiveCfg = Debug|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Win32.Build.0 = Debug|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x64.ActiveCfg = Debug|x64 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x64.Build.0 = Debug|x64 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x86.ActiveCfg = Debug|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x86.Build.0 = Debug|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Any CPU.ActiveCfg = Release|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|ARM.ActiveCfg = Release|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Mixed Platforms.Build.0 = Release|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Win32.ActiveCfg = Release|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Win32.Build.0 = Release|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x64.ActiveCfg = Release|x64 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x64.Build.0 = Release|x64 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x86.ActiveCfg = Release|Win32 - {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x86.Build.0 = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Any CPU.ActiveCfg = Debug|x64 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|ARM.ActiveCfg = Debug|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Win32.ActiveCfg = Debug|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Win32.Build.0 = Debug|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x64.ActiveCfg = Debug|x64 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x64.Build.0 = Debug|x64 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x86.ActiveCfg = Debug|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x86.Build.0 = Debug|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Any CPU.ActiveCfg = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|ARM.ActiveCfg = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Mixed Platforms.Build.0 = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Win32.ActiveCfg = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Win32.Build.0 = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x64.ActiveCfg = Release|x64 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x64.Build.0 = Release|x64 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x86.ActiveCfg = Release|Win32 - {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x86.Build.0 = Release|Win32 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|Any CPU.ActiveCfg = Debug|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|ARM.ActiveCfg = Debug|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|Win32.ActiveCfg = Debug|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|x64.ActiveCfg = Debug|x64 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|x86.ActiveCfg = Debug|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Debug|x86.Build.0 = Debug|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Release|Any CPU.ActiveCfg = Release|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Release|ARM.ActiveCfg = Release|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Release|Win32.ActiveCfg = Release|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Release|x64.ActiveCfg = Release|x64 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Release|x86.ActiveCfg = Release|x86 - {4D2113B2-C2D3-44D1-BFC7-5502E801872E}.Release|x86.Build.0 = Release|x86 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|ARM.ActiveCfg = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Win32.ActiveCfg = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Win32.Build.0 = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x64.ActiveCfg = Debug|x64 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x64.Build.0 = Debug|x64 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x86.ActiveCfg = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x86.Build.0 = Debug|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Any CPU.ActiveCfg = Release|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|ARM.ActiveCfg = Release|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Mixed Platforms.Build.0 = Release|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Win32.ActiveCfg = Release|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Win32.Build.0 = Release|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x64.ActiveCfg = Release|x64 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x64.Build.0 = Release|x64 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x86.ActiveCfg = Release|Win32 - {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x86.Build.0 = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|ARM.ActiveCfg = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Win32.ActiveCfg = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Win32.Build.0 = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x64.ActiveCfg = Debug|x64 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x64.Build.0 = Debug|x64 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x86.ActiveCfg = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x86.Build.0 = Debug|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Any CPU.ActiveCfg = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|ARM.ActiveCfg = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Mixed Platforms.Build.0 = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Win32.ActiveCfg = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Win32.Build.0 = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x64.ActiveCfg = Release|x64 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x64.Build.0 = Release|x64 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x86.ActiveCfg = Release|Win32 - {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {F6FE8812-5A52-4DF8-A56A-9E8E1B4B9EE7} = {702EF40A-4EA9-4927-B46F-A876B7DA17DF} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4CC99074-7674-465D-A290-F234FF84590E} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredentialProviderFilter", "CredentialProviderFilter\CredentialProviderFilter.vcxproj", "{E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{702EF40A-4EA9-4927-B46F-A876B7DA17DF}" + ProjectSection(SolutionItems) = preProject + ApacheLicense.rtf = ApacheLicense.rtf + ApacheLicense.txt = ApacheLicense.txt + BUILD.TXT = BUILD.TXT + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredentialProvider", "CredentialProvider\CredentialProvider.vcxproj", "{2DF895C3-D1B4-4632-8F76-F06670A0D311}" + ProjectSection(ProjectDependencies) = postProject + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC} = {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "versioning", "versioning", "{F6FE8812-5A52-4DF8-A56A-9E8E1B4B9EE7}" + ProjectSection(SolutionItems) = preProject + versioning\version.h = versioning\version.h + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppClientCore", "CppClientCore\CppClientCore\CppClientCore.vcxproj", "{6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Shared", "Shared\Shared.vcxproj", "{B8D8378C-0720-4DCC-BA1D-D55BDDD97037}" +EndProject +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "multiOTPCredentialProviderInstaller", "WixInstall\multiOTPCredentialProviderInstaller\multiOTPCredentialProviderInstaller.wixproj", "{3B1C92FF-9385-4826-A53F-EE5D7C68A81D}" + ProjectSection(ProjectDependencies) = postProject + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F} = {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F} + {2DF895C3-D1B4-4632-8F76-F06670A0D311} = {2DF895C3-D1B4-4632-8F76-F06670A0D311} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|ARM.ActiveCfg = Debug|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Win32.ActiveCfg = Debug|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|Win32.Build.0 = Debug|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x64.ActiveCfg = Debug|x64 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x64.Build.0 = Debug|x64 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x86.ActiveCfg = Debug|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Debug|x86.Build.0 = Debug|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Any CPU.ActiveCfg = Release|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|ARM.ActiveCfg = Release|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Mixed Platforms.Build.0 = Release|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Win32.ActiveCfg = Release|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|Win32.Build.0 = Release|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x64.ActiveCfg = Release|x64 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x64.Build.0 = Release|x64 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x86.ActiveCfg = Release|Win32 + {E8100BB4-E5F1-47D0-A4FD-4A8C70503D9F}.Release|x86.Build.0 = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Any CPU.ActiveCfg = Debug|x64 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|ARM.ActiveCfg = Debug|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Win32.ActiveCfg = Debug|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|Win32.Build.0 = Debug|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x64.ActiveCfg = Debug|x64 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x64.Build.0 = Debug|x64 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x86.ActiveCfg = Debug|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Debug|x86.Build.0 = Debug|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Any CPU.ActiveCfg = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|ARM.ActiveCfg = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Mixed Platforms.Build.0 = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Win32.ActiveCfg = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|Win32.Build.0 = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x64.ActiveCfg = Release|x64 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x64.Build.0 = Release|x64 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x86.ActiveCfg = Release|Win32 + {2DF895C3-D1B4-4632-8F76-F06670A0D311}.Release|x86.Build.0 = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|ARM.ActiveCfg = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Win32.ActiveCfg = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|Win32.Build.0 = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x64.ActiveCfg = Debug|x64 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x64.Build.0 = Debug|x64 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x86.ActiveCfg = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Debug|x86.Build.0 = Debug|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Any CPU.ActiveCfg = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|ARM.ActiveCfg = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Mixed Platforms.Build.0 = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Win32.ActiveCfg = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|Win32.Build.0 = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x64.ActiveCfg = Release|x64 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x64.Build.0 = Release|x64 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x86.ActiveCfg = Release|Win32 + {6DB4CA8D-7529-4310-A4CF-F3DED2D143CC}.Release|x86.Build.0 = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|ARM.ActiveCfg = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Win32.ActiveCfg = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|Win32.Build.0 = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x64.ActiveCfg = Debug|x64 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x64.Build.0 = Debug|x64 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x86.ActiveCfg = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Debug|x86.Build.0 = Debug|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Any CPU.ActiveCfg = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|ARM.ActiveCfg = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Mixed Platforms.Build.0 = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Win32.ActiveCfg = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|Win32.Build.0 = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x64.ActiveCfg = Release|x64 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x64.Build.0 = Release|x64 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x86.ActiveCfg = Release|Win32 + {B8D8378C-0720-4DCC-BA1D-D55BDDD97037}.Release|x86.Build.0 = Release|Win32 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|Any CPU.ActiveCfg = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|ARM.ActiveCfg = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|Win32.ActiveCfg = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|Win32.Build.0 = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|x64.ActiveCfg = Debug|x64 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|x64.Build.0 = Debug|x64 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|x86.ActiveCfg = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Debug|x86.Build.0 = Debug|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|Any CPU.ActiveCfg = Release|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|ARM.ActiveCfg = Release|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|Mixed Platforms.Build.0 = Release|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|Win32.ActiveCfg = Release|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|Win32.Build.0 = Release|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|x64.ActiveCfg = Release|x64 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|x64.Build.0 = Release|x64 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|x86.ActiveCfg = Release|x86 + {3B1C92FF-9385-4826-A53F-EE5D7C68A81D}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {F6FE8812-5A52-4DF8-A56A-9E8E1B4B9EE7} = {702EF40A-4EA9-4927-B46F-A876B7DA17DF} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4CC99074-7674-465D-A290-F234FF84590E} + EndGlobalSection +EndGlobal diff --git a/versioning/version.h b/versioning/version.h index f3c9d05..73a05da 100644 --- a/versioning/version.h +++ b/versioning/version.h @@ -33,7 +33,7 @@ #define VERSION_MAJOR 5 #define VERSION_MINOR 9 -#define VERSION_REVISION 2 +#define VERSION_REVISION 3 #define VER_FILE_DESCRIPTION_STR ENDPOINT_NAME " Credential Provider for Windows logon" #define VER_FILE_VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION