From 08a1e9998a7550b6f2129df6ec50dd73c58c8609 Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Fri, 26 Jul 2019 09:18:16 -0400 Subject: [PATCH] initial upgrade to framework 4.6.2 - no code changes except those noted below - projects upgrade to 4.6.2 - wixinstaller project upgraded automatically by VisualStudio - wixinstaller updated to require 4.6.2 - Library.Encryption changed to Standard2.0 so accommodate update to SharpAesCrypt --- .travis.yml | 2 +- .../AutoUpdateBuilder.csproj | 16 +-- BuildTools/AutoUpdateBuilder/app.config | 3 + BuildTools/AutoUpdateBuilder/packages.config | 2 +- .../UpdateVersionStamp.csproj | 6 +- BuildTools/UpdateVersionStamp/app.config | 2 +- Duplicati.sln | 16 +-- ...Duplicati.CommandLine.BackendTester.csproj | 4 +- .../CommandLine/BackendTester/app.config | 23 ++-- .../Duplicati.CommandLine.BackendTool.csproj | 4 +- Duplicati/CommandLine/BackendTool/app.config | 22 ++-- ...i.CommandLine.ConfigurationImporter.csproj | 8 +- .../ConfigurationImporter/app.config | 22 ++++ .../CommandLine/Duplicati.CommandLine.csproj | 52 +++++++-- .../Duplicati.CommandLine.RecoveryTool.csproj | 41 +++++-- Duplicati/CommandLine/RecoveryTool/app.config | 23 ++-- .../CommandLine/RecoveryTool/packages.config | 10 +- Duplicati/CommandLine/app.config | 21 ++-- Duplicati/CommandLine/packages.config | 20 ++++ .../Duplicati.GUI.TrayIcon.csproj | 34 +++--- .../Properties/Settings.Designer.cs | 24 ++--- .../GUI/Duplicati.GUI.TrayIcon/app.config | 14 ++- .../Duplicati.GUI.TrayIcon/packages.config | 4 +- .../Duplicati.Library.AutoUpdater.csproj | 12 +-- Duplicati/Library/AutoUpdater/app.config | 7 +- Duplicati/Library/AutoUpdater/packages.config | 2 +- ...cati.Library.Backend.AlternativeFTP.csproj | 9 +- .../Library/Backend/AlternativeFTP/app.config | 7 +- .../Backend/AlternativeFTP/packages.config | 2 +- ...ti.Library.Backend.AmazonCloudDrive.csproj | 13 +-- .../Backend/AmazonCloudDrive/packages.config | 2 +- ...Duplicati.Library.Backend.AzureBlob.csproj | 57 ++++++---- .../Library/Backend/AzureBlob/app.config | 27 +++++ .../Library/Backend/AzureBlob/packages.config | 24 +++-- ...Duplicati.Library.Backend.Backblaze.csproj | 13 +-- .../Library/Backend/Backblaze/packages.config | 2 +- .../Box/Duplicati.Library.Backend.Box.csproj | 13 +-- Duplicati/Library/Backend/Box/packages.config | 2 +- ...uplicati.Library.Backend.CloudFiles.csproj | 6 +- .../Library/Backend/CloudFiles/app.config | 7 +- .../Duplicati.Library.Backend.Dropbox.csproj | 9 +- .../Library/Backend/Dropbox/packages.config | 2 +- .../FTP/Duplicati.Library.Backend.FTP.csproj | 6 +- Duplicati/Library/Backend/FTP/app.config | 7 +- .../Duplicati.Library.Backend.File.csproj | 6 +- Duplicati/Library/Backend/File/app.config | 7 +- ...cati.Library.Backend.GoogleServices.csproj | 13 +-- .../Backend/GoogleServices/packages.config | 2 +- .../Duplicati.Library.Backend.HubiC.csproj | 7 +- ...uplicati.Library.Backend.Jottacloud.csproj | 4 +- .../Duplicati.Library.Backend.Mega.csproj | 36 +++++-- Duplicati/Library/Backend/Mega/app.config | 18 ++++ .../Library/Backend/Mega/packages.config | 10 +- .../Duplicati.Library.OAuthHelper.csproj | 11 +- .../Backend/OAuthHelper/packages.config | 2 +- .../Duplicati.Library.Backend.OneDrive.csproj | 10 +- .../Library/Backend/OneDrive/packages.config | 2 +- ...Duplicati.Library.Backend.OpenStack.csproj | 13 +-- .../Library/Backend/OpenStack/packages.config | 2 +- .../Duplicati.Library.Backend.Rclone.csproj | 9 +- .../Library/Backend/Rclone/packages.config | 2 +- .../S3/Duplicati.Library.Backend.S3.csproj | 28 ++--- Duplicati/Library/Backend/S3/app.config | 7 +- Duplicati/Library/Backend/S3/packages.config | 6 +- .../Duplicati.Library.Backend.SSHv2.csproj | 10 +- .../Library/Backend/SSHv2/packages.config | 2 +- ...uplicati.Library.Backend.SharePoint.csproj | 5 +- .../Library/Backend/SharePoint/app.config | 7 +- .../Sia/Duplicati.Library.Backend.Sia.csproj | 11 +- Duplicati/Library/Backend/Sia/packages.config | 2 +- ...Duplicati.Library.Backend.TahoeLAFS.csproj | 10 +- .../Library/Backend/TahoeLAFS/packages.config | 2 +- .../Duplicati.Library.Backend.WEBDAV.csproj | 6 +- Duplicati/Library/Backend/WEBDAV/app.config | 7 +- .../Common/Duplicati.Library.Common.csproj | 39 ++++--- Duplicati/Library/Common/app.config | 6 +- Duplicati/Library/Common/packages.config | 6 +- .../Duplicati.Library.Compression.csproj | 10 +- Duplicati/Library/Compression/app.config | 7 +- Duplicati/Library/Compression/packages.config | 2 +- .../Duplicati.Library.DynamicLoader.csproj | 6 +- Duplicati/Library/DynamicLoader/app.config | 7 +- Duplicati/Library/Encryption/AESEncryption.cs | 30 +++--- .../Library/Encryption/CryptoStreamWrapper.cs | 6 +- .../Duplicati.Library.Encryption.csproj | 102 +++++------------- Duplicati/Library/Encryption/Duplicati.snk | Bin 596 -> 0 bytes .../Library/Encryption/EncryptionBase.cs | 3 +- Duplicati/Library/Encryption/GPGEncryption.cs | 26 ++--- .../Library/Encryption/GPGStreamWrapper.cs | 4 +- .../Encryption/Properties/AssemblyInfo.cs | 54 ---------- Duplicati/Library/Encryption/Strings.cs | 35 +++++- Duplicati/Library/Encryption/app.config | 3 - Duplicati/Library/Encryption/packages.config | 4 - .../Duplicati.Library.Interface.csproj | 4 +- .../Duplicati.Library.Localization.csproj | 13 ++- .../Library/Localization/packages.config | 2 +- .../Logging/Duplicati.Library.Logging.csproj | 6 +- Duplicati/Library/Logging/app.config | 7 +- .../Main/Duplicati.Library.Main.csproj | 16 +-- Duplicati/Library/Main/app.config | 2 +- Duplicati/Library/Main/packages.config | 4 +- .../Duplicati.Library.Modules.Builtin.csproj | 39 ++++--- Duplicati/Library/Modules/Builtin/app.config | 15 +++ .../Library/Modules/Builtin/packages.config | 10 +- .../Duplicati.Library.SQLiteHelper.csproj | 6 +- .../Duplicati.Library.Snapshots.csproj | 24 ++++- Duplicati/Library/Snapshots/app.config | 15 ++- Duplicati/Library/Snapshots/packages.config | 6 +- .../Duplicati.Library.UsageReporter.csproj | 19 ++-- .../Library/UsageReporter/packages.config | 4 +- .../Utility/Duplicati.Library.Utility.csproj | 4 +- Duplicati/Library/Utility/app.config | 2 +- Duplicati/License/Duplicati.License.csproj | 4 +- .../Duplicati.Server.Serialization.csproj | 10 +- .../packages.config | 2 +- Duplicati/Server/Duplicati.Server.csproj | 43 ++++++-- Duplicati/Server/app.config | 18 +++- Duplicati/Server/packages.config | 9 +- Duplicati/Service/Duplicati.Service.csproj | 6 +- Duplicati/Service/app.config | 20 +++- Duplicati/Tools/Duplicati.Tools.csproj | 5 +- Duplicati/UnitTest/BorderTests.cs | 2 +- Duplicati/UnitTest/Duplicati.UnitTest.csproj | 24 +++-- Duplicati/UnitTest/app.config | 20 ++-- Duplicati/UnitTest/packages.config | 2 +- Duplicati/WindowsService/App.config | 2 +- .../WindowsService/WindowsService.csproj | 4 +- Installer/Windows/Duplicati.wxs | 2 +- Installer/Windows/UpgradeLog.htm | Bin 0 -> 30756 bytes Installer/Windows/WixInstaller.wixproj | 12 +-- Tools/SQLiteTool/App.config | 6 +- Tools/SQLiteTool/SQLiteTool.csproj | 7 +- Tools/ZipFileDebugger/ZipFileDebugger.csproj | 8 +- Tools/ZipFileDebugger/app.config | 3 + thirdparty/SharpAESCrypt/SharpAESCrypt.exe | Bin 0 -> 37888 bytes thirdparty/TlsTest/TlsTest.csproj | 12 ++- thirdparty/TlsTest/app.config | 3 + thirdparty/UnixSupport/UnixSupport.csproj | 11 +- thirdparty/mozroots/app.config | 3 + thirdparty/mozroots/mozroots.csproj | 12 ++- 140 files changed, 969 insertions(+), 688 deletions(-) create mode 100644 BuildTools/AutoUpdateBuilder/app.config create mode 100644 Duplicati/CommandLine/ConfigurationImporter/app.config create mode 100644 Duplicati/CommandLine/packages.config create mode 100644 Duplicati/Library/Backend/AzureBlob/app.config create mode 100644 Duplicati/Library/Backend/Mega/app.config delete mode 100644 Duplicati/Library/Encryption/Duplicati.snk delete mode 100644 Duplicati/Library/Encryption/Properties/AssemblyInfo.cs delete mode 100644 Duplicati/Library/Encryption/app.config delete mode 100644 Duplicati/Library/Encryption/packages.config create mode 100644 Duplicati/Library/Modules/Builtin/app.config create mode 100644 Installer/Windows/UpgradeLog.htm create mode 100644 Tools/ZipFileDebugger/app.config create mode 100644 thirdparty/SharpAESCrypt/SharpAESCrypt.exe create mode 100644 thirdparty/TlsTest/app.config create mode 100644 thirdparty/mozroots/app.config diff --git a/.travis.yml b/.travis.yml index 58ff9f993..35fbb4918 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ install: - nuget install NUnit.Runners -Version 3.5.0 -OutputDirectory testrunner - sudo pip install selenium - sudo pip install --upgrade urllib3 - - if [ ! -d "${TRAVIS_BUILD_DIR}"/packages/SharpCompress.0.18.2 ]; then ln -s "${TRAVIS_BUILD_DIR}"/packages/sharpcompress.0.18.2 "${TRAVIS_BUILD_DIR}"/packages/SharpCompress.0.18.2; fi + - if [ ! -d "${TRAVIS_BUILD_DIR}"/packages/SharpCompress.0.23.0 ]; then ln -s "${TRAVIS_BUILD_DIR}"/packages/sharpcompress.0.23.0 "${TRAVIS_BUILD_DIR}"/packages/SharpCompress.0.18.2; fi addons: coverity_scan: project: diff --git a/BuildTools/AutoUpdateBuilder/AutoUpdateBuilder.csproj b/BuildTools/AutoUpdateBuilder/AutoUpdateBuilder.csproj index 1685273e7..ac12c5548 100644 --- a/BuildTools/AutoUpdateBuilder/AutoUpdateBuilder.csproj +++ b/BuildTools/AutoUpdateBuilder/AutoUpdateBuilder.csproj @@ -1,14 +1,15 @@ - - + + Debug AnyCPU {17E3EB29-87FD-4BE9-A531-8DAD8B295494} Exe - False + False AutoUpdateBuilder AutoUpdateBuilder - v4.5 + v4.6.2 + true @@ -29,10 +30,10 @@ false - - - packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll + + packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + @@ -70,6 +71,7 @@ + \ No newline at end of file diff --git a/BuildTools/AutoUpdateBuilder/app.config b/BuildTools/AutoUpdateBuilder/app.config new file mode 100644 index 000000000..2a0024f75 --- /dev/null +++ b/BuildTools/AutoUpdateBuilder/app.config @@ -0,0 +1,3 @@ + + + diff --git a/BuildTools/AutoUpdateBuilder/packages.config b/BuildTools/AutoUpdateBuilder/packages.config index a272c64df..1812e5207 100644 --- a/BuildTools/AutoUpdateBuilder/packages.config +++ b/BuildTools/AutoUpdateBuilder/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/BuildTools/UpdateVersionStamp/UpdateVersionStamp.csproj b/BuildTools/UpdateVersionStamp/UpdateVersionStamp.csproj index 463888901..a3585ee30 100644 --- a/BuildTools/UpdateVersionStamp/UpdateVersionStamp.csproj +++ b/BuildTools/UpdateVersionStamp/UpdateVersionStamp.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -7,10 +7,10 @@ 2.0 {1920C3B0-98A0-410F-8972-9C19FA616FE5} Exe - False + False UpdateVersionStamp UpdateVersionStamp - v4.5 + v4.6.2 diff --git a/BuildTools/UpdateVersionStamp/app.config b/BuildTools/UpdateVersionStamp/app.config index 51278a456..2a0024f75 100644 --- a/BuildTools/UpdateVersionStamp/app.config +++ b/BuildTools/UpdateVersionStamp/app.config @@ -1,3 +1,3 @@ - + diff --git a/Duplicati.sln b/Duplicati.sln index fbf68a1ad..8221b76a3 100644 --- a/Duplicati.sln +++ b/Duplicati.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2010 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29102.190 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Utility", "Duplicati\Library\Utility\Duplicati.Library.Utility.csproj", "{DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}" EndProject @@ -13,8 +13,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Backend.F EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Compression", "Duplicati\Library\Compression\Duplicati.Library.Compression.csproj", "{19ECCE09-B5EB-406C-8C57-BAC66997D469}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Encryption", "Duplicati\Library\Encryption\Duplicati.Library.Encryption.csproj", "{94484FDB-2EFA-4CF0-9BE6-A561157B4F87}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Logging", "Duplicati\Library\Logging\Duplicati.Library.Logging.csproj", "{D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Backend.S3", "Duplicati\Library\Backend\S3\Duplicati.Library.Backend.S3.csproj", "{C03F6DFD-805A-4BE0-9338-64870ADDB4A2}" @@ -103,6 +101,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Common", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.CommandLine.ConfigurationImporter", "Duplicati\CommandLine\ConfigurationImporter\Duplicati.CommandLine.ConfigurationImporter.csproj", "{B93E3BF0-DAA7-49B7-B07D-0559C5816735}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Duplicati.Library.Encryption", "Duplicati\Library\Encryption\Duplicati.Library.Encryption.csproj", "{314BDAE4-0F0E-42C8-A0C3-2C70232CF0B7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -129,10 +129,6 @@ Global {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Debug|Any CPU.Build.0 = Debug|Any CPU {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.ActiveCfg = Release|Any CPU {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.Build.0 = Release|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.ActiveCfg = Release|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.Build.0 = Release|Any CPU {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.Build.0 = Debug|Any CPU {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -309,6 +305,10 @@ Global {B93E3BF0-DAA7-49B7-B07D-0559C5816735}.Debug|Any CPU.Build.0 = Debug|Any CPU {B93E3BF0-DAA7-49B7-B07D-0559C5816735}.Release|Any CPU.ActiveCfg = Release|Any CPU {B93E3BF0-DAA7-49B7-B07D-0559C5816735}.Release|Any CPU.Build.0 = Release|Any CPU + {314BDAE4-0F0E-42C8-A0C3-2C70232CF0B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {314BDAE4-0F0E-42C8-A0C3-2C70232CF0B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {314BDAE4-0F0E-42C8-A0C3-2C70232CF0B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {314BDAE4-0F0E-42C8-A0C3-2C70232CF0B7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj b/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj index f5c9563ef..b4786f1f8 100644 --- a/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj +++ b/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -15,7 +15,7 @@ 3.5 Duplicati.snk - v4.5 + v4.6.2 false true diff --git a/Duplicati/CommandLine/BackendTester/app.config b/Duplicati/CommandLine/BackendTester/app.config index d4c8ff83f..c96c51607 100644 --- a/Duplicati/CommandLine/BackendTester/app.config +++ b/Duplicati/CommandLine/BackendTester/app.config @@ -1,29 +1,22 @@  + + + - - - - - - - - - - - + + - + - - + + - diff --git a/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj b/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj index bb77bbadc..f6e7d71f5 100644 --- a/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj +++ b/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -9,7 +9,7 @@ Duplicati.CommandLine.BackendTool Duplicati.CommandLine.BackendTool ..\Duplicati.snk - v4.5 + v4.6.2 false true diff --git a/Duplicati/CommandLine/BackendTool/app.config b/Duplicati/CommandLine/BackendTool/app.config index 1e3d7fb2e..c96c51607 100644 --- a/Duplicati/CommandLine/BackendTool/app.config +++ b/Duplicati/CommandLine/BackendTool/app.config @@ -1,27 +1,21 @@  - + + + - - - - - - - - - - + + - + - - + + diff --git a/Duplicati/CommandLine/ConfigurationImporter/Duplicati.CommandLine.ConfigurationImporter.csproj b/Duplicati/CommandLine/ConfigurationImporter/Duplicati.CommandLine.ConfigurationImporter.csproj index fac24af54..d954ba628 100644 --- a/Duplicati/CommandLine/ConfigurationImporter/Duplicati.CommandLine.ConfigurationImporter.csproj +++ b/Duplicati/CommandLine/ConfigurationImporter/Duplicati.CommandLine.ConfigurationImporter.csproj @@ -1,5 +1,5 @@  - + Debug @@ -9,8 +9,9 @@ Properties Duplicati.CommandLine.ConfigurationImporter Duplicati.CommandLine.ConfigurationImporter - v4.5 + v4.6.2 512 + AnyCPU @@ -51,6 +52,9 @@ Duplicati.Server + + + - \ No newline at end of file + + diff --git a/Duplicati/Library/Encryption/Duplicati.snk b/Duplicati/Library/Encryption/Duplicati.snk deleted file mode 100644 index e0c1e2dd86119728adaeefc5f14f2e597dabceeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmZQ)VqjoUVPFUfb~IvOVPIfnU}U&>ZqBFG;TL!xbC@f=sW??FHp%RuD04u?d|@dM zp47GKm!Hl%dFaei`<5*qzAgXqbzUyVi_n}?OMO*3eH|OE?krr| zFEl@9)L*-L?Q8KJPtTajTTV9l{O!|eX~_>-AD#yZ=6m07=(;Lz?67b_fmBH7>6XPy zU(fsaYt6=H^BbXYGcsePe{{ZI&XLwz9=grGu+&OTZN+`>n#aL@H_qHKNL{x|{OX?< z|2?cWgj<|a*&Wn5qtR68+v$gad`lNSIGSM4$`K*nE_8`M(8%hLo?+%X^GU{qHtmys zKah1))%qg*H$8)~{Blp<;-4#gv3~y3w(VO5op^Nq_Qo%mz;QX`zXzj&$<=3DJ8QK~doHe9_tNXtnN&4~oeV$j z^o2{LFP>08&A&p7*^IG!Mnm`8x8Lq$er`8lWi+;b>yXC%XWDAv$p-_y)7-T(lU$#a z#IstS7OnePcICwJ+w3(l+=qQ0gsr@P>rWc{j)4B;9b4MXBe*rpp6LBh{}W&Ed`G$N IQKi@%02MtM!T private const string GPG_ENCRYPTION_COMMAND = "--symmetric"; - + /// /// The command used to signal decryption (--decrypt) /// @@ -154,11 +154,11 @@ namespace Duplicati.Library.Encryption var encryptOptions = options.ContainsKey(COMMANDLINE_OPTIONS_ENCRYPTION_OPTIONS) ? options[COMMANDLINE_OPTIONS_ENCRYPTION_OPTIONS] : GPG_ENCRYPTION_DEFAULT_OPTIONS; var encryptCmd = options.ContainsKey(COMMANDLINE_OPTIONS_ENCRYPTION_COMMAND) ? options[COMMANDLINE_OPTIONS_ENCRYPTION_COMMAND] : GPG_ENCRYPTION_COMMAND; - m_encryption_args += " " + GPG_COMMANDLINE_STANDARD_OPTIONS + " " + encryptOptions + " " + encryptCmd; + m_encryption_args += " " + GPG_COMMANDLINE_STANDARD_OPTIONS + " " + encryptOptions + " " + encryptCmd; var decryptOptions = options.ContainsKey(COMMANDLINE_OPTIONS_DECRYPTION_OPTIONS) ? options[COMMANDLINE_OPTIONS_DECRYPTION_OPTIONS] : GPG_DECRYPTION_DEFAULT_OPTIONS; var decryptCmd = options.ContainsKey(COMMANDLINE_OPTIONS_DECRYPTION_COMMAND) ? options[COMMANDLINE_OPTIONS_DECRYPTION_COMMAND] : GPG_DECRYPTION_COMMAND; - m_decryption_args += " " + GPG_COMMANDLINE_STANDARD_OPTIONS + " " + decryptOptions + " " + decryptCmd; + m_decryption_args += " " + GPG_COMMANDLINE_STANDARD_OPTIONS + " " + decryptOptions + " " + decryptCmd; if (options.ContainsKey(COMMANDLINE_OPTIONS_PATH)) @@ -200,7 +200,7 @@ namespace Duplicati.Library.Encryption } #endregion - + /// /// Internal helper that wraps GPG usage /// @@ -208,8 +208,8 @@ namespace Duplicati.Library.Encryption /// The input stream private System.IO.Stream Execute(string args, System.IO.Stream input, bool encrypt) { - var psi = new System.Diagnostics.ProcessStartInfo - { + var psi = new System.Diagnostics.ProcessStartInfo + { Arguments = args, CreateNoWindow = true, FileName = m_programpath, @@ -217,7 +217,7 @@ namespace Duplicati.Library.Encryption RedirectStandardInput = true, RedirectStandardOutput = true, UseShellExecute = false, - WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden + WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden }; #if DEBUG diff --git a/Duplicati/Library/Encryption/GPGStreamWrapper.cs b/Duplicati/Library/Encryption/GPGStreamWrapper.cs index c0c280c52..eb9e09550 100644 --- a/Duplicati/Library/Encryption/GPGStreamWrapper.cs +++ b/Duplicati/Library/Encryption/GPGStreamWrapper.cs @@ -1,4 +1,4 @@ -#region Disclaimer / License +#region Disclaimer / License // Copyright (C) 2015, The Duplicati Team // http://www.duplicati.com, info@duplicati.com // @@ -18,8 +18,6 @@ // #endregion using System; -using System.Collections.Generic; -using System.Text; using System.IO; namespace Duplicati.Library.Encryption diff --git a/Duplicati/Library/Encryption/Properties/AssemblyInfo.cs b/Duplicati/Library/Encryption/Properties/AssemblyInfo.cs deleted file mode 100644 index 078cde85c..000000000 --- a/Duplicati/Library/Encryption/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,54 +0,0 @@ -#region Disclaimer / License -// Copyright (C) 2015, The Duplicati Team -// http://www.duplicati.com, info@duplicati.com -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// -#endregion -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Duplicati.Encryption")] -[assembly: AssemblyDescription("Encryption implementation for Duplicati")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Duplicati Team")] -[assembly: AssemblyProduct("Duplicati.Encryption")] -[assembly: AssemblyCopyright("LGPL, Copyright © Duplicati Team 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ea360f7d-b721-452e-8a7d-60da8ad1094f")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("2.0.0.7")] -[assembly: AssemblyFileVersion("2.0.0.7")] diff --git a/Duplicati/Library/Encryption/Strings.cs b/Duplicati/Library/Encryption/Strings.cs index 961fd4407..ba2a739cf 100644 --- a/Duplicati/Library/Encryption/Strings.cs +++ b/Duplicati/Library/Encryption/Strings.cs @@ -1,16 +1,40 @@ +#region Disclaimer / License +// Copyright (C) 2019, The Duplicati Team +// http://www.duplicati.com, info@duplicati.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +#endregion using Duplicati.Library.Localization.Short; -namespace Duplicati.Library.Encryption.Strings { - internal static class AESEncryption { + +namespace Duplicati.Library.Encryption.Strings +{ + internal static class AESEncryption + { public static string Description_v2 { get { return LC.L(@"This module encrypts all files in the same way that AESCrypt does, using 256 bit AES encryption."); } } public static string DisplayName { get { return LC.L(@"AES-256 encryption, built in"); } } public static string EmptyKeyError { get { return LC.L(@"Empty passphrase not allowed"); } } public static string AessetthreadlevelLong { get { return LC.L(@"Use this option to set the thread level allowed for AES crypt operations. Valid values are 0 (uses default), or from 1 (no multithreading) to 4 (max. multithreading)"); } } public static string AessetthreadlevelShort { get { return LC.L(@"Set thread level utilized for crypting (0-4)"); } } } - internal static class EncryptionBase { + internal static class EncryptionBase + { public static string DecryptionError(string message) { return LC.L(@"Failed to decrypt data (invalid passphrase?): {0}", message); } } - internal static class GPGEncryption { + internal static class GPGEncryption + { public static string Description { get { return LC.L(@"The GPG encryption module uses the GNU Privacy Guard program to encrypt and decrypt files. It requires that the gpg executable is available on the system. On Windows it is assumed that this is in the default installation folder under program files, under Linux and OSX it is assumed that the program is available via the PATH environment variable. It is possible to supply the path to GPG using the --gpg-program-path switch."); } } public static string DisplayName { get { return LC.L(@"GNU Privacy Guard, external"); } } public static string GpgencryptiondecryptionswitchesLong { get { return LC.L(@"Use this switch to specify any extra options to GPG. You cannot specify the --passphrase-fd option here. The --decrypt option is always specified."); } } @@ -30,7 +54,8 @@ namespace Duplicati.Library.Encryption.Strings { public static string GpgencryptionencryptioncommandLong(string commandname, string optionvalue) { return LC.L(@"Overrides the default GPG encryption command ""{0}"", normal usage is to request asymetric encryption with the setting {1}", commandname, optionvalue); } public static string GpgencryptionencryptioncommandShort { get { return LC.L(@"The GPG encryption command"); } } } - internal static class GPGStreamWrapper { + internal static class GPGStreamWrapper + { public static string DecryptionError(string message) { return LC.L(@"Decryption failed: {0}", message); } public static string GPGFlushError { get { return LC.L(@"Failure while invoking GnuPG, program won't flush output"); } } public static string GPGTerminateError { get { return LC.L(@"Failure while invoking GnuPG, program won't terminate"); } } diff --git a/Duplicati/Library/Encryption/app.config b/Duplicati/Library/Encryption/app.config deleted file mode 100644 index b4ca687d2..000000000 --- a/Duplicati/Library/Encryption/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Duplicati/Library/Encryption/packages.config b/Duplicati/Library/Encryption/packages.config deleted file mode 100644 index 04c131435..000000000 --- a/Duplicati/Library/Encryption/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Duplicati/Library/Interface/Duplicati.Library.Interface.csproj b/Duplicati/Library/Interface/Duplicati.Library.Interface.csproj index a58fd641a..041fb4783 100644 --- a/Duplicati/Library/Interface/Duplicati.Library.Interface.csproj +++ b/Duplicati/Library/Interface/Duplicati.Library.Interface.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -14,7 +14,7 @@ 3.5 - v4.5 + v4.6.2 false diff --git a/Duplicati/Library/Localization/Duplicati.Library.Localization.csproj b/Duplicati/Library/Localization/Duplicati.Library.Localization.csproj index 119be4efc..4340d3d81 100644 --- a/Duplicati/Library/Localization/Duplicati.Library.Localization.csproj +++ b/Duplicati/Library/Localization/Duplicati.Library.Localization.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -8,7 +8,7 @@ Duplicati.Library.Localization Duplicati.Library.Localization ..\Main\Duplicati.snk - v4.5 + v4.6.2 false @@ -33,10 +33,10 @@ false - - - ..\..\..\packages\NGettext.0.6.3\lib\net45\NGettext.dll + + ..\..\..\packages\NGettext.0.6.3\lib\net46\NGettext.dll + @@ -48,8 +48,7 @@ - - + diff --git a/Duplicati/Library/Localization/packages.config b/Duplicati/Library/Localization/packages.config index dd9f8d80b..963dc136c 100644 --- a/Duplicati/Library/Localization/packages.config +++ b/Duplicati/Library/Localization/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Duplicati/Library/Logging/Duplicati.Library.Logging.csproj b/Duplicati/Library/Logging/Duplicati.Library.Logging.csproj index 512a87951..cac42e18c 100644 --- a/Duplicati/Library/Logging/Duplicati.Library.Logging.csproj +++ b/Duplicati/Library/Logging/Duplicati.Library.Logging.csproj @@ -1,5 +1,5 @@ - - + + Debug AnyCPU @@ -12,7 +12,7 @@ 3.5 - v4.5 + v4.6.2 diff --git a/Duplicati/Library/Logging/app.config b/Duplicati/Library/Logging/app.config index b4ca687d2..5c5a9267f 100644 --- a/Duplicati/Library/Logging/app.config +++ b/Duplicati/Library/Logging/app.config @@ -1,3 +1,6 @@ - + - + + + + diff --git a/Duplicati/Library/Main/Duplicati.Library.Main.csproj b/Duplicati/Library/Main/Duplicati.Library.Main.csproj index 6ed055774..3664bcb67 100644 --- a/Duplicati/Library/Main/Duplicati.Library.Main.csproj +++ b/Duplicati/Library/Main/Duplicati.Library.Main.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -12,7 +12,7 @@ 3.5 - v4.5 + v4.6.2 @@ -36,16 +36,16 @@ 4 + + ..\..\..\packages\CoCoL.1.6.1\lib\net45\CoCoL.dll + + + ..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + - - ..\..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll - - - ..\..\..\packages\CoCoL.1.5.1\lib\net45\CoCoL.dll - diff --git a/Duplicati/Library/Main/app.config b/Duplicati/Library/Main/app.config index b4ca687d2..4525b1700 100644 --- a/Duplicati/Library/Main/app.config +++ b/Duplicati/Library/Main/app.config @@ -1,3 +1,3 @@ - + diff --git a/Duplicati/Library/Main/packages.config b/Duplicati/Library/Main/packages.config index 040b8a7cf..b9e1d2970 100644 --- a/Duplicati/Library/Main/packages.config +++ b/Duplicati/Library/Main/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj b/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj index 2964d8b92..6e9f1c8c5 100644 --- a/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj +++ b/Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -14,7 +14,7 @@ 3.5 - v4.5 + v4.6.2 false @@ -38,28 +38,28 @@ false - - ..\..\..\..\packages\BouncyCastle.1.8.1\lib\BouncyCastle.Crypto.dll - True + + ..\..\..\..\packages\agsXMPP.1.1.1.0\lib\agsXMPP.dll + + + ..\..\..\..\packages\BouncyCastle.1.8.5\lib\BouncyCastle.Crypto.dll + + + ..\..\..\..\packages\MailKit.2.2.0\lib\net45\MailKit.dll + + + ..\..\..\..\packages\MimeKit.2.2.0\lib\net45\MimeKit.dll + + + ..\..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll - - ..\..\..\..\packages\agsXMPP.1.1.1.0\lib\agsXMPP.dll - + - - ..\..\..\..\packages\MimeKit.1.18.1\lib\net45\MimeKit.dll - - - ..\..\..\..\packages\MailKit.1.18.1.1\lib\net45\MailKit.dll - - - ..\..\..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll - @@ -114,6 +114,7 @@ + PreserveNewest @@ -138,7 +139,5 @@ PreserveNewest - - - + \ No newline at end of file diff --git a/Duplicati/Library/Modules/Builtin/app.config b/Duplicati/Library/Modules/Builtin/app.config new file mode 100644 index 000000000..ba3677f42 --- /dev/null +++ b/Duplicati/Library/Modules/Builtin/app.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Duplicati/Library/Modules/Builtin/packages.config b/Duplicati/Library/Modules/Builtin/packages.config index 75d5024ea..1fe0281c6 100644 --- a/Duplicati/Library/Modules/Builtin/packages.config +++ b/Duplicati/Library/Modules/Builtin/packages.config @@ -1,8 +1,8 @@  - - - - - + + + + + \ No newline at end of file diff --git a/Duplicati/Library/SQLiteHelper/Duplicati.Library.SQLiteHelper.csproj b/Duplicati/Library/SQLiteHelper/Duplicati.Library.SQLiteHelper.csproj index 948039493..ef660e74c 100644 --- a/Duplicati/Library/SQLiteHelper/Duplicati.Library.SQLiteHelper.csproj +++ b/Duplicati/Library/SQLiteHelper/Duplicati.Library.SQLiteHelper.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -8,7 +8,7 @@ Duplicati.Library.SQLiteHelper SQLiteHelper ..\..\GUI\Duplicati.GUI.TrayIcon\Duplicati.snk - v4.5 + v4.6.2 false @@ -93,4 +93,4 @@ Duplicati.Library.Common - + \ No newline at end of file diff --git a/Duplicati/Library/Snapshots/Duplicati.Library.Snapshots.csproj b/Duplicati/Library/Snapshots/Duplicati.Library.Snapshots.csproj index c371b939f..bc20a60ab 100644 --- a/Duplicati/Library/Snapshots/Duplicati.Library.Snapshots.csproj +++ b/Duplicati/Library/Snapshots/Duplicati.Library.Snapshots.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -15,9 +15,11 @@ 3.5 - v4.5 + v4.6.2 false + + true @@ -39,6 +41,15 @@ false + + ..\..\..\packages\AlphaFS.2.2.6\lib\net452\AlphaFS.dll + + + ..\..\..\packages\AlphaVSS.1.4.0\lib\net45\AlphaVSS.Common.dll + + + ..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + ..\..\..\thirdparty\UnixSupport\UnixSupport.dll @@ -48,9 +59,6 @@ - - ..\..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll - @@ -119,4 +127,10 @@ --> + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/Duplicati/Library/Snapshots/app.config b/Duplicati/Library/Snapshots/app.config index b4ca687d2..a1d2c2556 100644 --- a/Duplicati/Library/Snapshots/app.config +++ b/Duplicati/Library/Snapshots/app.config @@ -1,3 +1,14 @@ - + - + + + + + + + + + + + + diff --git a/Duplicati/Library/Snapshots/packages.config b/Duplicati/Library/Snapshots/packages.config index f58651f3a..0e8dd406b 100644 --- a/Duplicati/Library/Snapshots/packages.config +++ b/Duplicati/Library/Snapshots/packages.config @@ -1,6 +1,6 @@  - - - + + + \ No newline at end of file diff --git a/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj b/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj index 14775b9af..1c4a54108 100644 --- a/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj +++ b/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj @@ -1,5 +1,5 @@ - - + + Debug AnyCPU @@ -7,9 +7,10 @@ Library Duplicati.Library.UsageReporter Duplicati.Library.UsageReporter - v4.5 + v4.6.2 Duplicati.snk false + true @@ -30,13 +31,13 @@ false + + ..\..\..\packages\CoCoL.1.6.1\lib\net45\CoCoL.dll + + + ..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + - - ..\..\..\packages\CoCoL.1.5.1\lib\net45\CoCoL.dll - - - ..\..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll - diff --git a/Duplicati/Library/UsageReporter/packages.config b/Duplicati/Library/UsageReporter/packages.config index 040b8a7cf..b9e1d2970 100644 --- a/Duplicati/Library/UsageReporter/packages.config +++ b/Duplicati/Library/UsageReporter/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/Duplicati/Library/Utility/Duplicati.Library.Utility.csproj b/Duplicati/Library/Utility/Duplicati.Library.Utility.csproj index 42a947f5b..f66b87ceb 100644 --- a/Duplicati/Library/Utility/Duplicati.Library.Utility.csproj +++ b/Duplicati/Library/Utility/Duplicati.Library.Utility.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -12,7 +12,7 @@ 3.5 - v4.5 + v4.6.2 diff --git a/Duplicati/Library/Utility/app.config b/Duplicati/Library/Utility/app.config index 469464a22..a78d80b40 100644 --- a/Duplicati/Library/Utility/app.config +++ b/Duplicati/Library/Utility/app.config @@ -1,4 +1,4 @@ - + diff --git a/Duplicati/License/Duplicati.License.csproj b/Duplicati/License/Duplicati.License.csproj index f9cd2ccb9..a27218ecb 100644 --- a/Duplicati/License/Duplicati.License.csproj +++ b/Duplicati/License/Duplicati.License.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -14,7 +14,7 @@ 3.5 - v4.5 + v4.6.2 false diff --git a/Duplicati/Server/Duplicati.Server.Serialization/Duplicati.Server.Serialization.csproj b/Duplicati/Server/Duplicati.Server.Serialization/Duplicati.Server.Serialization.csproj index 92daf6325..07d76b234 100644 --- a/Duplicati/Server/Duplicati.Server.Serialization/Duplicati.Server.Serialization.csproj +++ b/Duplicati/Server/Duplicati.Server.Serialization/Duplicati.Server.Serialization.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -9,7 +9,7 @@ Duplicati.Server.Serialization Duplicati.Server.Serialization 512 - v4.5 + v4.6.2 false @@ -38,11 +38,11 @@ Duplicati.snk + + ..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + - - ..\..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll - diff --git a/Duplicati/Server/Duplicati.Server.Serialization/packages.config b/Duplicati/Server/Duplicati.Server.Serialization/packages.config index ee51c2373..1812e5207 100644 --- a/Duplicati/Server/Duplicati.Server.Serialization/packages.config +++ b/Duplicati/Server/Duplicati.Server.Serialization/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Duplicati/Server/Duplicati.Server.csproj b/Duplicati/Server/Duplicati.Server.csproj index 6b63d84bf..869744745 100644 --- a/Duplicati/Server/Duplicati.Server.csproj +++ b/Duplicati/Server/Duplicati.Server.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,7 +10,7 @@ Duplicati.Server Duplicati.Server 512 - v4.5 + v4.6.2 false true @@ -48,10 +48,38 @@ app.manifest + + ..\..\packages\BouncyCastle.1.8.5\lib\BouncyCastle.Crypto.dll + + + ..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + - - ..\..\packages\BouncyCastle.1.8.1\lib\BouncyCastle.Crypto.dll + + ..\..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True + True + + + ..\..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True ..\..\thirdparty\UnixSupport\UnixSupport.dll @@ -61,9 +89,6 @@ - - ..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll - @@ -139,8 +164,8 @@ - + @@ -216,7 +241,7 @@ Duplicati.Library.DynamicLoader - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87} + {314bdae4-0f0e-42c8-a0c3-2c70232cf0b7} Duplicati.Library.Encryption diff --git a/Duplicati/Server/app.config b/Duplicati/Server/app.config index 88f9892a3..5af8b583f 100644 --- a/Duplicati/Server/app.config +++ b/Duplicati/Server/app.config @@ -17,13 +17,25 @@ - + - + + + + + + + + + + + + + - + diff --git a/Duplicati/Server/packages.config b/Duplicati/Server/packages.config index efc598b08..8f42c1168 100644 --- a/Duplicati/Server/packages.config +++ b/Duplicati/Server/packages.config @@ -1,5 +1,10 @@  - - + + + + + + + \ No newline at end of file diff --git a/Duplicati/Service/Duplicati.Service.csproj b/Duplicati/Service/Duplicati.Service.csproj index d4721401d..02f9d65a1 100644 --- a/Duplicati/Service/Duplicati.Service.csproj +++ b/Duplicati/Service/Duplicati.Service.csproj @@ -1,14 +1,14 @@  - + Debug AnyCPU {E93F3DE2-FF3A-4709-96A3-8190AA14FA25} Exe - False + False Duplicati.Service Duplicati.Service - v4.5 + v4.6.2 false diff --git a/Duplicati/Service/app.config b/Duplicati/Service/app.config index 1e3d7fb2e..d26ff7bbd 100644 --- a/Duplicati/Service/app.config +++ b/Duplicati/Service/app.config @@ -1,6 +1,8 @@  - + + + @@ -17,11 +19,23 @@ - + - + + + + + + + + + + + + + diff --git a/Duplicati/Tools/Duplicati.Tools.csproj b/Duplicati/Tools/Duplicati.Tools.csproj index efe428109..2928cd1bb 100644 --- a/Duplicati/Tools/Duplicati.Tools.csproj +++ b/Duplicati/Tools/Duplicati.Tools.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -7,8 +7,9 @@ Library Duplicati.Tools Duplicati.Tools - v4.5 + v4.6.2 false + true diff --git a/Duplicati/UnitTest/BorderTests.cs b/Duplicati/UnitTest/BorderTests.cs index 68aa88e0a..768f78dbb 100644 --- a/Duplicati/UnitTest/BorderTests.cs +++ b/Duplicati/UnitTest/BorderTests.cs @@ -218,7 +218,7 @@ namespace Duplicati.UnitTest private void RunCommands(int blocksize, int basedatasize = 0, Action> modifyOptions = null) { var testopts = TestOptions; - testopts["blocksize"] = blocksize.ToString() + "b"; + testopts["blocksize"] = blocksize.ToString() + "b"; modifyOptions?.Invoke(testopts); var filenames = WriteTestFilesToFolder(DATAFOLDER, blocksize, basedatasize); diff --git a/Duplicati/UnitTest/Duplicati.UnitTest.csproj b/Duplicati/UnitTest/Duplicati.UnitTest.csproj index 3587361e8..d2595c601 100644 --- a/Duplicati/UnitTest/Duplicati.UnitTest.csproj +++ b/Duplicati/UnitTest/Duplicati.UnitTest.csproj @@ -1,5 +1,6 @@  - + + Debug AnyCPU @@ -7,8 +8,11 @@ Library Duplicati.UnitTest Duplicati.UnitTest - v4.5 + v4.6.2 false + + + true @@ -29,10 +33,10 @@ false - - - ..\..\packages\NUnit.3.5.0\lib\net45\nunit.framework.dll + + ..\..\packages\NUnit.3.12.0\lib\net45\nunit.framework.dll + @@ -122,10 +126,6 @@ {0CA86ECF-5BEC-4909-B4F6-110A03B30B92} Duplicati.Library.DynamicLoader - - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87} - Duplicati.Library.Encryption - {C5899F45-B0FF-483C-9D38-24A9FCAAB237} Duplicati.Library.Interface @@ -187,4 +187,10 @@ + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/Duplicati/UnitTest/app.config b/Duplicati/UnitTest/app.config index f171dd7bb..89a412582 100644 --- a/Duplicati/UnitTest/app.config +++ b/Duplicati/UnitTest/app.config @@ -3,25 +3,17 @@ - - - - - - - - - - + + - + - - + + - \ No newline at end of file + diff --git a/Duplicati/UnitTest/packages.config b/Duplicati/UnitTest/packages.config index c108d442f..20d68e1a3 100644 --- a/Duplicati/UnitTest/packages.config +++ b/Duplicati/UnitTest/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Duplicati/WindowsService/App.config b/Duplicati/WindowsService/App.config index 877624ed9..e89424bca 100644 --- a/Duplicati/WindowsService/App.config +++ b/Duplicati/WindowsService/App.config @@ -1,6 +1,6 @@ - + diff --git a/Duplicati/WindowsService/WindowsService.csproj b/Duplicati/WindowsService/WindowsService.csproj index a5b3b96b0..11e4f0cf5 100644 --- a/Duplicati/WindowsService/WindowsService.csproj +++ b/Duplicati/WindowsService/WindowsService.csproj @@ -1,5 +1,5 @@  - + Debug @@ -10,7 +10,7 @@ Properties Duplicati.WindowsService Duplicati.WindowsService - v4.5 + v4.6.2 512 true diff --git a/Installer/Windows/Duplicati.wxs b/Installer/Windows/Duplicati.wxs index acef64ab6..052fb8c35 100644 --- a/Installer/Windows/Duplicati.wxs +++ b/Installer/Windows/Duplicati.wxs @@ -27,7 +27,7 @@ - + diff --git a/Installer/Windows/UpgradeLog.htm b/Installer/Windows/UpgradeLog.htm new file mode 100644 index 0000000000000000000000000000000000000000..371f58c3afe03394f9c1d3b9faf1b92391009b54 GIT binary patch literal 30756 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 literal 0 HcmV?d00001 diff --git a/Installer/Windows/WixInstaller.wixproj b/Installer/Windows/WixInstaller.wixproj index c2d1f0b3f..1a8374ec6 100644 --- a/Installer/Windows/WixInstaller.wixproj +++ b/Installer/Windows/WixInstaller.wixproj @@ -1,4 +1,4 @@ - + Debug x64 @@ -71,9 +71,9 @@ - - - - - + + + + + \ No newline at end of file diff --git a/Tools/SQLiteTool/App.config b/Tools/SQLiteTool/App.config index 2ae22ede8..e6848d0ef 100644 --- a/Tools/SQLiteTool/App.config +++ b/Tools/SQLiteTool/App.config @@ -1,6 +1,6 @@ - + - + - \ No newline at end of file + diff --git a/Tools/SQLiteTool/SQLiteTool.csproj b/Tools/SQLiteTool/SQLiteTool.csproj index 04d4d84b3..b5f120044 100644 --- a/Tools/SQLiteTool/SQLiteTool.csproj +++ b/Tools/SQLiteTool/SQLiteTool.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -7,10 +7,11 @@ 2.0 {3B546BD0-7549-4CE3-9B68-5C149B8AA2E7} Exe - False + False SQLiteTool SQLiteTool - v4.5 + v4.6.2 + full diff --git a/Tools/ZipFileDebugger/ZipFileDebugger.csproj b/Tools/ZipFileDebugger/ZipFileDebugger.csproj index 8ad515a68..408dd657d 100644 --- a/Tools/ZipFileDebugger/ZipFileDebugger.csproj +++ b/Tools/ZipFileDebugger/ZipFileDebugger.csproj @@ -1,4 +1,4 @@ - + Debug @@ -7,7 +7,8 @@ Exe ZipFileDebugger ZipFileDebugger - v4.6.1 + v4.6.2 + true @@ -47,5 +48,8 @@ Duplicati.Library.Logging + + + \ No newline at end of file diff --git a/Tools/ZipFileDebugger/app.config b/Tools/ZipFileDebugger/app.config new file mode 100644 index 000000000..2a0024f75 --- /dev/null +++ b/Tools/ZipFileDebugger/app.config @@ -0,0 +1,3 @@ + + + diff --git a/thirdparty/SharpAESCrypt/SharpAESCrypt.exe b/thirdparty/SharpAESCrypt/SharpAESCrypt.exe new file mode 100644 index 0000000000000000000000000000000000000000..4ee0a64037f3a55c9897a788edb25acd41bc9113 GIT binary patch literal 37888 zcmeZ`n!v!!z`(%5z`*eTKLf)K1_*F~P;2bNCf155Y52A$iTn^VKFl} zv@$RVfDxDwfQUmWFlWPZ1_pl+>i`2o2P=qyh9596@PNW+IRk?QniO8H0^I3fWgH3& z3?5(>gwQKVtteq&U=Zkl`U~V&sJkI5z+OzyD=IEZW`Md4KUof8f!xN#z{)TojDevf033=8iVO@O+aL;v zB!vxF7lui}31a!NGZZv%fmjbgEN&1>mxH08fd|Cu1+jQRtd}4bABg45$xzV14`Stm zSOOr{bP!7r#5xRO34vHYK`dbq%b1Iypg{!0nh9cwf>`%KEHMy^mz$xWK^(*i1+gSR ztivFdB#33r!%)y51!6UVSkfTYOAt#2#8T#EC}@xcv0_0iIS}hSh$RnVvGXw$G$?>r zsUVgjh_xTYQet3W(PCg=5H?_9FlGR!EkUMgT?PggT@|KkZ3YGwE;b!DHgP=xZ4o97 zHU&(3~a(&Qi3e<0ufPS;v&V$AOUW40UkjvL7se7un$3=frLfAHvLiZ*cJ(LgK0soYOpGhU4mTy*vc6g*os9M z7`Vj5iYJ1s?_2eZ__#+XUI*Y+-h$YEXDW zTp-NBB*kAZ5mPnDI`RDJ3=C{)?D^sh3|ztj+I&I+8WJE6L&SvyG$a`q zxO89M^AHmFC&tXcAe}G8z`%6};sJ>7#EPXsngy8z1+h2?BnR=d2-t&K3=E6{pmfK@ zB(2KC2Pz7s4Okhvm>58Hryx_cG6MrkU#3JvuPFlqBNrqkvWc;dxa&ZL39>m7_Olom z7{r8GAik2&-~=TqRzX&=iE>GTtl|?BgjobxbP6ESf-DeuHbFKq4MqkAZDDpnb}@bK zI#788F;+t!lor{<1ljWyKykn!$kvxB$Q~&k2@XABPC+(7cJT;7PBB5wzDx~8aLO_Q zWdsgE&SE772CjT%kO?eewweF`|A*KsF95cen+cMznAwXRLHP%it32mjPH;zAwm2&}b9n>dOR+3UiAI^JvS0^5{fCZb2SUJb}v6;!*|%wkkm$@d#la zK^~BDquUVUK1LsPJ%OSyxTvUPb zFUToekPHSXKDe3KK!L)>P9QI9A=w7g56Xl*OdMG31IeIePX=iN76yJs1_oA;-=H-C zC|8QX@=v}7JU$@FAzu?NAO>ZFa+ris7*jPUx#eqtDh6#CAqEX?Q02fR#HgXez`!NM zsG-Ziz@@>?z`!QNprHpUYi{4;6Jq!$#)eeZfFe}_oT9}fQ0xY!$$V!91~xH>*TC$) zOsE==6Lfi@GN9z4Z2{$YFfg$3K*EVbj03I#Y@8=nIq_OkaLo%TyL=clOBujr7pRR^ z#sF^I34(JYbG|;vuPnM8Vqg~wFtPPzibt^YWkzsAY-E>9QTWfmzz}~48dM z3q7b;KuTaC3u3c~u|Qp|1!@bhFeo!HFt9T)2(of%bFs2V3NW*;*f3xh2d^O(h1A?ES1h#3lV@UcKmWPzE;fodYiEKoYtV_;z50{KJ35FG3pM&R_t z#?Gq2#lXOJPlR2EjU7^Ff!ak77Bp`&G4L^POMLYdr8D$6?R391OG?$M>gB!QW zj4~jz_!xMlA!ac#urtW1LfFCvtPHam85p=h`3js^ik$cv3cv}b7L>u5Bp?-&crBJ2-SU*Hc+*pDo-y9+bZWANqm{@B;?MEh-T2KmODz;!?;Hm}XURJ9cpu)b+k%55) z)Wlb`XU)LCC0`Ftxd^u~iGa&JEhc6@ z77Z3qd<_+WrzqEeczZCT3j;NHG8^%(-;A>p=Yih$bdxaP(`*LE6(=d2oY4{Ry}lP}p(pqsDG+0K{3U_ zRBZ#InOSw2#I(e?#JI(Hn7~rH+Dz3}pze*bI2V&xEl3rUyZ|^ZYeC|0jy1SZ29g&u zbYO*;2THA6yiC;~Ie7tySR^wGC%7fV!5P8B1QFwi1RKoC0V+5-A_SNiAeLL*233P% zc2_`@yn_991_lOJR(XNgNC9RxT^4x(ZAMUQ4jj77EP^Z%tb#0&;Br)$m5Hg^9MsZc z&5EdnFysY5O$CNBVSDjUqH zY%r&?p*xjLCsB}1mlJBNb_m1-VRj~nt7<_34C>v0V+0%=5EZ1@A;>0Xm;=!!%zqpXu`c$Hkv-lr2{iZx_6k@M(qGcig3$TXK>5i9)PaQxOl4qT)8RqlR56Lyg3>mm ztCXJvYNceM)UHS}$jwi1zXnMTl8*Ga>pREmk`=YnjQD9kI! zB_1KnCCCfvDj*UYlOXRUl#Yubw6zPh4wOW3xIz%x4$XIEVBnIA23sV|4QX5EyMg*0 zJYvFp+B$+ff_$LnJ>Nto($5d^=z`z2^$g#B`79`n$nr5K3^gU7JbjT!LYsSF9@=prXPJs@vnwT(% z!tAMGWMJS0wIQlO%B%`N2^CyDS;c{v;4}+qe2R&ITVqTR+vNpfRe8a-b6(^NFhcE0f`$eSXvNcU|l8t1KV3d1aIERFF@ai1Y|vVp8$#!Mg2EBf4uLpO2ij?X$$&zDNd(+1gY;!U3c&pq ze@GJs#AXr!595K-EU5mS3UQktQ(vZpzL>a%7pTkS&A`A_2O4<=4f}CvF^SD8ddAOC zAPMTgb8&&Vui#v65ceIJ>jxSf`o|*nkC8{5S6rA)TZ&0+mb`%=Tg1hDe~_FJvmhI< zAe(rEFq<*#%j^?SEl*K~`OMjUb2^E4VWt%)zF^&m=xe zkX?|26Wl4#=7VxMI3Z1W9zhNrc0mqE=inZXAiEB`AhgpU2DbVhc(AXOmw|yvhfNAB zB*g1Opk$l(ea#}?$w4+aG^XfO%vU=CdYK~^0eK~{|r1_rKs%xd=-?lFMk zh|vVpXZXROB*h4t9${c&c*5YK0bw&Rv@vq_GctqnJ_ExAh8!El2uTJ8#(PDdKuzCJ zP+K_+M1;faY5=vn#T!74a1Wn@ffO0wC-T5IYdmxt3$928n^%zhJ(!0TY7`0|Ns;xU2&?lS_=7 zO^8t=3Y1HjAueL6^<`jSxyQw>!^Wl&4H}!&g7ncj86*@T{Vq@*P-g_sS_z7AS%@$) zFhJUuAR~oAWuG965G%ygYB!Lps@)kFSRyldIdwhQ#0)vugxT&s2USb|gsVM3%~Tbp zYLKluB1~YFOx2*k(Pt};0k!Z!s&|4^SA#+`KNi$TxMu}Z2?~L}%&gc<9;Rvtn+KY`n0@CSc zs>b3ah|TO-5w##+F;#=&H9rpQDinKI#cZGc`~RO!OOQ>A0n(2ZW0<%cJY~ng#PE_q zjUSRGLE-7l$iN`Tz#z!N#ma3V0}4?dFVT&pjSNHXU|BR!Ab@fSUmc)EHI{eI`~OW)_G}P7ZLuvVi&m;9db% zuR-kP$cm_iq#AG}!9o_vGFCC$yZ=DLtDtxq@vsXqL4zI=;ULF>i)=17 zT`^cN>+(QT0wfH%ICR+9AwdHb2ZsxrE*DIL&U|oL1s=QCU@(n^n3zOrK{*~d_cGOh3LK4iP{Gf}1R5m-j~l`Aw2?K!-V^xj1?N-N zyPzpqu+<GC(edpk71|PDF78 z^)EO$;bFNQn>QhOj+4RE4&p~9h7tyaDG)ZOEX>2_Ur^A3h9W@W335D$&IdalT4;eJ zK|Tgaf@rWLiuWNULju^t;G_&X)*{r=g7^@tdYpT zz*Qp3z`(@AR09&_UprfN{gLn>ep zizAYkLpK3D*vh68!K9(jz`zEM6iCZ}71^b;KwTt=5<%8T$nZ9IgfJ_+4woP+MBL~s zjAh>mvQv-+)Cy%oF@>3hlNCIA0XBgfF{8|mY^aO z5=sz#@WA1Mu-GEG*>p{zfuqX=u?*8g5OFaG1)Z2+hj@_(&F388N)KG8f@@a}c8ISc z4Go~)Wrui|7b4Cc$q~UBDa-;IAcK0AQ;-GOub}!D;#XVq|Ns9((poVC1A`<3gJAJO zP$GvWrrK^$_5x>EZZRHh19pyCylmAy3=Ax)x)N$^Z2#C6fu`tkL6arIEVUpBK^9Jp zJWyMSLp*|qgS{`)=#(~_m_|MW0~cEj$T(3kjRH`=$KVwcq^k#7TfxKtT4E)|z#u5X z#qv*-8#eQWYmZs&`gZM>$LJS4qa43-l8I}ZgO#`SmlMG@O#lhtTK=LUJ3@psL z7EDYUE}))ADo70z6N`ou0|T3eD@Z5}ETrKEVy8pc?jUvss8nWRt;L~53zWZ>g6bv) z2En2dkgbiNP-oNOV9Rd;bx9dTxIxoVeVGz^+;yOpJjKnR0*YO1B6#-CScqMGqQXB0 z1_omeHpo1p7Dx^(;sKHaO&c29LFITj`Z6UzBgzPq#CWwOI5;N?vv6>7aEeDvoC6{S zS>|v`MDTKQ^ko`7;?P2}SdOV0yDlWDs$A z1*i;Ud{bYu4z#LFUZE$Lfq@Z43M``016m#eUL+u|0In&xAmPXcq53j4dO;-uH>kM? zwy_VCPQjLg=XBY`^7}zW3dCq;G3LI^{0RsF@E{l$yLbdQy8>vLrqNC|tu9FR$e#!@ z3Cf?|_@(x&z2{e+%mOm3bu>^|mThR6db6+MTD4_$?hFahVWbVrZ z#}|qmSOh5sp^`+W6{vcMGeMCHjy`5+jEZq-D>GGtiXGAzJ)lDo6pb>U? z(40A_1<1w41~UmM5r9mBtn1=tVuvmWss*J5CU$uR@RFWdkiFPrns8Kt0}bYJP-KJC zJg6Lkq!Bd+ITuK}0L`Df`$5=gOppu)aR?-RfSmze1HsI&1yosq+FanO#1d2mLll9= zX+WM6gK+yYHRggN2UPfh(<+k#mn5neB0-hqJkYXOP=P4|t}?aU zK#MpuKx=iFm}@gZ)exvZ2wKAd@-h>%#(dC-qL>=9jsR0NNFLI;0}V0$lLF^E(2N1E z6r`*K>EYyL5Ce@PT7lbkTujWhSs-JLn5scExW}Uf<3MMMAu`aJVh9H`LJn63o+-A1 z7{Cml4hAb^&IeBi!wiH@BSWRY)5vx(eUP;(T1b4*1c{av6Eh2VHI+sJw4cJl;0syq zEeQ8QHmI^@sm%q=w6I7->9ey)L82rx6T))s)|MQZav6q8t%Dpze00|N_N zZ6QcNtTqP}0-%1a0V@NjuMJvH!^Bh#(gltjutw0_v^FoOq0Yus4YEmJj;R`KaW%+X zHi&vQSm!|ZDic#R*p{paux;$Rl1$=YtC*M|251z58W;H>%k3a)A>vt)pr8dA4UY~m z2NoS*4lFvr9B_05L7W3xV8#VE$O<9|iACptJmTPz@}s;O4s) zxGw=(5)WEK#8eFmIbCI#is1GM$N&tNWOA{I8Q^sdHygy7zD#zA zYj~I;0_+^%o+K|DXCxOVhp{M|n4usiR8EWyEEfTa2#{Mip$U;w3si@e!ompRU`U`u zW`cXC0+7`h5HW~F;E`+0K!HfIF|!~71tKH{3LB(A0R=fIP{1^(ya$bGxG^v=D1quD zY;ItL%p7n*Tmf2?3i1SVRwN|Xg4V4SfR->bv4aIbgM}b}feL?RcvypG+Y-TJdmzma zqari8#JE|-3?ox$U3AxJFA$X19BSY;n0;6 z6JW-f$+d;pL8UndIEX=gN45xVcCA^E@B**g0HqE{rU7$7*$~#ZRAOS*0JS`|;0!q? zaL)@=RDjm5gWF+RQB0y)wWXj^4Lmf)#9UhfDqgt6V1p@2Ow3?;tv04=kQ8_VLoCaP z2Z^f%8FvBYC1&tEi~?x9Ux$rFT#r{0T+SjbYg}`7&AhR z0y(+@RD5%Zg9e3+pq7C~sbLPYgNT79#??V8p`$*25Mj_dQZ`svuz>>sVxE{5mpCX0 zzPIqG17s}BJZ(^-fcD#=&H>FFgVsGVGq`{%N>F)tfs`}-W19sVy3kk*>fo>y zF9DUJ;IVIz1z-lq1g2_`2CX)j8(=0P6o_lg1cec}zwnBIfk6e7k3hrsAag{x!0V5} z6(Toi?L8xmVA{ zti$wA>RvemQ#Hs?9bu+wP}qS6tU-K4n}&g@8e}p^0Vte73P5~>0wyLARbFsBaY7=E ztrirxOk)3pYeAlXgaK%|4k#=jlVNw5szEUX8t(>g*b8Lfi-)zB#2EZi7&t)fB?g9E z2H7r{cpro8Y6zQ&L5v|RhoKx4U205X;1E>Pf@RK0Od88UEl%dz7Eroisci*OthH?* zijSqX9Tej*#SGF0j0|!hgBTbXm`gzWVjw;fP`k&=1Rit(PmieG0l5{rCWV(5<_-o1 z0RhnR5C#UPU@s>|P@kCry#9`%%tX&X&)C4&&=O=gD|l_=6d48v$ z442=g$q8B+{fp6H=&G3}C%YU^SCiKx!5UfXEhhkne=VxwzOEgxEmrg$y7w-?D;4 zR)Ni##sgyS5(SAzfNi`3_C*H|NJO3+ME(Mcd;_z4c|q#0a)89U1wg*=kN~lNu!7i* zVE0c0lQm%Si2z7;2ZJ*&8-py^zpI2nDw%{p;*%vn;c3GLB1OR}okT$9hYNz#ya2m1 ziWwx52zJ|Ku$zAi+lsLG(hQ}k&%I66-$}8DFcYt$SA-tTeM8vl7R)x7hot8 zFB7+APzI%61_1^mUTH2%1}E@}dI5%7VQDT~h9CxAa5CJ*$iQI95Xs=cz|0`PFjW}D zi-PjZ_!t;`88R6H!E(ZU3=FmmSq#Bo-eDmSFPkBrfk{DtK~#`|VJbs0LkXC7Rsg~) zWng9$U;wQVV0`U|kEuKq9VSbDnU3*q`}9X<%E)k71SH-nl*h`*u#X2sW{DTFGBR*;f@CiUgG7XRy;vC;IKZTZ zs57e=!%rcQJH>_bSj8Azg+SzaFv$frQ=Yekm60KwwVaiaAs0;U76#d}h#zFK2Q!Fl zWv*dmWGDlZ?>Ir`Z{h~IIfe%$YXNr2LvE1myzC&dny-nKkzpNQ8!ID22Ui!XBEv0~ zK2}ABc1~wjMFv5!Nvw(tra~Zd&hUZkn!;SjYRp*ASjcL~@Q~4qHLxL;2^6YJn5MG^ zHuy2kU<_=q2a~!?GZ+OKUb4+*Wn^d(pU=w3aEp5}D9vd(QweS&R`xI)cek zMlV)HhNs|ghJ-(aoXrVxt*$u84PU_iiV_9sisl4~K>Q902Q~&TzSXQO3~YSsSy>oB zz7A`6%Lq!nKNvwi0;yMISiqLYs>pB_O#bBB%*x2HOB@tRSHWZwIHoRhfkJW%I3%?N z_pmZDRIrt^hBf4K&tOzz*vr?$Wa27OpP3pLMK@n8P-5}4A%tN7#JBWRKao#Glb5u zGBUhThw$DAvN13-oX~*q)(U}mUqF-Z42=wD_^+@sGgN@OQ4EtAvNEiI@@$!( zvT`z90rRFYOc8&}%FUpn4KigKLy!1(R(^&8C~t~56PpOb2`H~eoQq9@K>@VvilI%y zR799fmf^TANM9SrZGKrcMTQGd-gAB{Mnwh>J&4>)krRwc3;|HyIuS+&C59X*Pf<*f zO_^aPn0JgrgLw{vGQ%<`PmLGE+YIFuvV(XBAUuXw+-wZW3}+!cj^EsTjLHnRpuBJa z5brsZmm;u~QJLW@gvX%EyNXeTfdw?(%y5h$i)SgL8iNRw=ggeQsLt>Qv~`-{7()fS z5u+AEiV4^c3|D#B7<3spK+O(@BMjQ?_ZW2PLnA{wm=|LQQu&Ngn;j(g0?cdU@aA%1vu04R z2g$W@q;t8j*)W8Hd5s(s47^YtD8`%^B%nM{Y&tQ>KzQKzb7BaG@WAos#1IGNf#T1J zAr;C4#h(*H4ul7eKW7He1|tS&{JApJK;=O3=fY#F!5Q2dH_< z(8v(VAIav+a0bi+`7fQ#pMe21)WFclV89Z_7{ss<%xmN5W;nwb%&-T{Yh-u~=GC}^ z%xq-%%5a`Jm?0W;qys}EgDK+~#t?=&D9;_tTL9*@F{FWcHl84TZ49rOKq_;XFOk6q$^+%U6owcu59H2nwseLZIBybLCc_CZuaV&~CmTZ!gOeY~?`<4xJba8f z3_)NX#78*{@lYPfM>z~RP#(xfISiE$9@s}Y3~dk|*he`GvmrdNk8&7RL3tn_-?e3^qX^eUR8}U`Ph@K%peS(8!R3 z#A{+Gh4a`Lni*=ryk>@IhP7+n^x*2q#JWxDz zGZ;X5pcK;0U<>7eOzCEDf$+e7?_mgm@<1u1pCKB|gM`E+2GF`{P{{zQA0{&tg5@B# zPiCkB^B}fQVF0c4VqiGN0kVAxLjzO}Wcw6`UMLS_`xJ&L5FXg}sSLBBJdo`(7*>OM z5Zh-n><9CXfz#3)hBIIu$o8FVa~NboK;hEHk;cr&xQIa$%3I1jhhY(eF_d?d3&gX9 z@@fT6vn^t9h4N0YUSM0q5CGvZbnsqdTg0#y%3Hw2$GDi`0+`pxAS`s3Z7~B!7|6ax z21bTQY)cq~z&wy!*cg^FNWpo}*+8ojK<6ufyI4VH1M~nAgnU%kYQ|)Qe|iuxA0SU0=fk>K<7MgV_H#Kx}?~5c?-5 z$ktP!!%`Ru#1Y~UHbn0pagdtp;sOFJ4A(?JYB0su@CXR7qR9Sb1?ggEL)V2Yj;Rae zDrSZ|EFfJFH$z;DOoCj?#BcyK?7{#M|0D$R3rL(9>I+N}18$JZkBEZESWb}o$J`(n z@`Ls(Fl+(KmVq`5Fl4ZR)L@!`DFU$_Lf!#~v#=P*%udkK1qKUFkU1(sAQGYm? zt|7|Az{D^I97hnlK(WBgz$gJSAH;^lH6z1R&~L$oooUEYz$l3 z1OylvuCsz-aD^auU~`n#YAvAM6j6| z7K1h_GJsSvGQ0$*lXxLkhD-(yhD-)d22&A620;c>5jF-%22&9(22BQ25dj86Flh-U z9l@k0m<$Aykzg_rOd2wR^iE_Itz-c8 zPbwKeb&Dq0gi3JBppxMNhZUm^*hUkujVcU&64Mz}7;bTRGn#;HXJqUV4P&eX*F6Ur zO_*yL4>AU_*D_Xu{c;j)+C@fFkq*X6hC=o^43!L^K9mkvb|V9iL?7cu24U{WjGc@x zBxW$)1gn1tCUqF*NX%xe1lLuS44|5>5?q5U5dOjVlQD`-fT5GImggU1C*x#JHYO0s$8?af zPE45TBjXBj38s&Xhr}hAPBMIAk!3o_n8mKh#L3hyp~l3?WWuJyB*=7|--xLY?0!o| zQ;~a&icDLDZJ89Au8X-aX)=N0*O2Lm*c=8!rUPPg7%Z7Sh$S-xGJ;&|$W*{q#AM0D z##+bZ$i%`~#AL&uEPjF!6g~nBE)471X$=u2KoBIS~C!-p-9P>>ER(56P zn+&%kG?_D*B3TTX3z<~e%$W-rSlMluZ!(;d&}4qdV9e#l{E(rR#h3XZgBm9z!$Sra zPDX~041w$+%#4ioT&c{Aj4N5sFm^J5Qrboa7H|xn6y;;&WPB)6!_3JjEfK)L$(SwH z%si2)M)VBhONJbNP#j$rox=c1nf=V5bU2OqB|`uw8^cS6pF9hhUot%9S;PF0VILD4 z!$XGcOlKG$GQ>%M*nSdc7zM$(<{?9r$bM!)MmLEwj0>53$F99fwdTES!| zlOwAh12=;syB>ougBQCVgET`XyB>owLlL_kgEqrTc0C4ThCS?h4Au-M+4UHl8E&xa zF?cgPW!GZ}2Fpe>tYm-8kj!Aha+ncBK4t=u3s^zq0Wj&v1!6l0gGhM>6^1noLX6Uk z0gN$>nT&aiWsJ>?8yPP$K4!FF@?;8Tie<`Vn!vP&=>*dmrW;HTnEo+EGUqUNGH+$R z#{7}_EAt;_CKgc^(5MjuLkCv~cqE&Zfs28Sfro*EL70JyL4<*uL6U)=L7qW?L5V?- zL6t#>0W^ptE5ygnz#u9h%+A2DNkp8Tfk9PFnw^0`hgp-IfkBHGM3%CH$Xp&>b_RwF z0T7wT2hz0=Oj>Y)bUBNINQf?odWc?RUHuG(1Wo1w+X68MVgkf8WOE?m$RZH+5S0)Y zVv1xjgIvB6?5~qtARnz4G-GFAc*|HD82A}j85kJ^7+4vY z7z7#E85kLa7}yz@7=#%(8JNJ~$;2Saz{>!d>EmZ$Vvt}EWME>DWDsUxWRPMIW?*7a zVGw0tVo+reXJBH`XOLuIVlZHkW?*74VUT5DVlZWpXJBG5V^CyZVz25Y1r7z{n88V93D4ki=ljz{HTu zV9LP6kiuZjz{HTsV9CJ5kj`Muz{HTnV9UVBkj-Grz{F6=V9&tBP{ZKJz{pU?;LO0p z(7@oz0NPLH&cMXb#Nf%m$k5E-$-u7bv#L&gy%fQ6Y&EU_#$k4;!&%nemi6M}I ziD5EBFas0A6oya+CWfgD;S5X+(-MYA8X2}S*)m*a zILgq?)WF~fnI5zWD$VoE3&|)-O-u>M&(E<-ijOxki8o-du}hARcgZX+$Vsep&PgmT zHa5d1YGeTxwTuT*Am#bRsUR~97;HTAGE0I>ic%AEi(OKaiz*9BGV}8waxRG_i5|X= z&c2z&xrrso8S!NX4C$#Q@t$FZ44$rerMam^iAg!B35E=g$sk<`h76w0`8heMFkVn< zVv2uWP9=&UOlL`c5lDkiW^qY^A%lBrUTRTdNvda=AwzC_W*I`n(KXmRwbGCwIJLy7 zG$-3TwK60hERY+Ym|6^GdFGWE8!>pNR)!_!l%@tGW)>wFA(?0dHW48LG0}(t>R%Yw zH4p547#C)|5rcuVqmiqli<7C5rK7WvtC_K*lbfZJiKDBri<^b3tD%vho1uZJi8(lM zLPOjv7;Jp=Q%ZAE?HFtViZaVU-pVb=NzF~oD@g_#u8|N%fMalQxPOpK zysMwHzl*1zI|Imyct;<1{~*s04_}5LM?V)NF4$CrtgmB4yql+wYkZh%P_U=JA470u zaY<^fo~J*9ucN!CbG(PEql;@0%x&=@9zm{-F2M}WL6HF=2xEg8Lcqb{8HR|6ForTv z{KUsIc;=NQ=47V0R+OaX6=&w>fl?YnN@7VOgL7g|a%oOtNvd~hrAKaJGDB{B28e>X z0+Eu6^}tCcGnv6HzbH8sl+?f$Iw$6V+5QEo5JpgHL26qB(bOjq8!0-%}dTt$;?al%P$EoEhxwbs|ZUi0{J~OuNW?r8()-|m%`wjpPQSQ zmy(m2m+F~UP+H=anUm_5U*eWunwP?mn_7~QpTdxrT2fq+n3s}R1o8zqI0F)ki_7zi zQW(J2rNX%dFmb=slJfkbY_O-(5|dLIoQqOHi8BvmQgSLoYF-*BEE$SZOX6KCGE1EE zQ&PbkUl1c8F$LrYFxweaP~=0(4X^+-M*Rywxi~XF4=jk}kI=mAy!>*gaArY9Y7tmP zZanDhXJikD7AK~sg5$zBwHVCKh0@OXxdn+usjd~t8Hsu6sSK`pDV}*{`Pr!qPO0gc zc~CagO{K*pPT)l0n3R*sfGijeibb$!ZhUcOdR}4YGc5aOOLnZ*V9#bCYesU-nLsfoEDJA+E|N-}d(-7-^iQanJh3Gr2U zVrB`Hn+y(pBmvj5)VvZTJ}BN9GC?UIEi)&TA-}YwptJhGIzF6_O9(LLwuT0V!8` zBo=4DjS5OFErx{^gKue0NoI0lafwT6PHK8$Nh$+~Q344J=fpg4=rDk@Jt&D5Wagw6 zflHmllGGH(l9Hm#q*Ab^q|)?sPy#@R!Gb*`vm_@KAsmuel%87RR+N~V3d)HH37C3N zltT*!Oi52r{>%keA&EISRXOM9rDdj<7J=0v3;|`IOi-H1&kIV;Nvr@%7bE0hE(j>f zPbp0KL9*Vdm0&ig&6Am!12Q2uKB+XV7{tPrV!%d%RpiDeXO!k;gV~;WDXA6yX$-mX zsrhLPplSt_^E~rPoJ!Le3Q|+EeG-dHKwd0H5(g;@$%iTeCo4EFGcU6QDgky9sL7I7 zl2n?;04ZuAkqWDfAvIWLUOGc?Mq*KcqiZl&l^#MI-EIK72uWagwon|uf{KWZS_Okj5U5CQJhVpl2GzY# z!Qj*qWNvOexMD^~LRq=-IS^~X4VvQc%#sWS$KuMoWM^oMfa?%A2Nq8Z#o3t!ASZx= z!#N{0IUCf1ODqO^43w?&5_7<5g#j!Aj#daiq$n}3I4!>@7n>MFNp5^{X%UQ>ms(K* zV}o)%IDnlK^FZm1!6maOH5rsJQWJB1GV`)w83(!j=%198np^^EhU73nD*KT9{NUWg zoE)@Vm6DUg;8&WH!+_QcV*ok9zbuELpeVHrMCZnXdk~-m0!cp%AiGmjf=iR2d{DXo z#~_ps4k>UA#*ma)oC*~U%}cE)NKGzDO>xaj@lS(_=Emn_=4C@UKBVg^ub!pd8O(%ks8#LS%36i|7E5QP~I z%Ebs#q|Aj7gj7ZdKGehTjtxQvW++0WD77S`D8C#b0F5J1j>^x=sdURPf>l8Ic?_Ud z2qaA-jl3X>!m6bFJWv$_%F5s#P-by{9z#lgP-z}GZXkgVE{mK&%@b%P&5#=pZT>I> z=cJ|DXyk}lVXIAs+R}1ZhKeNkC3wa%x6?4oI#zH4j83fjeJFZibX^ zDNdE1DXDoSnQ57+MM$y`A3@ZhD9J>qhDIdBmA;8Z*{MYg(6B;p34!}zkWL!18i*f2 z`w9wDi$LR1r3D_TIUsg!dQu1^CN^_Ioos#?_ z@JL))B1m2@8A5_7-~7Bx5El|e&_oEb58MTX##Vk2tdMZYOia(qFD}VUE(Y1^n+Y9z zEC%@+i3chyeG@AnNf44^ioqobhG1@dF1oth#0r=e_tX-{oE-GwiDH;@U@b#XcLLN0 z3r;O6%S=u!W^hRb^}I6k(m}O&F$1J_1C`~V-fl4{EkoN2;FdUpOJ;g%aS0^gAR@W( zX`qHBQr{lrUo@^`N=i{`aWO=Pdn%+^&j23&fo9BNyeY}CD7}~=5k!E(DPAb+RAM%LhAh}807C`v6zEddw% z#h^9~XqW<$kioGXkWpEjnVgsd^)`cRMP_jc+=rm<46I6LaL&(5PAq}--9QzUTYgb) zVhIDJZN-oeZeoEF4FjlSSHh5=mR6iv!Vp}LlUV{XxP-wI+^7snEiTO|0oBPM3Y0#< zqooY4d1aYJ`FWr=I3&nQi$HA$2H(WI(!?CFnc&O{kpyKgP&ox3sR3s=upFe#fZzu} z#_jTpAVRtE$xzLpJ{p9L(zODmCD51`Y|t1q#s=mWfs$@|zGq%>2?L}(1{stC4~Bqy zaRsHQGLVrEQ27iV7-8_uFG~eAfnaIKKM%}d|VIQIR)1wkY281QBh(gLr6Y^1|>r8)JkwZ1<~%%p?44)YH4t4a%oX! zNu?enXM=0@N>I*ltw>ESEy>JFhm966ID!i@&?rB2Ts1Q<9aOY|>N^Is`i}uLguswr z5bs)8ng|*a0I@yuQeiyT+=7xy(6mZJdniLOLn1>uLn?z6g91Y^Lk2@4LlHv(gCm10 zLokCgLlHwILjmYmIfhh*8io{xXoh@-Sn%|cE`td}EQ11r4MPD#B117lF+({+K0^^h z3WFVk0z))|4MQ435ko#hE<*rAB0~v723)*^Asvz2%#g{D#!v}X1L7BfP0wV=XUGHlA(bJIAsNZtAU7#6q=0q8 ze51#}*zn$wp#W@P9zzO)0z)E09@zSPBnv@~201DptPa^C1%@=J6G3t%44DkM44L2^ zI++Z~3GU5EAw#44MoI3=lTHV1cM8 zW=I968JJ2`lk*wUz-DDI6oI{$!T|DeDFa9s$kVW(MZ_Y+m7u_MVMt|2V@PBuWyk^B z019+;e}HU-nT&`EkdF)*G#T_57#b#ef}K#wkk3#GPDr`n_$z@r3ltmZi5C>2pkM)c z5SE~I!0}hY01D+i27PesrGU)@nFPv6Ad?Ut19=0qiz}5Og#n~Dl|hdook5Smih&^! zbaD^=?5DtB$Y8`^%wPh}bf6RnN=+a$vKR^&(is%M84Q*N^cWzbdJKu+)WeYP$dJU4 z2TrxQ;54JakjhZOkO>Y(M9KsOTnR%dLlHPXKyn2rL4dMy5jdfMQX?o0Co&{41T3Y2 zyi~+c%m67xAl`umWHEy#17j-4bw*Ivfi~@d%mGCwDA+-C0YfP`AVJX!3c^H&T&P=- zWnpH5@>)JvJ;(*643Hv-F&1QtA=DN}hCFB~2TIQ%zbYV=YxxZ644?w309?3$iX2Ee z=gHvD0EyUShE#CL4f7MDs4GJexI``jmy^{D1`M?f49T8og$SrX1K9=&QHWkpQq5%m zC1X&s29*z>yp+nIiM6EFU`S!mL@8|@P1vjL`Ok&7k$Y)4q z$Yv-8l`5eOc?_Uj0g(ii6riM;39ep22}6Ma66gvHNeqM3 z04IA$A_8UDB!*IO8ORVF&H(a1sMbQQ!a*4*9b8^QG6JZ$M|KG)T0s5-`5Y8}E0jhyO;akLz4K8aLOoPCsJ1E0~3NcU&f=o?i$N{$qAR!OS zB%t^LmE#PSpp**9GN57u7WW{XkhBXj3sE3~nud^+%aDrh2T)o8>CZzdK0)DA!jK4# zGf<@tY9N9ND^QLA`9OogfT4oHfWZLVsDQZ+6b7Kwm%_l{if#+Y1W=J%4$j~pUxM5X zDiA?*5jgXMTmh1S+0LNr25k>1fa|S1hIDW<6jU*QQY|R%5i!T$9tI9kP`U=?F_`C8%Ye2u`Dj zS_70mKsf>AMowK&6Ww1A{pz*MQOmsO<)d2T=HxGNdu2 zK~pxUj>!i%jUY`bP+vrkfg#oxT!z3pf`~W=xdjv|pxzOv;scd3AiF?y7HXLfDvu$x z2qaJDfm1VxWQYX03X#vSHN!x87+oJ>S1>d*!V)1UC<+-$88X2Y6ewar&Q1n*!eB{6 zgCUe5gu#tLm%)(1jKPP&6Vc>&W~c-=^ivsf85r3i z{bUASlK1nM&Q zGWas+GNdr1Ffd}M4`J|R@MUmiU=Yk;$Y9WA0Ci||!M$=u=2Qj-<`f17=6nVQReW8H zGHCOJfge;Ur-2J}P?f;Pwe>i3jQeg3=o(EkV*W zdM-!g0Z=`G$m5_=29hH{bt7-YMV2->PrR7 zpjI)q48{z445kcv3%@_B ziGzb(RH$JoqmT!y0u!T*1jtHZ24*%PTMh*VkO{&JY#>U=gGGTsn1NY=fr(pznNi4A zsG(P|VWJp2uPm!9D;Ea`h~nS_k+Q5Hllk~$I0YD)IArA*LKs1X2BL_1J10xg2B|^5$3JiQ8)qEh;jjXH+3_^{Z zV3L=Gok@m?je&_#Mt}*VM23@{or8meLxzb1%Hoh=Vr6G$l3`+HVB`?s00nD^P>4_n zHv^MUqap$bp2M0SlE66z z%fi4Y!^fh)Ae0Mobs-xl?=;#%C`T3s2BAuBc2=Q=Mo<#vU}a-q6l!SX<7a1=W#y7( z6^xV>YG~!)U}InaF<3#t>IqIb9Bd5Ce0(x8Tnx;h1Pe;9TngZ*1p7*X8EhU0Cp)uH zL#L3hEGwr1lTbr1NEDQpWLeoj2@jOcn7|4+Am(sza56A~3>0jPWM*gNVq<3k1rFFs zE>?DC4i1nfxdgb_7#Km}!^zGflq$>0A!N(Oz{DlM#l>-^TKNB2-MfL{{QxYWlbaZs zSU_iefew9T;DZ!7u%bu+!Zl!B#Z!AeT%mpws$T7#tWF8rBW13XYM1 ziH(DqO^}0`O_r63jg^^ANQaqC$b*?p$dQ>%NP!1j4nj*0CN?G}HZCSM85TC7hPkY4 z@(l}_nAwCJnAwC}nAwCvnArp)SlDERY?;|)`Iy;+a+%qL3Ypo2N}1V&Dw)}YRG8U> zL_j4gxDaJ#6G{acw2_&Cff1A#ZNa4o6Pp4PBcCiQCj$!yxFq0UXJC?L6|&{vWME z;9vu(O8=th@b)+BiJj@ z8ik1o6auNB%+#=w4P^RCCKd%oE)c;e!>zyqRt>TnWRHwc0FMHTP{Upsp#Y(VgEF9; zE7Y);MT0@emRW;=m05#Rt*NBhLs$Q3>=`j z9R@kj;bkFAV&O%J1%CN?@YNEag>vP^j2w*M^UD|*%orIY_555zf}zXYb)d6Jwq-_o z28;|Ld?N65w4nL*oJ7bPXCX!gUeu{O1|CKR_Mp_9)WqUc1_nMx22LOM03QV-149c2 zu$-Zuv7WIW=xT9B239Z!>`;c&Q86zW7<~hn7#J8p=gr$JXJD`aU4{aY29uz?4Q4=z zpkS9^Z(+yHY)k(+wpL!*#j)%8Bv3J+4_c{Ite>5lmzP?Sp&y!3mYJQCTBKhLTELl@ zTC7`Ikdj!Esvn$RT9llspP!Va4|TGB9%8A#k)DA*is$qSQj!>MfDRyp+W!f}2A|ag z6+oh%faKu(c<1~g*NRl|Vx`>T7A?3z6Xhn;*lBx zpi}u6K=(H^NPzALWnchZVS*GGpzO@RV1Y#(qzFwh186TDC_iN2P~XAKz%bze1H%tc zrUMzk0AhmIxFLoqObs!p&B)L1YDI#!91Aq+gd3>%jNjSPT#b|3{RU|k{LNe$3gVh+-@ zE=Zn%VFOD9_}mCcbqwjxVVYzDRs$MagkTefB=8xDHVk|Wj0~VoR4#ZP6*Rfx#{e2h zNd+5^yJO72-~!eQvkNo@Sqz?v0diyFc^Z;7lRMjZhxpcP)LJDlVENK&2i*1fI^KJH$cK2(!EV# zC}jZ6DIk2ofM>}81A_qrXvZ?DUi6Sdgd51epfGj>4|{-yXF%Os&_V&+dO%%f28J1j z85mxHk}xPD7#JAd@7`}?Uy+-m0A2BEt7NEWprnurUEFW06dK~DYoVk7+Rl}d2-;C& zt5lg2Ni9pwQOE(2wn~Y`kX>d)N(!Z!j>({%f3`|#i8;lo zP)~sk(Z}K%s8en9QQU5$4-W)8UM?GbSPX&Bz=KBmKu`-H=Pa{;&jlO^2aMV|kRbp7 Dy9!E* literal 0 HcmV?d00001 diff --git a/thirdparty/TlsTest/TlsTest.csproj b/thirdparty/TlsTest/TlsTest.csproj index 7ef228c3b..ef7d37c0a 100644 --- a/thirdparty/TlsTest/TlsTest.csproj +++ b/thirdparty/TlsTest/TlsTest.csproj @@ -1,14 +1,15 @@ - - + + Debug AnyCPU {95B35AA3-7F86-43F1-9794-0CA115CFDF32} Exe - False + False TlsTest TlsTest - v4.5 + v4.6.2 + true @@ -29,5 +30,8 @@ + + + \ No newline at end of file diff --git a/thirdparty/TlsTest/app.config b/thirdparty/TlsTest/app.config new file mode 100644 index 000000000..2a0024f75 --- /dev/null +++ b/thirdparty/TlsTest/app.config @@ -0,0 +1,3 @@ + + + diff --git a/thirdparty/UnixSupport/UnixSupport.csproj b/thirdparty/UnixSupport/UnixSupport.csproj index 5400fb0a8..ab33ee6dc 100644 --- a/thirdparty/UnixSupport/UnixSupport.csproj +++ b/thirdparty/UnixSupport/UnixSupport.csproj @@ -1,5 +1,5 @@ - - + + Debug AnyCPU @@ -9,10 +9,11 @@ Library UnixSupport UnixSupport - v4.5 + v4.6.2 Duplicati.snk 1.0 false + true @@ -39,4 +40,8 @@ + + + + \ No newline at end of file diff --git a/thirdparty/mozroots/app.config b/thirdparty/mozroots/app.config new file mode 100644 index 000000000..2a0024f75 --- /dev/null +++ b/thirdparty/mozroots/app.config @@ -0,0 +1,3 @@ + + + diff --git a/thirdparty/mozroots/mozroots.csproj b/thirdparty/mozroots/mozroots.csproj index a681b630e..887b5ad4e 100644 --- a/thirdparty/mozroots/mozroots.csproj +++ b/thirdparty/mozroots/mozroots.csproj @@ -1,14 +1,15 @@ - - + + Debug AnyCPU {C44F0C79-B4E2-4D41-B357-1FD7B8888E78} Exe - False + False mozroots mozroots - v4.5 + v4.6.2 + true @@ -29,5 +30,8 @@ + + + \ No newline at end of file