From 668afbe8170b194b2b67c17425694160ce5e663b Mon Sep 17 00:00:00 2001 From: Geoffroy Bonneville Date: Fri, 22 Sep 2017 18:48:09 +0200 Subject: [PATCH] WIP KeePassLibPCL - problem with awaitables --- ModernKeePass.sln | 34 +- ModernKeePass/Common/DatabaseHelper.cs | 8 +- ModernKeePass/ModernKeePass.csproj | 40 +- ModernKeePass/ViewModels/EntryVm.cs | 2 +- ModernKeePass/ViewModels/GroupVm.cs | 2 +- ModernKeePass/packages.config | 10 +- ModernKeePassLib/.gitignore | 36 - .../Collections/AutoTypeConfig.cs | 4 +- .../Collections/ProtectedBinaryDictionary.cs | 8 +- .../Collections/ProtectedStringDictionary.cs | 8 +- ModernKeePassLib/Collections/PwObjectList.cs | 4 +- ModernKeePassLib/Collections/PwObjectPool.cs | 6 +- .../Collections/StringDictionaryEx.cs | 4 +- .../Cryptography/Cipher/CipherPool.cs | 2 +- .../Cryptography/Cipher/ICipherEngine.cs | 2 +- .../Cryptography/Cipher/Salsa20Cipher.cs | 4 +- .../Cryptography/Cipher/StandardAesEngine.cs | 58 +- ModernKeePassLib/Cryptography/CryptoRandom.cs | 49 +- .../Cryptography/CryptoRandomStream.cs | 16 +- .../Cryptography/HashingStreamEx.cs | 44 +- ModernKeePassLib/Cryptography/HmacOtp.cs | 20 +- .../CharSetBasedGenerator.cs | 6 +- .../PasswordGenerator/CustomPwGenerator.cs | 6 +- .../CustomPwGeneratorPool.cs | 2 +- .../PatternBasedGenerator.cs | 6 +- .../PasswordGenerator/PwCharSet.cs | 2 +- .../PasswordGenerator/PwGenerator.cs | 4 +- .../PasswordGenerator/PwProfile.cs | 8 +- .../Cryptography/PopularPasswords.cs | 4 +- .../Cryptography/QualityEstimation.cs | 6 +- ModernKeePassLib/Cryptography/SelfTest.cs | 27 +- ModernKeePassLib/DebugAssert.cs | 30 - ModernKeePassLib/Delegates/Handlers.cs | 2 +- ModernKeePassLib/Interfaces/IDeepCloneable.cs | 2 +- ModernKeePassLib/Interfaces/IStatusLogger.cs | 2 +- ModernKeePassLib/Interfaces/IStructureItem.cs | 2 +- ModernKeePassLib/Interfaces/ITimeLogger.cs | 2 +- ModernKeePassLib/Interfaces/IUIOperations.cs | 2 +- .../Interfaces/IXmlSerializerEx.cs | 2 +- ModernKeePassLib/KeePassLib.nuget.targets | 9 - .../{ModernKeePassLib.pfx => KeePassLib.pfx} | Bin ModernKeePassLib/Keys/CompositeKey.cs | 506 +-- ModernKeePassLib/Keys/IUserKey.cs | 4 +- ModernKeePassLib/Keys/KcpCustomKey.cs | 20 +- ModernKeePassLib/Keys/KcpKeyFile.cs | 48 +- ModernKeePassLib/Keys/KcpPassword.cs | 20 +- ModernKeePassLib/Keys/KcpUserAccount.cs | 69 +- ModernKeePassLib/Keys/KeyProvider.cs | 4 +- ModernKeePassLib/Keys/KeyProviderPool.cs | 2 +- ModernKeePassLib/Keys/KeyValidator.cs | 2 +- ModernKeePassLib/Keys/KeyValidatorPool.cs | 4 +- ModernKeePassLib/Keys/UserKeyType.cs | 2 +- ModernKeePassLib/ModernKeePassLib.csproj | 207 -- .../ModernKeePassLib.csproj.DotSettings | 2 - ModernKeePassLib/ModernKeePassLib.csproj.user | 6 - .../ModernKeePassLib.nuget.targets | 9 - ModernKeePassLib/ModernKeePassLibPCL.csproj | 190 ++ ...sLib.nuspec => ModernKeePassLibPCL.nuspec} | 18 +- ModernKeePassLib/Native/Native.PCL.cs | 2 +- ModernKeePassLib/Native/NativeLib.cs | 4 +- ModernKeePassLib/Native/NativeMethods.Unix.cs | 2 +- ModernKeePassLib/Native/NativeMethods.cs | 4 +- ModernKeePassLib/Properties/AssemblyInfo.cs | 21 +- .../Properties/AssemblyInfo.cs.bak | 42 - ModernKeePassLib/PwCustomIcon.cs | 14 +- ModernKeePassLib/PwDatabase.cs | 40 +- ModernKeePassLib/PwDefs.cs | 10 +- ModernKeePassLib/PwDeletedObject.cs | 4 +- ModernKeePassLib/PwEntry.cs | 19 +- ModernKeePassLib/PwEnums.cs | 2 +- ModernKeePassLib/PwGroup.cs | 16 +- ModernKeePassLib/PwUuid.cs | 4 +- ModernKeePassLib/Resources/KLRes.Generated.cs | 2 +- ModernKeePassLib/Resources/KSRes.Generated.cs | 2 +- ModernKeePassLib/Security/ProtectedBinary.cs | 23 +- ModernKeePassLib/Security/ProtectedString.cs | 6 +- ModernKeePassLib/Security/XorredBuffer.cs | 2 +- .../Serialization/BinaryReaderEx.cs | 4 +- ModernKeePassLib/Serialization/FileLock.cs | 14 +- .../Serialization/FileTransactionEx.cs | 17 +- .../Serialization/HashedBlockStream.cs | 35 +- .../Serialization/IOConnection.cs | 86 +- .../Serialization/IOConnectionInfo.cs | 37 +- .../Serialization/KdbxFile.Read.Streamed.cs | 37 +- .../Serialization/KdbxFile.Read.cs | 86 +- .../Serialization/KdbxFile.Write.cs | 44 +- ModernKeePassLib/Serialization/KdbxFile.cs | 30 +- .../Serialization/OldFormatException.cs | 6 +- .../Translation/KPControlCustomization.cs | 7 +- .../Translation/KPFormCustomization.cs | 2 +- ModernKeePassLib/Translation/KPStringTable.cs | 2 +- .../Translation/KPStringTableItem.cs | 2 +- ModernKeePassLib/Translation/KPTranslation.cs | 6 +- .../Translation/KPTranslationProperties.cs | 2 +- ModernKeePassLib/Utility/AppLogEx.cs | 2 +- ModernKeePassLib/Utility/ColorTranslator.cs | 2 +- ModernKeePassLib/Utility/GfxUtil.cs | 6 +- ModernKeePassLib/Utility/MemUtil.cs | 2 +- ModernKeePassLib/Utility/MessageService.cs | 6 +- ModernKeePassLib/Utility/MonoWorkarounds.cs | 4 +- ModernKeePassLib/Utility/StrUtil.cs | 59 +- ModernKeePassLib/Utility/StreamExtensions.cs | 17 + ModernKeePassLib/Utility/TimeUtil.cs | 4 +- ModernKeePassLib/Utility/UrlUtil.cs | 38 +- ModernKeePassLib/app.config | 11 + ModernKeePassLib/packages.config | 13 + ModernKeePassLib/project.json | 14 - ModernKeePassLib/project.lock.json | 2996 ----------------- 108 files changed, 1205 insertions(+), 4203 deletions(-) delete mode 100644 ModernKeePassLib/.gitignore delete mode 100644 ModernKeePassLib/DebugAssert.cs delete mode 100644 ModernKeePassLib/KeePassLib.nuget.targets rename ModernKeePassLib/{ModernKeePassLib.pfx => KeePassLib.pfx} (100%) delete mode 100644 ModernKeePassLib/ModernKeePassLib.csproj delete mode 100644 ModernKeePassLib/ModernKeePassLib.csproj.DotSettings delete mode 100644 ModernKeePassLib/ModernKeePassLib.csproj.user delete mode 100644 ModernKeePassLib/ModernKeePassLib.nuget.targets create mode 100644 ModernKeePassLib/ModernKeePassLibPCL.csproj rename ModernKeePassLib/{ModernKeePassLib.nuspec => ModernKeePassLibPCL.nuspec} (76%) delete mode 100644 ModernKeePassLib/Properties/AssemblyInfo.cs.bak create mode 100644 ModernKeePassLib/Utility/StreamExtensions.cs create mode 100644 ModernKeePassLib/app.config create mode 100644 ModernKeePassLib/packages.config delete mode 100644 ModernKeePassLib/project.json delete mode 100644 ModernKeePassLib/project.lock.json diff --git a/ModernKeePass.sln b/ModernKeePass.sln index 02ffe1d..4c7e596 100644 --- a/ModernKeePass.sln +++ b/ModernKeePass.sln @@ -5,7 +5,7 @@ VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePass", "ModernKeePass\ModernKeePass.csproj", "{A0CFC681-769B-405A-8482-0CDEE595A91F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLib", "ModernKeePassLib\ModernKeePassLib.csproj", "{A207789D-9020-401B-9D0A-D0D2CFF721BD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLibPCL", "ModernKeePassLib\ModernKeePassLibPCL.csproj", "{2E710089-9559-4967-846C-E763DD1F3ACB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -43,22 +43,22 @@ Global {A0CFC681-769B-405A-8482-0CDEE595A91F}.Release|x86.ActiveCfg = Release|x86 {A0CFC681-769B-405A-8482-0CDEE595A91F}.Release|x86.Build.0 = Release|x86 {A0CFC681-769B-405A-8482-0CDEE595A91F}.Release|x86.Deploy.0 = Release|x86 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|ARM.ActiveCfg = Debug|ARM - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|ARM.Build.0 = Debug|ARM - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|x64.ActiveCfg = Debug|x64 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|x64.Build.0 = Debug|x64 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|x86.ActiveCfg = Debug|x86 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Debug|x86.Build.0 = Debug|x86 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|Any CPU.Build.0 = Release|Any CPU - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|ARM.ActiveCfg = Release|ARM - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|ARM.Build.0 = Release|ARM - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|x64.ActiveCfg = Release|x64 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|x64.Build.0 = Release|x64 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|x86.ActiveCfg = Release|x86 - {A207789D-9020-401B-9D0A-D0D2CFF721BD}.Release|x86.Build.0 = Release|x86 + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|ARM.ActiveCfg = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|ARM.Build.0 = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|x64.ActiveCfg = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|x64.Build.0 = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|x86.ActiveCfg = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Debug|x86.Build.0 = Debug|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|Any CPU.Build.0 = Release|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|ARM.ActiveCfg = Release|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|ARM.Build.0 = Release|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|x64.ActiveCfg = Release|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|x64.Build.0 = Release|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|x86.ActiveCfg = Release|Any CPU + {2E710089-9559-4967-846C-E763DD1F3ACB}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ModernKeePass/Common/DatabaseHelper.cs b/ModernKeePass/Common/DatabaseHelper.cs index 4fc8acb..d0e2ed5 100644 --- a/ModernKeePass/Common/DatabaseHelper.cs +++ b/ModernKeePass/Common/DatabaseHelper.cs @@ -2,10 +2,10 @@ using Windows.Storage; using System.Threading.Tasks; using ModernKeePass.ViewModels; -using ModernKeePassLib; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Keys; -using ModernKeePassLib.Serialization; +using ModernKeePassLibPCL; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Keys; +using ModernKeePassLibPCL.Serialization; namespace ModernKeePass.Common { diff --git a/ModernKeePass/ModernKeePass.csproj b/ModernKeePass/ModernKeePass.csproj index f6bad39..f9d9388 100644 --- a/ModernKeePass/ModernKeePass.csproj +++ b/ModernKeePass/ModernKeePass.csproj @@ -159,14 +159,50 @@ - - ..\packages\ModernKeePassLib.2.36.0.27373\lib\netstandard1.2\ModernKeePassLib.dll + + ..\packages\ModernKeePassLibPCL.2.28.1.32947\lib\portable46-net451+win81+wpa81\ModernKeePassLibPCL.dll + True + + + ..\packages\PCLCrypto.2.0.147\lib\portable-win81+wpa81\PCLCrypto.dll + True + + + ..\packages\PCLStorage.1.0.2\lib\portable-win8+wpa81\PCLStorage.dll + True + + + ..\packages\PCLStorage.1.0.2\lib\portable-win8+wpa81\PCLStorage.Abstractions.dll + True + + + ..\packages\PInvoke.BCrypt.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.BCrypt.dll + True + + + ..\packages\PInvoke.Kernel32.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.Kernel32.dll + True + + + ..\packages\PInvoke.NCrypt.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.NCrypt.dll + True + + + ..\packages\PInvoke.Windows.Core.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.Windows.Core.dll + True + + + ..\packages\Splat.2.0.0\lib\Portable-Win81+Wpa81\Splat.dll True ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\win8\System.Runtime.InteropServices.RuntimeInformation.dll True + + ..\packages\Validation.2.4.15\lib\portable-net45+win8+wp8+wpa81\Validation.dll + True + diff --git a/ModernKeePass/ViewModels/EntryVm.cs b/ModernKeePass/ViewModels/EntryVm.cs index e675479..e1ed8d5 100644 --- a/ModernKeePass/ViewModels/EntryVm.cs +++ b/ModernKeePass/ViewModels/EntryVm.cs @@ -1,5 +1,5 @@ using System.ComponentModel; -using ModernKeePassLib; +using ModernKeePassLibPCL; namespace ModernKeePass.ViewModels { diff --git a/ModernKeePass/ViewModels/GroupVm.cs b/ModernKeePass/ViewModels/GroupVm.cs index a6ff95a..aba6fb3 100644 --- a/ModernKeePass/ViewModels/GroupVm.cs +++ b/ModernKeePass/ViewModels/GroupVm.cs @@ -1,7 +1,7 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; -using ModernKeePassLib; +using ModernKeePassLibPCL; namespace ModernKeePass.ViewModels { diff --git a/ModernKeePass/packages.config b/ModernKeePass/packages.config index 6f169b6..a7b2a68 100644 --- a/ModernKeePass/packages.config +++ b/ModernKeePass/packages.config @@ -4,11 +4,19 @@ - + + + + + + + + + \ No newline at end of file diff --git a/ModernKeePassLib/.gitignore b/ModernKeePassLib/.gitignore deleted file mode 100644 index 246f7e8..0000000 --- a/ModernKeePassLib/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################ -# This .gitignore file was automatically created by Microsoft(R) Visual Studio. -################################################################################ - -#ignore thumbnails created by windows -Thumbs.db -#Ignore files build by Visual Studio -*.obj -*.exe -*.pdb -*.user -*.aps -*.pch -*.vspscc -*_i.c -*_p.c -*.ncb -*.suo -*.tlb -*.tlh -*.bak -*.cache -*.ilk -*.log -[Bb]in -[Dd]ebug*/ -*.lib -*.sbr -obj/ -[Rr]elease*/ -_ReSharper*/ -[Tt]est[Rr]esult* -Translation/TrlUtil.vshost.exe.manifest -*.nupkg -.vs/ -/UpgradeLog.htm diff --git a/ModernKeePassLib/Collections/AutoTypeConfig.cs b/ModernKeePassLib/Collections/AutoTypeConfig.cs index c6b2396..8670811 100644 --- a/ModernKeePassLib/Collections/AutoTypeConfig.cs +++ b/ModernKeePassLib/Collections/AutoTypeConfig.cs @@ -21,9 +21,9 @@ using System; using System.Collections.Generic; using System.Diagnostics; -using ModernKeePassLib.Interfaces; +using ModernKeePassLibPCL.Interfaces; -namespace ModernKeePassLib.Collections +namespace ModernKeePassLibPCL.Collections { [Flags] public enum AutoTypeObfuscationOptions diff --git a/ModernKeePassLib/Collections/ProtectedBinaryDictionary.cs b/ModernKeePassLib/Collections/ProtectedBinaryDictionary.cs index 5dd132c..afd9457 100644 --- a/ModernKeePassLib/Collections/ProtectedBinaryDictionary.cs +++ b/ModernKeePassLib/Collections/ProtectedBinaryDictionary.cs @@ -23,15 +23,15 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; #if KeePassLibSD using KeePassLibSD; #endif -namespace ModernKeePassLib.Collections +namespace ModernKeePassLibPCL.Collections { /// /// A list of ProtectedBinary objects (dictionary). diff --git a/ModernKeePassLib/Collections/ProtectedStringDictionary.cs b/ModernKeePassLib/Collections/ProtectedStringDictionary.cs index 00c418b..2eea87c 100644 --- a/ModernKeePassLib/Collections/ProtectedStringDictionary.cs +++ b/ModernKeePassLib/Collections/ProtectedStringDictionary.cs @@ -23,15 +23,15 @@ using System.Collections.Generic; using System.Diagnostics; using System.Text; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; #if KeePassLibSD using KeePassLibSD; #endif -namespace ModernKeePassLib.Collections +namespace ModernKeePassLibPCL.Collections { /// /// A list of ProtectedString objects (dictionary). diff --git a/ModernKeePassLib/Collections/PwObjectList.cs b/ModernKeePassLib/Collections/PwObjectList.cs index 7820aa3..da3ebfd 100644 --- a/ModernKeePassLib/Collections/PwObjectList.cs +++ b/ModernKeePassLib/Collections/PwObjectList.cs @@ -22,9 +22,9 @@ using System.Collections; using System.Collections.Generic; using System.Diagnostics; -using ModernKeePassLib.Interfaces; +using ModernKeePassLibPCL.Interfaces; -namespace ModernKeePassLib.Collections +namespace ModernKeePassLibPCL.Collections { /// /// List of objects that implement IDeepCloneable, diff --git a/ModernKeePassLib/Collections/PwObjectPool.cs b/ModernKeePassLib/Collections/PwObjectPool.cs index 5bad39e..89de624 100644 --- a/ModernKeePassLib/Collections/PwObjectPool.cs +++ b/ModernKeePassLib/Collections/PwObjectPool.cs @@ -22,14 +22,14 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Delegates; -using ModernKeePassLib.Interfaces; +using ModernKeePassLibPCL.Delegates; +using ModernKeePassLibPCL.Interfaces; #if KeePassLibSD using KeePassLibSD; #endif -namespace ModernKeePassLib.Collections +namespace ModernKeePassLibPCL.Collections { public sealed class PwObjectPool { diff --git a/ModernKeePassLib/Collections/StringDictionaryEx.cs b/ModernKeePassLib/Collections/StringDictionaryEx.cs index b6f8232..585612f 100644 --- a/ModernKeePassLib/Collections/StringDictionaryEx.cs +++ b/ModernKeePassLib/Collections/StringDictionaryEx.cs @@ -23,13 +23,13 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Interfaces; +using ModernKeePassLibPCL.Interfaces; #if KeePassLibSD using KeePassLibSD; #endif -namespace ModernKeePassLib.Collections +namespace ModernKeePassLibPCL.Collections { public sealed class StringDictionaryEx : IDeepCloneable, IEnumerable> diff --git a/ModernKeePassLib/Cryptography/Cipher/CipherPool.cs b/ModernKeePassLib/Cryptography/Cipher/CipherPool.cs index 9b76314..8fcc533 100644 --- a/ModernKeePassLib/Cryptography/Cipher/CipherPool.cs +++ b/ModernKeePassLib/Cryptography/Cipher/CipherPool.cs @@ -24,7 +24,7 @@ using System.IO; using System.Diagnostics; using System.Security; -namespace ModernKeePassLib.Cryptography.Cipher +namespace ModernKeePassLibPCL.Cryptography.Cipher { /// /// Pool of encryption/decryption algorithms (ciphers). diff --git a/ModernKeePassLib/Cryptography/Cipher/ICipherEngine.cs b/ModernKeePassLib/Cryptography/Cipher/ICipherEngine.cs index d529c0b..a9f5736 100644 --- a/ModernKeePassLib/Cryptography/Cipher/ICipherEngine.cs +++ b/ModernKeePassLib/Cryptography/Cipher/ICipherEngine.cs @@ -20,7 +20,7 @@ using System; using System.IO; -namespace ModernKeePassLib.Cryptography.Cipher +namespace ModernKeePassLibPCL.Cryptography.Cipher { /// /// Interface of an encryption/decryption class. diff --git a/ModernKeePassLib/Cryptography/Cipher/Salsa20Cipher.cs b/ModernKeePassLib/Cryptography/Cipher/Salsa20Cipher.cs index c841189..a738614 100644 --- a/ModernKeePassLib/Cryptography/Cipher/Salsa20Cipher.cs +++ b/ModernKeePassLib/Cryptography/Cipher/Salsa20Cipher.cs @@ -22,9 +22,9 @@ using System; using System.Diagnostics; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Cryptography.Cipher +namespace ModernKeePassLibPCL.Cryptography.Cipher { public sealed class Salsa20Cipher : IDisposable { diff --git a/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs b/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs index 6fe6984..39fac3b 100644 --- a/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs +++ b/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs @@ -23,10 +23,9 @@ using System.Text; using System.IO; using System.Security; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -#if PCL -using Windows.Security.Cryptography; + +#if ModernKeePassLibPCL +using PCLCrypto; #else #if !KeePassRT @@ -42,16 +41,16 @@ using Org.BouncyCastle.Crypto.Parameters; #endif -using ModernKeePassLib.Resources; +using ModernKeePassLibPCL.Resources; -namespace ModernKeePassLib.Cryptography.Cipher +namespace ModernKeePassLibPCL.Cryptography.Cipher { /// /// Standard AES cipher implementation. /// public sealed class StandardAesEngine : ICipherEngine { -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT private const CipherMode m_rCipherMode = CipherMode.CBC; private const PaddingMode m_rCipherPadding = PaddingMode.PKCS7; #endif @@ -114,28 +113,31 @@ namespace ModernKeePassLib.Cryptography.Cipher } } - private static Stream CreateStream(Stream s, bool bEncrypt, byte[] pbKey, byte[] pbIV) - { - ValidateArguments(s, bEncrypt, pbKey, pbIV); -#if PCL - var provider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7); - var key = provider.CreateSymmetricKey(CryptographicBuffer.GenerateRandom(32)); - using (var ms = new MemoryStream()) - { - s.CopyTo(ms); - if (bEncrypt) - { - return CryptographicEngine.Encrypt(key, ms.GetWindowsRuntimeBuffer(), CryptographicBuffer.GenerateRandom(16)).AsStream(); - } - /*var encryptor = CryptographicEngine.CreateEncryptor( + private static Stream CreateStream(Stream s, bool bEncrypt, byte[] pbKey, byte[] pbIV) + { + StandardAesEngine.ValidateArguments(s, bEncrypt, pbKey, pbIV); + + byte[] pbLocalIV = new byte[16]; + Array.Copy(pbIV, pbLocalIV, 16); + + byte[] pbLocalKey = new byte[32]; + Array.Copy(pbKey, pbLocalKey, 32); + +#if ModernKeePassLibPCL + var provider = WinRTCrypto.SymmetricKeyAlgorithmProvider. + OpenAlgorithm(SymmetricAlgorithm.AesCbcPkcs7); + var key = provider.CreateSymmetricKey(pbLocalKey); + if (bEncrypt) + { + var encryptor = WinRTCrypto.CryptographicEngine.CreateEncryptor( key, pbLocalIV); - return new CryptoStream(s, encryptor, CryptoStreamMode.Write);*/ - - return CryptographicEngine.Decrypt(key, ms.GetWindowsRuntimeBuffer(), CryptographicBuffer.GenerateRandom(16)).AsStream(); - /*var decryptor = CryptographicEngine.CreateDecryptor( - key, pbLocalIV); - return new CryptoStream(s, decryptor, CryptoStreamMode.Read);*/ - } + return new CryptoStream(s, encryptor, CryptoStreamMode.Write); + } else + { + var decryptor = WinRTCrypto.CryptographicEngine.CreateDecryptor( + key, pbLocalIV); + return new CryptoStream(s, decryptor, CryptoStreamMode.Read); + } #else #if !KeePassRT diff --git a/ModernKeePassLib/Cryptography/CryptoRandom.cs b/ModernKeePassLib/Cryptography/CryptoRandom.cs index 7289280..12365f1 100644 --- a/ModernKeePassLib/Cryptography/CryptoRandom.cs +++ b/ModernKeePassLib/Cryptography/CryptoRandom.cs @@ -19,18 +19,18 @@ using System; using System.Security; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif using System.IO; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -using ModernKeePassLib.Utility; -namespace ModernKeePassLib.Cryptography +using ModernKeePassLibPCL.Native; +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL.Cryptography { /// /// Cryptographically strong random number generator. The returned values @@ -41,8 +41,8 @@ namespace ModernKeePassLib.Cryptography { private byte[] m_pbEntropyPool = new byte[64]; private uint m_uCounter; -#if PCL - //private IRandomNumberGenerator m_rng = NetFxCrypto.RandomNumberGenerator; +#if ModernKeePassLibPCL + private IRandomNumberGenerator m_rng = NetFxCrypto.RandomNumberGenerator; #else private RNGCryptoServiceProvider m_rng = new RNGCryptoServiceProvider(); #endif @@ -106,9 +106,9 @@ namespace ModernKeePassLib.Cryptography byte[] pbNewData = pbEntropy; if(pbEntropy.Length >= 64) { -#if PCL - var shaNew = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha512); - pbNewData = shaNew.HashData(pbEntropy.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var shaNew = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha512); + pbNewData = shaNew.HashData(pbEntropy); #else #if !KeePassLibSD @@ -128,9 +128,9 @@ namespace ModernKeePassLib.Cryptography ms.Write(pbNewData, 0, pbNewData.Length); byte[] pbFinal = ms.ToArray(); -#if PCL - var shaPool = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha512); - m_pbEntropyPool = shaPool.HashData(pbFinal.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var shaPool = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha512); + m_pbEntropyPool = shaPool.HashData(pbFinal); #else #if !KeePassLibSD @@ -157,7 +157,7 @@ namespace ModernKeePassLib.Cryptography pb = TimeUtil.PackTime(DateTime.Now); ms.Write(pb, 0, pb.Length); -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) // In try-catch for systems without GUI; // https://sourceforge.net/p/keepass/discussion/329221/thread/20335b73/ try @@ -174,7 +174,7 @@ namespace ModernKeePassLib.Cryptography pb = MemUtil.UInt32ToBytes((uint)rWeak.Next()); ms.Write(pb, 0, pb.Length); -#if PCL +#if ModernKeePassLibPCL pb = MemUtil.UInt32ToBytes((uint)Environment.ProcessorCount); ms.Write(pb, 0, pb.Length); @@ -185,7 +185,7 @@ namespace ModernKeePassLib.Cryptography ms.Write(pb, 0, pb.Length); #endif -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) Process p = null; try { @@ -249,10 +249,9 @@ namespace ModernKeePassLib.Cryptography private byte[] GetCspData() { - //byte[] pbCspRandom = new byte[32]; - var pbCspRandom = CryptographicBuffer.GenerateRandom(32); - //m_rng.GetBytes(pbCspRandom); - return pbCspRandom.ToArray(); + byte[] pbCspRandom = new byte[32]; + m_rng.GetBytes(pbCspRandom); + return pbCspRandom; } private byte[] GenerateRandom256() @@ -280,9 +279,9 @@ namespace ModernKeePassLib.Cryptography m_uGeneratedBytesCount += 32; } -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - return sha256.HashData(pbFinal.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + return sha256.HashData(pbFinal); #else SHA256Managed sha256 = new SHA256Managed(); return sha256.ComputeHash(pbFinal); @@ -310,7 +309,7 @@ namespace ModernKeePassLib.Cryptography long lCopy = (long)((uRequestedBytes < 32) ? uRequestedBytes : 32); -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) Array.Copy(pbRandom256, 0, pbRes, lPos, lCopy); #else Array.Copy(pbRandom256, 0, pbRes, (int)lPos, (int)lCopy); diff --git a/ModernKeePassLib/Cryptography/CryptoRandomStream.cs b/ModernKeePassLib/Cryptography/CryptoRandomStream.cs index fcc7c59..befc790 100644 --- a/ModernKeePassLib/Cryptography/CryptoRandomStream.cs +++ b/ModernKeePassLib/Cryptography/CryptoRandomStream.cs @@ -19,17 +19,15 @@ using System; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif -using ModernKeePassLib.Cryptography.Cipher; +using ModernKeePassLibPCL.Cryptography.Cipher; -namespace ModernKeePassLib.Cryptography +namespace ModernKeePassLibPCL.Cryptography { /// /// Algorithms supported by CryptoRandomStream. @@ -117,9 +115,9 @@ namespace ModernKeePassLib.Cryptography } else if(genAlgorithm == CrsAlgorithm.Salsa20) { -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var pbKey32 = sha256.HashData(pbKey.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var pbKey32 = sha256.HashData(pbKey); #else SHA256Managed sha256 = new SHA256Managed(); byte[] pbKey32 = sha256.ComputeHash(pbKey); diff --git a/ModernKeePassLib/Cryptography/HashingStreamEx.cs b/ModernKeePassLib/Cryptography/HashingStreamEx.cs index 2ea4fb2..2dd1f4f 100644 --- a/ModernKeePassLib/Cryptography/HashingStreamEx.cs +++ b/ModernKeePassLib/Cryptography/HashingStreamEx.cs @@ -21,25 +21,23 @@ using System; using System.Collections.Generic; using System.Text; using System.IO; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -using ModernKeePassLib.Utility; -using CryptographicHash = Windows.Security.Cryptography.Core.CryptographicHash; -namespace ModernKeePassLib.Cryptography +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL.Cryptography { public sealed class HashingStreamEx : Stream { private Stream m_sBaseStream; private bool m_bWriting; -#if PCL - private CryptographicHash m_hash; +#if ModernKeePassLibPCL + private ICryptoTransform m_hash; #else private HashAlgorithm m_hash; #endif @@ -77,8 +75,8 @@ namespace ModernKeePassLib.Cryptography set { throw new NotSupportedException(); } } -#if PCL - public HashingStreamEx(Stream sBaseStream, bool bWriting, string hashAlgorithm) +#if ModernKeePassLibPCL + public HashingStreamEx(Stream sBaseStream, bool bWriting, HashAlgorithm? hashAlgorithm) #else public HashingStreamEx(Stream sBaseStream, bool bWriting, HashAlgorithm hashAlgorithm) #endif @@ -88,8 +86,8 @@ namespace ModernKeePassLib.Cryptography m_sBaseStream = sBaseStream; m_bWriting = bWriting; -#if PCL - m_hash = HashAlgorithmProvider.OpenAlgorithm(hashAlgorithm ?? HashAlgorithmNames.Sha256).CreateHash(); +#if ModernKeePassLibPCL + m_hash = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(hashAlgorithm ?? HashAlgorithm.Sha256).CreateHash(); #elif !KeePassLibSD m_hash = (hashAlgorithm ?? new SHA256Managed()); #else // KeePassLibSD @@ -103,14 +101,14 @@ namespace ModernKeePassLib.Cryptography if(m_hash == null) { Debug.Assert(false); return; } // Validate hash algorithm - /*if((!m_hash.CanReuseTransform) || (!m_hash.CanTransformMultipleBlocks) || + if((!m_hash.CanReuseTransform) || (!m_hash.CanTransformMultipleBlocks) || (m_hash.InputBlockSize != 1) || (m_hash.OutputBlockSize != 1)) { #if false && DEBUG MessageService.ShowWarning("Broken HashAlgorithm object in HashingStreamEx."); #endif m_hash = null; - }*/ + } } public override void Flush() @@ -118,7 +116,7 @@ namespace ModernKeePassLib.Cryptography m_sBaseStream.Flush(); } -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT protected override void Dispose(bool disposing) { if(!disposing) return; @@ -130,9 +128,9 @@ namespace ModernKeePassLib.Cryptography { try { - //m_hash.TransformFinalBlock(new byte[0], 0, 0); -#if PCL - m_pbFinalHash = m_hash.GetValueAndReset().ToArray(); + m_hash.TransformFinalBlock(new byte[0], 0, 0); +#if ModernKeePassLibPCL + m_pbFinalHash = (m_hash as CryptographicHash).GetValueAndReset (); #else m_pbFinalHash = m_hash.Hash; #endif @@ -173,8 +171,8 @@ namespace ModernKeePassLib.Cryptography Array.Copy(pbBuffer, pbOrg, pbBuffer.Length); #endif - /*if((m_hash != null) && (nRead > 0)) - m_hash.TransformBlock(pbBuffer, nOffset, nRead, pbBuffer, nOffset);*/ + if((m_hash != null) && (nRead > 0)) + m_hash.TransformBlock(pbBuffer, nOffset, nRead, pbBuffer, nOffset); #if DEBUG Debug.Assert(MemUtil.ArraysEqual(pbBuffer, pbOrg)); @@ -192,8 +190,8 @@ namespace ModernKeePassLib.Cryptography Array.Copy(pbBuffer, pbOrg, pbBuffer.Length); #endif - /*if((m_hash != null) && (nCount > 0)) - m_hash.TransformBlock(pbBuffer, nOffset, nCount, pbBuffer, nOffset);*/ + if((m_hash != null) && (nCount > 0)) + m_hash.TransformBlock(pbBuffer, nOffset, nCount, pbBuffer, nOffset); #if DEBUG Debug.Assert(MemUtil.ArraysEqual(pbBuffer, pbOrg)); diff --git a/ModernKeePassLib/Cryptography/HmacOtp.cs b/ModernKeePassLib/Cryptography/HmacOtp.cs index 9b1d593..43e4b76 100644 --- a/ModernKeePassLib/Cryptography/HmacOtp.cs +++ b/ModernKeePassLib/Cryptography/HmacOtp.cs @@ -18,17 +18,19 @@ */ using System; -#if PCL -using Windows.Security.Cryptography.Core; +using System.Collections.Generic; +using System.Text; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif using System.Globalization; -using System.Runtime.InteropServices.WindowsRuntime; -using ModernKeePassLib.Utility; + +using ModernKeePassLibPCL.Utility; #if (!KeePassLibSD && !KeePassRT) -namespace ModernKeePassLib.Cryptography +namespace ModernKeePassLibPCL.Cryptography { /// /// Generate HMAC-based one-time passwords as specified in RFC 4226. @@ -44,10 +46,10 @@ namespace ModernKeePassLib.Cryptography byte[] pbText = MemUtil.UInt64ToBytes(uFactor); Array.Reverse(pbText); // Big-Endian -#if PCL - var hsha1 = MacAlgorithmProvider.OpenAlgorithm(MacAlgorithmNames.HmacSha1).CreateHash(pbSecret.AsBuffer()); - hsha1.Append(pbText.AsBuffer()); - var pbHash = hsha1.GetValueAndReset().ToArray(); +#if ModernKeePassLibPCL + var hsha1 = WinRTCrypto.MacAlgorithmProvider.OpenAlgorithm(MacAlgorithm.HmacSha1).CreateHash(pbSecret); + hsha1.Append(pbText); + var pbHash = hsha1.GetValueAndReset(); #else HMACSHA1 hsha1 = new HMACSHA1(pbSecret); byte[] pbHash = hsha1.ComputeHash(pbText); diff --git a/ModernKeePassLib/Cryptography/PasswordGenerator/CharSetBasedGenerator.cs b/ModernKeePassLib/Cryptography/PasswordGenerator/CharSetBasedGenerator.cs index 228d513..10772d7 100644 --- a/ModernKeePassLib/Cryptography/PasswordGenerator/CharSetBasedGenerator.cs +++ b/ModernKeePassLib/Cryptography/PasswordGenerator/CharSetBasedGenerator.cs @@ -22,10 +22,10 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Cryptography.PasswordGenerator +namespace ModernKeePassLibPCL.Cryptography.PasswordGenerator { internal static class CharSetBasedGenerator { diff --git a/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGenerator.cs b/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGenerator.cs index c1df173..fdd058f 100644 --- a/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGenerator.cs +++ b/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGenerator.cs @@ -21,10 +21,10 @@ using System; using System.Collections.Generic; using System.Text; -using ModernKeePassLib; -using ModernKeePassLib.Security; +using ModernKeePassLibPCL; +using ModernKeePassLibPCL.Security; -namespace ModernKeePassLib.Cryptography.PasswordGenerator +namespace ModernKeePassLibPCL.Cryptography.PasswordGenerator { public abstract class CustomPwGenerator { diff --git a/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGeneratorPool.cs b/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGeneratorPool.cs index d3a55f7..a377533 100644 --- a/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGeneratorPool.cs +++ b/ModernKeePassLib/Cryptography/PasswordGenerator/CustomPwGeneratorPool.cs @@ -22,7 +22,7 @@ using System.Collections; using System.Collections.Generic; using System.Text; -namespace ModernKeePassLib.Cryptography.PasswordGenerator +namespace ModernKeePassLibPCL.Cryptography.PasswordGenerator { public sealed class CustomPwGeneratorPool : IEnumerable { diff --git a/ModernKeePassLib/Cryptography/PasswordGenerator/PatternBasedGenerator.cs b/ModernKeePassLib/Cryptography/PasswordGenerator/PatternBasedGenerator.cs index 4ade1e8..324642d 100644 --- a/ModernKeePassLib/Cryptography/PasswordGenerator/PatternBasedGenerator.cs +++ b/ModernKeePassLib/Cryptography/PasswordGenerator/PatternBasedGenerator.cs @@ -22,10 +22,10 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Cryptography.PasswordGenerator +namespace ModernKeePassLibPCL.Cryptography.PasswordGenerator { internal static class PatternBasedGenerator { diff --git a/ModernKeePassLib/Cryptography/PasswordGenerator/PwCharSet.cs b/ModernKeePassLib/Cryptography/PasswordGenerator/PwCharSet.cs index b51e752..3545136 100644 --- a/ModernKeePassLib/Cryptography/PasswordGenerator/PwCharSet.cs +++ b/ModernKeePassLib/Cryptography/PasswordGenerator/PwCharSet.cs @@ -22,7 +22,7 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -namespace ModernKeePassLib.Cryptography.PasswordGenerator +namespace ModernKeePassLibPCL.Cryptography.PasswordGenerator { public sealed class PwCharSet { diff --git a/ModernKeePassLib/Cryptography/PasswordGenerator/PwGenerator.cs b/ModernKeePassLib/Cryptography/PasswordGenerator/PwGenerator.cs index 01c5ea5..5c19df5 100644 --- a/ModernKeePassLib/Cryptography/PasswordGenerator/PwGenerator.cs +++ b/ModernKeePassLib/Cryptography/PasswordGenerator/PwGenerator.cs @@ -22,9 +22,9 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Security; +using ModernKeePassLibPCL.Security; -namespace ModernKeePassLib.Cryptography.PasswordGenerator +namespace ModernKeePassLibPCL.Cryptography.PasswordGenerator { public enum PwgError { diff --git a/ModernKeePassLib/Cryptography/PasswordGenerator/PwProfile.cs b/ModernKeePassLib/Cryptography/PasswordGenerator/PwProfile.cs index 3ad5265..826d73b 100644 --- a/ModernKeePassLib/Cryptography/PasswordGenerator/PwProfile.cs +++ b/ModernKeePassLib/Cryptography/PasswordGenerator/PwProfile.cs @@ -24,11 +24,11 @@ using System.Xml.Serialization; using System.ComponentModel; using System.Diagnostics; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Cryptography.PasswordGenerator +namespace ModernKeePassLibPCL.Cryptography.PasswordGenerator { /// /// Type of the password generator. Different types like generators diff --git a/ModernKeePassLib/Cryptography/PopularPasswords.cs b/ModernKeePassLib/Cryptography/PopularPasswords.cs index e5a4521..29d0526 100644 --- a/ModernKeePassLib/Cryptography/PopularPasswords.cs +++ b/ModernKeePassLib/Cryptography/PopularPasswords.cs @@ -22,9 +22,9 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Cryptography +namespace ModernKeePassLibPCL.Cryptography { public static class PopularPasswords { diff --git a/ModernKeePassLib/Cryptography/QualityEstimation.cs b/ModernKeePassLib/Cryptography/QualityEstimation.cs index 1272d7c..a711b99 100644 --- a/ModernKeePassLib/Cryptography/QualityEstimation.cs +++ b/ModernKeePassLib/Cryptography/QualityEstimation.cs @@ -22,10 +22,10 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Cryptography.PasswordGenerator; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Cryptography.PasswordGenerator; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Cryptography +namespace ModernKeePassLibPCL.Cryptography { /// /// A class that offers static functions to estimate the quality of diff --git a/ModernKeePassLib/Cryptography/SelfTest.cs b/ModernKeePassLib/Cryptography/SelfTest.cs index a251206..16bbeb0 100644 --- a/ModernKeePassLib/Cryptography/SelfTest.cs +++ b/ModernKeePassLib/Cryptography/SelfTest.cs @@ -20,8 +20,8 @@ using System; using System.Collections.Generic; using System.Security; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif @@ -29,13 +29,14 @@ using System.Text; using System.Globalization; using System.Diagnostics; -using ModernKeePassLib.Cryptography.Cipher; -using ModernKeePassLib.Keys; -using ModernKeePassLib.Utility; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Security; +using ModernKeePassLibPCL.Cryptography.Cipher; +using ModernKeePassLibPCL.Keys; +using ModernKeePassLibPCL.Native; +using ModernKeePassLibPCL.Utility; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Security; -namespace ModernKeePassLib.Cryptography +namespace ModernKeePassLibPCL.Cryptography { /* /// /// Return values of the SelfTest.Perform method. @@ -63,7 +64,7 @@ namespace ModernKeePassLib.Cryptography TestRijndael(); TestSalsa20(); -#if !PCL +#if !ModernKeePassLibPCL TestNativeKeyTransform(); #endif @@ -81,7 +82,7 @@ namespace ModernKeePassLib.Cryptography internal static void TestFipsComplianceProblems() { -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT try { new RijndaelManaged(); } catch(Exception exAes) { @@ -98,7 +99,7 @@ namespace ModernKeePassLib.Cryptography private static void TestRijndael() { -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT // Test vector (official ECB test vector #356) byte[] pbIV = new byte[16]; byte[] pbTestKey = new byte[32]; @@ -210,7 +211,7 @@ namespace ModernKeePassLib.Cryptography } #endif -#if !PCL +#if !ModernKeePassLibPCL private static void TestNativeKeyTransform() { #if DEBUG @@ -519,7 +520,7 @@ namespace ModernKeePassLib.Cryptography if(UrlUtil.GetHost(@"s://u:p@d.tld:p/p?q#f") != "d.tld") throw new InvalidOperationException("UrlUtil-H7"); - //if(NativeLib.IsUnix()) return; + if(NativeLib.IsUnix()) return; string strBase = "\\\\HOMESERVER\\Apps\\KeePass\\KeePass.exe"; string strDoc = "\\\\HOMESERVER\\Documents\\KeePass\\NewDatabase.kdbx"; diff --git a/ModernKeePassLib/DebugAssert.cs b/ModernKeePassLib/DebugAssert.cs deleted file mode 100644 index caaf213..0000000 --- a/ModernKeePassLib/DebugAssert.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ModernKeePassLib -{ - public class Debug - { - [Conditional("DEBUG")] - public static void Assert(bool condition, string why) - { - if (!condition) - System.Diagnostics.Debugger.Break(); - - } - - [Conditional("DEBUG")] - public static void Assert(bool condition) - { - if (!condition) - System.Diagnostics.Debugger.Break(); - - } - - } - -} diff --git a/ModernKeePassLib/Delegates/Handlers.cs b/ModernKeePassLib/Delegates/Handlers.cs index 8a8b6f4..48b9360 100644 --- a/ModernKeePassLib/Delegates/Handlers.cs +++ b/ModernKeePassLib/Delegates/Handlers.cs @@ -19,7 +19,7 @@ using System; -namespace ModernKeePassLib.Delegates +namespace ModernKeePassLibPCL.Delegates { /// /// Function definition of a method that performs an action on a group. diff --git a/ModernKeePassLib/Interfaces/IDeepCloneable.cs b/ModernKeePassLib/Interfaces/IDeepCloneable.cs index 5a67a9c..7558646 100644 --- a/ModernKeePassLib/Interfaces/IDeepCloneable.cs +++ b/ModernKeePassLib/Interfaces/IDeepCloneable.cs @@ -20,7 +20,7 @@ using System; using System.Collections.Generic; -namespace ModernKeePassLib.Interfaces +namespace ModernKeePassLibPCL.Interfaces { /// /// Interface for objects that are deeply cloneable. diff --git a/ModernKeePassLib/Interfaces/IStatusLogger.cs b/ModernKeePassLib/Interfaces/IStatusLogger.cs index 8fab8ee..0c25fd3 100644 --- a/ModernKeePassLib/Interfaces/IStatusLogger.cs +++ b/ModernKeePassLib/Interfaces/IStatusLogger.cs @@ -20,7 +20,7 @@ using System; using System.Collections.Generic; -namespace ModernKeePassLib.Interfaces +namespace ModernKeePassLibPCL.Interfaces { /// /// Status message types. diff --git a/ModernKeePassLib/Interfaces/IStructureItem.cs b/ModernKeePassLib/Interfaces/IStructureItem.cs index a733064..28f9233 100644 --- a/ModernKeePassLib/Interfaces/IStructureItem.cs +++ b/ModernKeePassLib/Interfaces/IStructureItem.cs @@ -19,7 +19,7 @@ using System; -namespace ModernKeePassLib.Interfaces +namespace ModernKeePassLibPCL.Interfaces { public interface IStructureItem : ITimeLogger // Provides LocationChanged { diff --git a/ModernKeePassLib/Interfaces/ITimeLogger.cs b/ModernKeePassLib/Interfaces/ITimeLogger.cs index 4742699..664ff66 100644 --- a/ModernKeePassLib/Interfaces/ITimeLogger.cs +++ b/ModernKeePassLib/Interfaces/ITimeLogger.cs @@ -19,7 +19,7 @@ using System; -namespace ModernKeePassLib.Interfaces +namespace ModernKeePassLibPCL.Interfaces { /// /// Interface for objects that support various times (creation time, last diff --git a/ModernKeePassLib/Interfaces/IUIOperations.cs b/ModernKeePassLib/Interfaces/IUIOperations.cs index 2593676..cce4100 100644 --- a/ModernKeePassLib/Interfaces/IUIOperations.cs +++ b/ModernKeePassLib/Interfaces/IUIOperations.cs @@ -21,7 +21,7 @@ using System; using System.Collections.Generic; using System.Text; -namespace ModernKeePassLib.Interfaces +namespace ModernKeePassLibPCL.Interfaces { public interface IUIOperations { diff --git a/ModernKeePassLib/Interfaces/IXmlSerializerEx.cs b/ModernKeePassLib/Interfaces/IXmlSerializerEx.cs index 0be854f..18a3015 100644 --- a/ModernKeePassLib/Interfaces/IXmlSerializerEx.cs +++ b/ModernKeePassLib/Interfaces/IXmlSerializerEx.cs @@ -23,7 +23,7 @@ using System.Text; using System.IO; using System.Xml; -namespace ModernKeePassLib.Interfaces +namespace ModernKeePassLibPCL.Interfaces { public interface IXmlSerializerEx { diff --git a/ModernKeePassLib/KeePassLib.nuget.targets b/ModernKeePassLib/KeePassLib.nuget.targets deleted file mode 100644 index 8930d73..0000000 --- a/ModernKeePassLib/KeePassLib.nuget.targets +++ /dev/null @@ -1,9 +0,0 @@ - - - - $(UserProfile)\.nuget\packages\ - - - - - \ No newline at end of file diff --git a/ModernKeePassLib/ModernKeePassLib.pfx b/ModernKeePassLib/KeePassLib.pfx similarity index 100% rename from ModernKeePassLib/ModernKeePassLib.pfx rename to ModernKeePassLib/KeePassLib.pfx diff --git a/ModernKeePassLib/Keys/CompositeKey.cs b/ModernKeePassLib/Keys/CompositeKey.cs index 20b28f0..aea486d 100644 --- a/ModernKeePassLib/Keys/CompositeKey.cs +++ b/ModernKeePassLib/Keys/CompositeKey.cs @@ -22,103 +22,105 @@ using System.Text; using System.Collections.Generic; using System.Diagnostics; using System.IO; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -using Windows.Security.ExchangeActiveSyncProvisioning; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif -using ModernKeePassLib.Resources; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +#if KeePassRT +using Org.BouncyCastle.Crypto.Engines; +using Org.BouncyCastle.Crypto.Parameters; +#endif -namespace ModernKeePassLib.Keys +using ModernKeePassLibPCL.Native; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL.Keys { - /// - /// Represents a key. A key can be build up using several user key data sources - /// like a password, a key file, the currently logged on user credentials, - /// the current computer ID, etc. - /// - public sealed class CompositeKey - { - private List m_vUserKeys = new List(); + /// + /// Represents a key. A key can be build up using several user key data sources + /// like a password, a key file, the currently logged on user credentials, + /// the current computer ID, etc. + /// + public sealed class CompositeKey + { + private List m_vUserKeys = new List(); - /// - /// List of all user keys contained in the current composite key. - /// - public IEnumerable UserKeys - { - get { return m_vUserKeys; } - } + /// + /// List of all user keys contained in the current composite key. + /// + public IEnumerable UserKeys + { + get { return m_vUserKeys; } + } - public uint UserKeyCount - { - get { return (uint) m_vUserKeys.Count; } - } + public uint UserKeyCount + { + get { return (uint)m_vUserKeys.Count; } + } - /// - /// Construct a new, empty key object. - /// - public CompositeKey() - { - } + /// + /// Construct a new, empty key object. + /// + public CompositeKey() + { + } - // /// - // /// Deconstructor, clears up the key. - // /// - // ~CompositeKey() - // { - // Clear(); - // } + // /// + // /// Deconstructor, clears up the key. + // /// + // ~CompositeKey() + // { + // Clear(); + // } - // /// - // /// Clears the key. This function also erases all previously stored - // /// user key data objects. - // /// - // public void Clear() - // { - // foreach(IUserKey pKey in m_vUserKeys) - // pKey.Clear(); - // m_vUserKeys.Clear(); - // } + // /// + // /// Clears the key. This function also erases all previously stored + // /// user key data objects. + // /// + // public void Clear() + // { + // foreach(IUserKey pKey in m_vUserKeys) + // pKey.Clear(); + // m_vUserKeys.Clear(); + // } - /// - /// Add a user key. - /// - /// User key to add. - public void AddUserKey(IUserKey pKey) - { - Debug.Assert(pKey != null); - if (pKey == null) throw new ArgumentNullException("pKey"); + /// + /// Add a user key. + /// + /// User key to add. + public void AddUserKey(IUserKey pKey) + { + Debug.Assert(pKey != null); if(pKey == null) throw new ArgumentNullException("pKey"); - m_vUserKeys.Add(pKey); - } + m_vUserKeys.Add(pKey); + } - /// - /// Remove a user key. - /// - /// User key to remove. - /// Returns true if the key was removed successfully. - public bool RemoveUserKey(IUserKey pKey) - { - Debug.Assert(pKey != null); - if (pKey == null) throw new ArgumentNullException("pKey"); + /// + /// Remove a user key. + /// + /// User key to remove. + /// Returns true if the key was removed successfully. + public bool RemoveUserKey(IUserKey pKey) + { + Debug.Assert(pKey != null); if(pKey == null) throw new ArgumentNullException("pKey"); - Debug.Assert(m_vUserKeys.IndexOf(pKey) >= 0); - return m_vUserKeys.Remove(pKey); - } + Debug.Assert(m_vUserKeys.IndexOf(pKey) >= 0); + return m_vUserKeys.Remove(pKey); + } -#if !PCL && !KeePassRT /// -/// Test whether the composite key contains a specific type of -/// user keys (password, key file, ...). If at least one user -/// key of that type is present, the function returns true. -/// -/// User key type. -/// Returns true, if the composite key contains -/// a user key of the specified type. +#if !ModernKeePassLibPCL && !KeePassRT + /// + /// Test whether the composite key contains a specific type of + /// user keys (password, key file, ...). If at least one user + /// key of that type is present, the function returns true. + /// + /// User key type. + /// Returns true, if the composite key contains + /// a user key of the specified type. public bool ContainsType(Type tUserKeyType) { Debug.Assert(tUserKeyType != null); @@ -154,91 +156,85 @@ namespace ModernKeePassLib.Keys } #endif - /// - /// Creates the composite key from the supplied user key sources (password, - /// key file, user account, computer ID, etc.). - /// - private byte[] CreateRawCompositeKey32() - { - ValidateUserKeys(); + /// + /// Creates the composite key from the supplied user key sources (password, + /// key file, user account, computer ID, etc.). + /// + private byte[] CreateRawCompositeKey32() + { + ValidateUserKeys(); - // Concatenate user key data - MemoryStream ms = new MemoryStream(); - foreach (IUserKey pKey in m_vUserKeys) - { - ProtectedBinary b = pKey.KeyData; - if (b != null) - { - byte[] pbKeyData = b.ReadData(); - ms.Write(pbKeyData, 0, pbKeyData.Length); - MemUtil.ZeroByteArray(pbKeyData); - } - } + // Concatenate user key data + MemoryStream ms = new MemoryStream(); + foreach(IUserKey pKey in m_vUserKeys) + { + ProtectedBinary b = pKey.KeyData; + if(b != null) + { + byte[] pbKeyData = b.ReadData(); + ms.Write(pbKeyData, 0, pbKeyData.Length); + MemUtil.ZeroByteArray(pbKeyData); + } + } -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var pbHash = sha256.HashData(ms.ToArray().AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var pbHash = sha256.HashData(ms.ToArray()); #else SHA256Managed sha256 = new SHA256Managed(); byte[] pbHash = sha256.ComputeHash(ms.ToArray()); #endif - ms.Dispose(); - return pbHash; - } + ms.Dispose(); + return pbHash; + } - public bool EqualsValue(CompositeKey ckOther) - { - if (ckOther == null) throw new ArgumentNullException("ckOther"); + public bool EqualsValue(CompositeKey ckOther) + { + if(ckOther == null) throw new ArgumentNullException("ckOther"); - byte[] pbThis = CreateRawCompositeKey32(); - byte[] pbOther = ckOther.CreateRawCompositeKey32(); - bool bResult = MemUtil.ArraysEqual(pbThis, pbOther); - Array.Clear(pbOther, 0, pbOther.Length); - Array.Clear(pbThis, 0, pbThis.Length); + byte[] pbThis = CreateRawCompositeKey32(); + byte[] pbOther = ckOther.CreateRawCompositeKey32(); + bool bResult = MemUtil.ArraysEqual(pbThis, pbOther); + Array.Clear(pbOther, 0, pbOther.Length); + Array.Clear(pbThis, 0, pbThis.Length); - return bResult; - } + return bResult; + } - /// - /// Generate a 32-bit wide key out of the composite key. - /// - /// Seed used in the key transformation - /// rounds. Must be a byte array containing exactly 32 bytes; must - /// not be null. - /// Number of key transformation rounds. - /// Returns a protected binary object that contains the - /// resulting 32-bit wide key. - public ProtectedBinary GenerateKey32(byte[] pbKeySeed32, ulong uNumRounds) - { - Debug.Assert(pbKeySeed32 != null); - if (pbKeySeed32 == null) throw new ArgumentNullException("pbKeySeed32"); - Debug.Assert(pbKeySeed32.Length == 32); - if (pbKeySeed32.Length != 32) throw new ArgumentException("pbKeySeed32"); + /// + /// Generate a 32-bit wide key out of the composite key. + /// + /// Seed used in the key transformation + /// rounds. Must be a byte array containing exactly 32 bytes; must + /// not be null. + /// Number of key transformation rounds. + /// Returns a protected binary object that contains the + /// resulting 32-bit wide key. + public ProtectedBinary GenerateKey32(byte[] pbKeySeed32, ulong uNumRounds) + { + Debug.Assert(pbKeySeed32 != null); + if(pbKeySeed32 == null) throw new ArgumentNullException("pbKeySeed32"); + Debug.Assert(pbKeySeed32.Length == 32); + if(pbKeySeed32.Length != 32) throw new ArgumentException("pbKeySeed32"); - byte[] pbRaw32 = CreateRawCompositeKey32(); - if ((pbRaw32 == null) || (pbRaw32.Length != 32)) - { - Debug.Assert(false); - return null; - } + byte[] pbRaw32 = CreateRawCompositeKey32(); + if((pbRaw32 == null) || (pbRaw32.Length != 32)) + { Debug.Assert(false); return null; } - byte[] pbTrf32 = TransformKey(pbRaw32, pbKeySeed32, uNumRounds); - if ((pbTrf32 == null) || (pbTrf32.Length != 32)) - { - Debug.Assert(false); - return null; - } + byte[] pbTrf32 = TransformKey(pbRaw32, pbKeySeed32, uNumRounds); + if((pbTrf32 == null) || (pbTrf32.Length != 32)) + { Debug.Assert(false); return null; } - ProtectedBinary pbRet = new ProtectedBinary(true, pbTrf32); - MemUtil.ZeroByteArray(pbTrf32); - MemUtil.ZeroByteArray(pbRaw32); + ProtectedBinary pbRet = new ProtectedBinary(true, pbTrf32); + MemUtil.ZeroByteArray(pbTrf32); + MemUtil.ZeroByteArray(pbRaw32); - return pbRet; - } + return pbRet; + } - private void ValidateUserKeys() - { -#if !PCL + private void ValidateUserKeys() + { +#if !ModernKeePassLibPCL int nAccounts = 0; foreach(IUserKey uKey in m_vUserKeys) @@ -253,51 +249,52 @@ namespace ModernKeePassLib.Keys throw new InvalidOperationException(); } #endif - } + } - /// - /// Transform the current key uNumRounds times. - /// - /// The original key which will be transformed. - /// This parameter won't be modified. - /// Seed used for key transformations. Must not - /// be null. This parameter won't be modified. - /// Transformation count. - /// 256-bit transformed key. - private static byte[] TransformKey(byte[] pbOriginalKey32, byte[] pbKeySeed32, - ulong uNumRounds) - { - Debug.Assert((pbOriginalKey32 != null) && (pbOriginalKey32.Length == 32)); - if (pbOriginalKey32 == null) throw new ArgumentNullException("pbOriginalKey32"); - if (pbOriginalKey32.Length != 32) throw new ArgumentException(); + /// + /// Transform the current key uNumRounds times. + /// + /// The original key which will be transformed. + /// This parameter won't be modified. + /// Seed used for key transformations. Must not + /// be null. This parameter won't be modified. + /// Transformation count. + /// 256-bit transformed key. + private static byte[] TransformKey(byte[] pbOriginalKey32, byte[] pbKeySeed32, + ulong uNumRounds) + { + Debug.Assert((pbOriginalKey32 != null) && (pbOriginalKey32.Length == 32)); + if(pbOriginalKey32 == null) throw new ArgumentNullException("pbOriginalKey32"); + if(pbOriginalKey32.Length != 32) throw new ArgumentException(); - Debug.Assert((pbKeySeed32 != null) && (pbKeySeed32.Length == 32)); - if (pbKeySeed32 == null) throw new ArgumentNullException("pbKeySeed32"); - if (pbKeySeed32.Length != 32) throw new ArgumentException(); + Debug.Assert((pbKeySeed32 != null) && (pbKeySeed32.Length == 32)); + if(pbKeySeed32 == null) throw new ArgumentNullException("pbKeySeed32"); + if(pbKeySeed32.Length != 32) throw new ArgumentException(); - byte[] pbNewKey = new byte[32]; - Array.Copy(pbOriginalKey32, pbNewKey, pbNewKey.Length); + byte[] pbNewKey = new byte[32]; + Array.Copy(pbOriginalKey32, pbNewKey, pbNewKey.Length); -#if !PCL // Try to use the native library first +#if !ModernKeePassLibPCL + // Try to use the native library first if(NativeLib.TransformKey256(pbNewKey, pbKeySeed32, uNumRounds)) return (new SHA256Managed()).ComputeHash(pbNewKey); #endif - if (TransformKeyManaged(pbNewKey, pbKeySeed32, uNumRounds) == false) - return null; + if(TransformKeyManaged(pbNewKey, pbKeySeed32, uNumRounds) == false) + return null; -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - return sha256.HashData(pbNewKey.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + return sha256.HashData(pbNewKey); #else SHA256Managed sha256 = new SHA256Managed(); return sha256.ComputeHash(pbNewKey); #endif - } + } - public static bool TransformKeyManaged(byte[] pbNewKey32, byte[] pbKeySeed32, - ulong uNumRounds) - { + public static bool TransformKeyManaged(byte[] pbNewKey32, byte[] pbKeySeed32, + ulong uNumRounds) + { #if KeePassRT KeyParameter kp = new KeyParameter(pbKeySeed32); AesEngine aes = new AesEngine(); @@ -308,10 +305,11 @@ namespace ModernKeePassLib.Keys aes.ProcessBlock(pbNewKey32, 0, pbNewKey32, 0); aes.ProcessBlock(pbNewKey32, 16, pbNewKey32, 16); } -#elif PCL - var aes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesEcb); - var key = aes.CreateSymmetricKey(pbKeySeed32.AsBuffer()); - //var iCrypt = CryptographicEngine.CreateEncryptor(key); +#else +#if ModernKeePassLibPCL + var aes = WinRTCrypto.SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithm.AesEcb); + var key = aes.CreateSymmetricKey(pbKeySeed32); + var iCrypt = WinRTCrypto.CryptographicEngine.CreateEncryptor(key); #else byte[] pbIV = new byte[16]; Array.Clear(pbIV, 0, pbIV.Length); @@ -330,29 +328,125 @@ namespace ModernKeePassLib.Keys ICryptoTransform iCrypt = r.CreateEncryptor(); #endif - // !iCrypt.CanReuseTransform -- doesn't work with Mono - /*if ((iCrypt == null) || (iCrypt.InputBlockSize != 16) || - (iCrypt.OutputBlockSize != 16))*/ - if (aes.BlockLength != 16) - { - Debug.Assert(false, "Invalid ICryptoTransform."); - /*Debug.Assert((iCrypt.InputBlockSize == 16), "Invalid input block size!"); - Debug.Assert((iCrypt.OutputBlockSize == 16), "Invalid output block size!");*/ - Debug.Assert(aes.BlockLength == 16, "Invalid input block size!"); - return false; - } + // !iCrypt.CanReuseTransform -- doesn't work with Mono + if((iCrypt == null) || (iCrypt.InputBlockSize != 16) || + (iCrypt.OutputBlockSize != 16)) + { + Debug.Assert(false, "Invalid ICryptoTransform."); + Debug.Assert((iCrypt.InputBlockSize == 16), "Invalid input block size!"); + Debug.Assert((iCrypt.OutputBlockSize == 16), "Invalid output block size!"); + return false; + } - for (ulong i = 0; i < uNumRounds; ++i) - { - /*iCrypt.TransformBlock(pbNewKey32, 0, 16, pbNewKey32, 0); - iCrypt.TransformBlock(pbNewKey32, 16, 16, pbNewKey32, 16);*/ - } + for(ulong i = 0; i < uNumRounds; ++i) + { + iCrypt.TransformBlock(pbNewKey32, 0, 16, pbNewKey32, 0); + iCrypt.TransformBlock(pbNewKey32, 16, 16, pbNewKey32, 16); + } +#endif - return true; - } - } + return true; + } - public sealed class InvalidCompositeKeyException : Exception + /// + /// Benchmark the TransformKey method. Within + /// ms, random keys will be transformed + /// and the number of performed transformations are returned. + /// + /// Test duration in ms. + /// Stepping. + /// should be a prime number. For fast processors + /// (PCs) a value of 3001 is recommended, for slower processors (PocketPC) + /// a value of 401 is recommended. + /// Number of transformations performed in the specified + /// amount of time. Maximum value is uint.MaxValue. + public static ulong TransformKeyBenchmark(uint uMilliseconds, ulong uStep) + { + ulong uRounds; + +#if !ModernKeePassLibPCL + // Try native method + if(NativeLib.TransformKeyBenchmark256(uMilliseconds, out uRounds)) + return uRounds; +#endif + + byte[] pbKey = new byte[32]; + byte[] pbNewKey = new byte[32]; + for(int i = 0; i < pbKey.Length; ++i) + { + pbKey[i] = (byte)i; + pbNewKey[i] = (byte)i; + } + +#if KeePassRT + KeyParameter kp = new KeyParameter(pbKey); + AesEngine aes = new AesEngine(); + aes.Init(true, kp); +#else +#if ModernKeePassLibPCL + var aes = WinRTCrypto.SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithm.AesEcb); + var key = aes.CreateSymmetricKey(pbKey); + var iCrypt = WinRTCrypto.CryptographicEngine.CreateEncryptor(key); +#else + byte[] pbIV = new byte[16]; + Array.Clear(pbIV, 0, pbIV.Length); + + RijndaelManaged r = new RijndaelManaged(); + if(r.BlockSize != 128) // AES block size + { + Debug.Assert(false); + r.BlockSize = 128; + } + + r.IV = pbIV; + r.Mode = CipherMode.ECB; + r.KeySize = 256; + r.Key = pbKey; + ICryptoTransform iCrypt = r.CreateEncryptor(); +#endif + + // !iCrypt.CanReuseTransform -- doesn't work with Mono + if((iCrypt == null) || (iCrypt.InputBlockSize != 16) || + (iCrypt.OutputBlockSize != 16)) + { + Debug.Assert(false, "Invalid ICryptoTransform."); + Debug.Assert(iCrypt.InputBlockSize == 16, "Invalid input block size!"); + Debug.Assert(iCrypt.OutputBlockSize == 16, "Invalid output block size!"); + return PwDefs.DefaultKeyEncryptionRounds; + } +#endif + + uRounds = 0; + int tStart = Environment.TickCount; + while(true) + { + for(ulong j = 0; j < uStep; ++j) + { +#if KeePassRT + aes.ProcessBlock(pbNewKey, 0, pbNewKey, 0); + aes.ProcessBlock(pbNewKey, 16, pbNewKey, 16); +#else + iCrypt.TransformBlock(pbNewKey, 0, 16, pbNewKey, 0); + iCrypt.TransformBlock(pbNewKey, 16, 16, pbNewKey, 16); +#endif + } + + uRounds += uStep; + if(uRounds < uStep) // Overflow check + { + uRounds = ulong.MaxValue; + break; + } + + uint tElapsed = (uint)(Environment.TickCount - tStart); + if(tElapsed > uMilliseconds) break; + } + + return uRounds; + } + } + + public sealed class InvalidCompositeKeyException : Exception { public override string Message { diff --git a/ModernKeePassLib/Keys/IUserKey.cs b/ModernKeePassLib/Keys/IUserKey.cs index 1b733d9..c2ab9e4 100644 --- a/ModernKeePassLib/Keys/IUserKey.cs +++ b/ModernKeePassLib/Keys/IUserKey.cs @@ -19,9 +19,9 @@ using System; -using ModernKeePassLib.Security; +using ModernKeePassLibPCL.Security; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { /// /// Interface to a user key, like a password, key file data, etc. diff --git a/ModernKeePassLib/Keys/KcpCustomKey.cs b/ModernKeePassLib/Keys/KcpCustomKey.cs index e1a0e97..8d32711 100644 --- a/ModernKeePassLib/Keys/KcpCustomKey.cs +++ b/ModernKeePassLib/Keys/KcpCustomKey.cs @@ -21,18 +21,16 @@ using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { public sealed class KcpCustomKey : IUserKey { @@ -61,14 +59,14 @@ namespace ModernKeePassLib.Keys if(bPerformHash) { -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var pbRaw = sha256.HashData(pbKeyData.AsBuffer()); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var pbRaw = sha256.HashData(pbKeyData); #else SHA256Managed sha256 = new SHA256Managed(); byte[] pbRaw = sha256.ComputeHash(pbKeyData); #endif - m_pbKey = new ProtectedBinary(true, pbRaw.ToArray()); + m_pbKey = new ProtectedBinary(true, pbRaw); } else m_pbKey = new ProtectedBinary(true, pbKeyData); } diff --git a/ModernKeePassLib/Keys/KcpKeyFile.cs b/ModernKeePassLib/Keys/KcpKeyFile.cs index 189d042..ce78739 100644 --- a/ModernKeePassLib/Keys/KcpKeyFile.cs +++ b/ModernKeePassLib/Keys/KcpKeyFile.cs @@ -22,24 +22,23 @@ using System.Text; using System.IO; using System.Xml; using System.Security; -#if PCL +#if ModernKeePassLibPCL using System.Collections.Generic; using System.Linq; using System.Xml.Linq; -using Windows.Security.Cryptography; +using PCLCrypto; #else using System.Security.Cryptography; #endif using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Security; -using ModernKeePassLib.Serialization; -using ModernKeePassLib.Utility; -namespace ModernKeePassLib.Keys +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Serialization; +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL.Keys { /// /// Key files as provided by the user. @@ -139,9 +138,9 @@ namespace ModernKeePassLib.Keys if(pbKey == null) { -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - pbKey = sha256.HashData(pbFileData.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + pbKey = sha256.HashData(pbFileData); #else SHA256Managed sha256 = new SHA256Managed(); pbKey = sha256.ComputeHash(pbFileData); @@ -199,19 +198,18 @@ namespace ModernKeePassLib.Keys pbFinalKey32 = pbKey32; else { - using (MemoryStream ms = new MemoryStream()) - { - ms.Write(pbAdditionalEntropy, 0, pbAdditionalEntropy.Length); - ms.Write(pbKey32, 0, 32); + MemoryStream ms = new MemoryStream(); + ms.Write(pbAdditionalEntropy, 0, pbAdditionalEntropy.Length); + ms.Write(pbKey32, 0, 32); -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - pbFinalKey32 = sha256.HashData(ms.GetWindowsRuntimeBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + pbFinalKey32 = sha256.HashData(ms.ToArray()); #else - SHA256Managed sha256 = new SHA256Managed(); - pbFinalKey32 = sha256.ComputeHash(ms.ToArray()); + SHA256Managed sha256 = new SHA256Managed(); + pbFinalKey32 = sha256.ComputeHash(ms.ToArray()); #endif - } + ms.Dispose(); } CreateXmlKeyFile(strFilePath, pbFinalKey32); @@ -247,7 +245,7 @@ namespace ModernKeePassLib.Keys try { -#if PCL +#if ModernKeePassLibPCL var doc = XDocument.Load(ms); @@ -315,7 +313,7 @@ namespace ModernKeePassLib.Keys IOConnectionInfo ioc = IOConnectionInfo.FromPath(strFile); Stream sOut = IOConnection.OpenWrite(ioc); -#if PCL +#if ModernKeePassLibPCL var settings = new XmlWriterSettings() { Encoding = StrUtil.Utf8 }; var xtw = XmlWriter.Create(sOut, settings); #else diff --git a/ModernKeePassLib/Keys/KcpPassword.cs b/ModernKeePassLib/Keys/KcpPassword.cs index e29fce9..026dd43 100644 --- a/ModernKeePassLib/Keys/KcpPassword.cs +++ b/ModernKeePassLib/Keys/KcpPassword.cs @@ -20,18 +20,16 @@ using System; using System.Text; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { /// /// Master password / passphrase as provided by the user. @@ -74,16 +72,16 @@ namespace ModernKeePassLib.Keys Debug.Assert(pbPasswordUtf8 != null); if(pbPasswordUtf8 == null) throw new ArgumentNullException("pbPasswordUtf8"); -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var pbRaw = sha256.HashData(pbPasswordUtf8.AsBuffer()); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var pbRaw = sha256.HashData(pbPasswordUtf8); #else SHA256Managed sha256 = new SHA256Managed(); byte[] pbRaw = sha256.ComputeHash(pbPasswordUtf8); #endif m_psPassword = new ProtectedString(true, pbPasswordUtf8); - m_pbKeyData = new ProtectedBinary(true, pbRaw.ToArray()); + m_pbKeyData = new ProtectedBinary(true, pbRaw); } // public void Clear() diff --git a/ModernKeePassLib/Keys/KcpUserAccount.cs b/ModernKeePassLib/Keys/KcpUserAccount.cs index 8d79247..d5d5d72 100644 --- a/ModernKeePassLib/Keys/KcpUserAccount.cs +++ b/ModernKeePassLib/Keys/KcpUserAccount.cs @@ -19,18 +19,15 @@ using System; using System.Security; -using Windows.Security.Cryptography; +using System.Security.Cryptography; using System.IO; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.DataProtection; -using Windows.Storage; -using Windows.Storage.Streams; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; -namespace ModernKeePassLib.Keys +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL.Keys { /// /// A user key depending on the currently logged on Windows user account. @@ -65,11 +62,8 @@ namespace ModernKeePassLib.Keys // Test if ProtectedData is supported -- throws an exception // when running on an old system (Windows 98 / ME). byte[] pbDummyData = new byte[128]; - - DataProtectionProvider provider = new DataProtectionProvider("Local=user"); - provider.ProtectAsync(pbDummyData.AsBuffer()).GetResults(); - /*ProtectedData.Protect(pbDummyData, m_pbEntropy, - DataProtectionScope.CurrentUser);*/ + ProtectedData.Protect(pbDummyData, m_pbEntropy, + DataProtectionScope.CurrentUser); byte[] pbKey = LoadUserKey(false); if(pbKey == null) pbKey = CreateUserKey(); @@ -87,19 +81,17 @@ namespace ModernKeePassLib.Keys private static string GetUserKeyFilePath(bool bCreate) { #if KeePassRT - string strUserDir = ApplicationData.Current.RoamingFolder.Path; + string strUserDir = Windows.Storage.ApplicationData.Current.RoamingFolder.Path; #else - /*string strUserDir = Environment.GetFolderPath( - Environment.SpecialFolder.ApplicationData);*/ - var strUserDir = ApplicationData.Current.RoamingFolder.Path; + string strUserDir = Environment.GetFolderPath( + Environment.SpecialFolder.ApplicationData); #endif strUserDir = UrlUtil.EnsureTerminatingSeparator(strUserDir, false); strUserDir += PwDefs.ShortProductName; - // Folder is sure to exist - /*if(bCreate && !Directory.Exists(strUserDir)) - Directory.CreateDirectory(strUserDir);*/ + if(bCreate && !Directory.Exists(strUserDir)) + Directory.CreateDirectory(strUserDir); strUserDir = UrlUtil.EnsureTerminatingSeparator(strUserDir, false); return strUserDir + UserKeyFileName; @@ -113,27 +105,16 @@ namespace ModernKeePassLib.Keys try { string strFilePath = GetUserKeyFilePath(false); - var pbProtectedKeyStream = - ApplicationData.Current.RoamingFolder.GetFileAsync(strFilePath).GetResults(). - OpenAsync(FileAccessMode.Read).GetResults().AsStream(); - using (var ms = new MemoryStream()) - { - ms.CopyTo(pbProtectedKeyStream); - var pbProtectedKey = ms.ToArray(); + byte[] pbProtectedKey = File.ReadAllBytes(strFilePath); - //byte[] pbProtectedKey = File.ReadAllBytes(strFilePath); + pbKey = ProtectedData.Unprotect(pbProtectedKey, m_pbEntropy, + DataProtectionScope.CurrentUser); - DataProtectionProvider provider = new DataProtectionProvider("Local=user"); - pbKey = provider.UnprotectAsync(pbProtectedKey.AsBuffer()).GetResults().ToArray(); - /*pbKey = ProtectedData.Unprotect(pbProtectedKey, m_pbEntropy, - DataProtectionScope.CurrentUser);*/ - - Array.Clear(pbProtectedKey, 0, pbProtectedKey.Length); - } + Array.Clear(pbProtectedKey, 0, pbProtectedKey.Length); } catch(Exception exLoad) { - //if(bShowWarning) MessageService.ShowWarning(exLoad); + if(bShowWarning) MessageService.ShowWarning(exLoad); pbKey = null; } @@ -152,16 +133,10 @@ namespace ModernKeePassLib.Keys string strFilePath = GetUserKeyFilePath(true); byte[] pbRandomKey = CryptoRandom.Instance.GetRandomBytes(64); + byte[] pbProtectedKey = ProtectedData.Protect(pbRandomKey, + m_pbEntropy, DataProtectionScope.CurrentUser); - DataProtectionProvider provider = new DataProtectionProvider("Local=user"); - var pbProtectedKey = provider.ProtectAsync(pbRandomKey.AsBuffer()).GetResults().ToArray(); - /*byte[] pbProtectedKey = ProtectedData.Protect(pbRandomKey, - m_pbEntropy, DataProtectionScope.CurrentUser);*/ - - var file = ApplicationData.Current.RoamingFolder.CreateFileAsync(strFilePath).GetResults(). - OpenAsync(FileAccessMode.ReadWrite).GetResults(); - file.WriteAsync(pbProtectedKey.AsBuffer()).GetResults(); - //File.WriteAllBytes(strFilePath, pbProtectedKey); + File.WriteAllBytes(strFilePath, pbProtectedKey); Array.Clear(pbProtectedKey, 0, pbProtectedKey.Length); Array.Clear(pbRandomKey, 0, pbRandomKey.Length); diff --git a/ModernKeePassLib/Keys/KeyProvider.cs b/ModernKeePassLib/Keys/KeyProvider.cs index dd6f652..a98840f 100644 --- a/ModernKeePassLib/Keys/KeyProvider.cs +++ b/ModernKeePassLib/Keys/KeyProvider.cs @@ -21,9 +21,9 @@ using System; using System.Collections.Generic; using System.Text; -using ModernKeePassLib.Serialization; +using ModernKeePassLibPCL.Serialization; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { public sealed class KeyProviderQueryContext { diff --git a/ModernKeePassLib/Keys/KeyProviderPool.cs b/ModernKeePassLib/Keys/KeyProviderPool.cs index b10d1ef..760540b 100644 --- a/ModernKeePassLib/Keys/KeyProviderPool.cs +++ b/ModernKeePassLib/Keys/KeyProviderPool.cs @@ -23,7 +23,7 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { public sealed class KeyProviderPool : IEnumerable { diff --git a/ModernKeePassLib/Keys/KeyValidator.cs b/ModernKeePassLib/Keys/KeyValidator.cs index 793a75c..dc4e80a 100644 --- a/ModernKeePassLib/Keys/KeyValidator.cs +++ b/ModernKeePassLib/Keys/KeyValidator.cs @@ -21,7 +21,7 @@ using System; using System.Collections.Generic; using System.Text; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { public enum KeyValidationType { diff --git a/ModernKeePassLib/Keys/KeyValidatorPool.cs b/ModernKeePassLib/Keys/KeyValidatorPool.cs index 40c483b..acf780e 100644 --- a/ModernKeePassLib/Keys/KeyValidatorPool.cs +++ b/ModernKeePassLib/Keys/KeyValidatorPool.cs @@ -23,9 +23,9 @@ using System.Collections.Generic; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { public sealed class KeyValidatorPool : IEnumerable { diff --git a/ModernKeePassLib/Keys/UserKeyType.cs b/ModernKeePassLib/Keys/UserKeyType.cs index 9d25637..6132a3b 100644 --- a/ModernKeePassLib/Keys/UserKeyType.cs +++ b/ModernKeePassLib/Keys/UserKeyType.cs @@ -19,7 +19,7 @@ using System; -namespace ModernKeePassLib.Keys +namespace ModernKeePassLibPCL.Keys { [Flags] public enum UserKeyType diff --git a/ModernKeePassLib/ModernKeePassLib.csproj b/ModernKeePassLib/ModernKeePassLib.csproj deleted file mode 100644 index 27a97be..0000000 --- a/ModernKeePassLib/ModernKeePassLib.csproj +++ /dev/null @@ -1,207 +0,0 @@ - - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {A207789D-9020-401B-9D0A-D0D2CFF721BD} - Library - Properties - ModernKeePassLib - ModernKeePassLib - en-US - 512 - {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 14.0 - v5.0 - - - - - true - full - false - bin\Debug\ - TRACE;DEBUG;NETSTANDARD1_2, PCL - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE;NETSTANDARD1_2, KeePassWinRT - prompt - 4 - - - true - bin\ARM\Debug\ - TRACE;DEBUG;NETSTANDARD1_2, KeePassWinRT - ;2008 - full - ARM - false - prompt - true - - - bin\ARM\Release\ - TRACE;NETSTANDARD1_2, KeePassWinRT - true - ;2008 - pdbonly - ARM - false - prompt - true - - - true - bin\x64\Debug\ - TRACE;DEBUG;NETSTANDARD1_2, KeePassWinRT - ;2008 - full - x64 - false - prompt - true - - - bin\x64\Release\ - TRACE;NETSTANDARD1_2, KeePassWinRT - true - ;2008 - pdbonly - x64 - false - prompt - true - - - true - bin\x86\Debug\ - TRACE;DEBUG;NETSTANDARD1_2, KeePassWinRT - ;2008 - full - x86 - false - prompt - true - - - bin\x86\Release\ - TRACE;NETSTANDARD1_2, KeePassWinRT - true - ;2008 - pdbonly - x86 - false - prompt - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - Libs\Windows.winmd - - - - - - - - 12.0 - - - - \ No newline at end of file diff --git a/ModernKeePassLib/ModernKeePassLib.csproj.DotSettings b/ModernKeePassLib/ModernKeePassLib.csproj.DotSettings deleted file mode 100644 index c54c126..0000000 --- a/ModernKeePassLib/ModernKeePassLib.csproj.DotSettings +++ /dev/null @@ -1,2 +0,0 @@ - - CSharp70 \ No newline at end of file diff --git a/ModernKeePassLib/ModernKeePassLib.csproj.user b/ModernKeePassLib/ModernKeePassLib.csproj.user deleted file mode 100644 index 5283ef1..0000000 --- a/ModernKeePassLib/ModernKeePassLib.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ShowAllFiles - - \ No newline at end of file diff --git a/ModernKeePassLib/ModernKeePassLib.nuget.targets b/ModernKeePassLib/ModernKeePassLib.nuget.targets deleted file mode 100644 index 8930d73..0000000 --- a/ModernKeePassLib/ModernKeePassLib.nuget.targets +++ /dev/null @@ -1,9 +0,0 @@ - - - - $(UserProfile)\.nuget\packages\ - - - - - \ No newline at end of file diff --git a/ModernKeePassLib/ModernKeePassLibPCL.csproj b/ModernKeePassLib/ModernKeePassLibPCL.csproj new file mode 100644 index 0000000..c8d1ee5 --- /dev/null +++ b/ModernKeePassLib/ModernKeePassLibPCL.csproj @@ -0,0 +1,190 @@ + + + + Debug + AnyCPU + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {2E710089-9559-4967-846C-E763DD1F3ACB} + Library + Properties + ModernKeePassLibPCL + ModernKeePassLibPCL + false + + + 2.0 + + + Profile151 + v4.6 + KeePassLib.pfx + + + 10.0 + + + true + full + false + bin\Debug + DEBUG;ModernKeePassLibPCL + prompt + 4 + + + true + bin\Release + prompt + 4 + ModernKeePassLibPCL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\packages\PCLCrypto.2.0.147\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10\PCLCrypto.dll + + + ..\packages\PCLStorage.1.0.2\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll + + + ..\packages\PCLStorage.1.0.2\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll + + + ..\packages\PInvoke.BCrypt.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.BCrypt.dll + + + ..\packages\PInvoke.Kernel32.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.Kernel32.dll + + + ..\packages\PInvoke.NCrypt.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.NCrypt.dll + + + ..\packages\PInvoke.Windows.Core.0.5.97\lib\portable-net45+win8+wpa81\PInvoke.Windows.Core.dll + + + ..\packages\Splat.2.0.0\lib\netstandard1.1\Splat.dll + + + ..\packages\Validation.2.4.15\lib\portable-net45+win8+wp8+wpa81\Validation.dll + + + False + Libs\Windows.winmd + + + + + + 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/ModernKeePassLib/ModernKeePassLib.nuspec b/ModernKeePassLib/ModernKeePassLibPCL.nuspec similarity index 76% rename from ModernKeePassLib/ModernKeePassLib.nuspec rename to ModernKeePassLib/ModernKeePassLibPCL.nuspec index 50de2a1..4925857 100644 --- a/ModernKeePassLib/ModernKeePassLib.nuspec +++ b/ModernKeePassLib/ModernKeePassLibPCL.nuspec @@ -1,9 +1,9 @@ - + - ModernKeePassLib - 2.19.2950 - ModernKeePassLib + ModernKeePassLibPCL + 2.28.1000 + ModernKeePassLibPCL Geoffroy Bonneville Geoffroy Bonneville https://www.gnu.org/licenses/gpl-3.0.en.html @@ -12,8 +12,8 @@ Portable KeePass Password Management Library Initial release. Copyright © 2017 Geoffroy Bonneville - KeePass KeePassLib NetStandard - + KeePass KeePassLib Portable + - - diff --git a/ModernKeePassLib/Native/Native.PCL.cs b/ModernKeePassLib/Native/Native.PCL.cs index de07139..6e3f6d7 100644 --- a/ModernKeePassLib/Native/Native.PCL.cs +++ b/ModernKeePassLib/Native/Native.PCL.cs @@ -2,7 +2,7 @@ using PlatformID = System.UInt32; -namespace KeePass2PCL.Native +namespace ModernKeePassLibPCL.Native { internal static class NativeLib { diff --git a/ModernKeePassLib/Native/NativeLib.cs b/ModernKeePassLib/Native/NativeLib.cs index 866538e..42f3561 100644 --- a/ModernKeePassLib/Native/NativeLib.cs +++ b/ModernKeePassLib/Native/NativeLib.cs @@ -28,9 +28,9 @@ using System.IO; using System.Reflection; using System.Diagnostics; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Native +namespace ModernKeePassLibPCL.Native { /// /// Interface to native library (library containing fast versions of diff --git a/ModernKeePassLib/Native/NativeMethods.Unix.cs b/ModernKeePassLib/Native/NativeMethods.Unix.cs index 3d5e089..62561ca 100644 --- a/ModernKeePassLib/Native/NativeMethods.Unix.cs +++ b/ModernKeePassLib/Native/NativeMethods.Unix.cs @@ -25,7 +25,7 @@ using System.Runtime.InteropServices; using System.Reflection; using System.Diagnostics; -namespace KeePass2PCL.Native +namespace ModernKeePassLibPCL.Native { internal static partial class NativeMethods { diff --git a/ModernKeePassLib/Native/NativeMethods.cs b/ModernKeePassLib/Native/NativeMethods.cs index 9ce13fe..9542aac 100644 --- a/ModernKeePassLib/Native/NativeMethods.cs +++ b/ModernKeePassLib/Native/NativeMethods.cs @@ -24,9 +24,9 @@ using System.Runtime.InteropServices; using System.IO; using System.Diagnostics; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Native +namespace ModernKeePassLibPCL.Native { internal static partial class NativeMethods { diff --git a/ModernKeePassLib/Properties/AssemblyInfo.cs b/ModernKeePassLib/Properties/AssemblyInfo.cs index 9b5b2d8..43888cb 100644 --- a/ModernKeePassLib/Properties/AssemblyInfo.cs +++ b/ModernKeePassLib/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,22 +22,23 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General assembly properties -[assembly: AssemblyTitle("ModernKeePassLib")] -[assembly: AssemblyDescription("Portable KeePass Password Management Library")] +[assembly: AssemblyTitle("KeePassLib")] +[assembly: AssemblyDescription("KeePass Password Management Library")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Geoffroy Bonneville")] -[assembly: AssemblyProduct("ModernKeePassLib")] -[assembly: AssemblyCopyright("Copyright © 2017 Geoffroy Bonneville")] +[assembly: AssemblyCompany("Panteam")] +[assembly: AssemblyProduct("KeePassLib")] +[assembly: AssemblyCopyright("Copyright © 2003-2017 Dominik Reichl")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // COM settings [assembly: ComVisible(false)] +#if !ModernKeePassLibPCL // Assembly GUID -//Bert TODO: Disabled Guid -//[assembly: Guid("395f6eec-a1e0-4438-aa82-b75099348134")] +[assembly: Guid("395f6eec-a1e0-4438-aa82-b75099348134")] +#endif // Assembly version information -[assembly: AssemblyVersion("2.36.0.*")] -[assembly: AssemblyFileVersion("2.36.0.0")] +[assembly: AssemblyVersion("2.28.1.*")] +[assembly: AssemblyFileVersion("2.28.1.0")] diff --git a/ModernKeePassLib/Properties/AssemblyInfo.cs.bak b/ModernKeePassLib/Properties/AssemblyInfo.cs.bak deleted file mode 100644 index fa77aab..0000000 --- a/ModernKeePassLib/Properties/AssemblyInfo.cs.bak +++ /dev/null @@ -1,42 +0,0 @@ -/* - KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General assembly properties -[assembly: AssemblyTitle("KeePassLib")] -[assembly: AssemblyDescription("KeePass Password Management Library")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Dominik Reichl")] -[assembly: AssemblyProduct("KeePassLib")] -[assembly: AssemblyCopyright("Copyright © 2003-2012 Dominik Reichl")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// COM settings -[assembly: ComVisible(false)] - -// Assembly GUID -[assembly: Guid("395f6eec-a1e0-4438-aa82-b75099348134")] - -// Assembly version information -[assembly: AssemblyVersion("2.19.0.*")] -[assembly: AssemblyFileVersion("2.19.0.0")] diff --git a/ModernKeePassLib/PwCustomIcon.cs b/ModernKeePassLib/PwCustomIcon.cs index 62885fe..09453bd 100644 --- a/ModernKeePassLib/PwCustomIcon.cs +++ b/ModernKeePassLib/PwCustomIcon.cs @@ -18,9 +18,17 @@ */ using System; -using Windows.UI.Xaml.Controls; +using System.Diagnostics; +#if ModernKeePassLibPCL +using Image = Splat.IBitmap; +#else +using System.Drawing; +#endif +using System.IO; -namespace ModernKeePassLib +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL { /// /// Custom icon. PwCustomIcon objects are immutable. @@ -63,7 +71,7 @@ namespace ModernKeePassLib // MemoryStream ms = new MemoryStream(m_pbImageDataPng, false); // m_pCachedImage = Image.FromStream(ms); // ms.Close(); - //m_pCachedImage = GfxUtil.LoadImage(m_pbImageDataPng); + m_pCachedImage = GfxUtil.LoadImage(m_pbImageDataPng); #else m_pCachedImage = null; #endif diff --git a/ModernKeePassLib/PwDatabase.cs b/ModernKeePassLib/PwDatabase.cs index 4c739ae..be4e5f0 100644 --- a/ModernKeePassLib/PwDatabase.cs +++ b/ModernKeePassLib/PwDatabase.cs @@ -21,20 +21,24 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; -using Windows.UI; -using Windows.UI.Xaml.Controls; -using ModernKeePassLib.Collections; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Cipher; -using ModernKeePassLib.Delegates; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Keys; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Security; -using ModernKeePassLib.Serialization; -using ModernKeePassLib.Utility; +using System.Drawing; -namespace ModernKeePassLib +#if ModernKeePassLibPCL +using Image = Splat.IBitmap; +#endif + +using ModernKeePassLibPCL.Collections; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Cryptography.Cipher; +using ModernKeePassLibPCL.Delegates; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Keys; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Serialization; +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL { /// /// The core password manager class. It contains a number of groups, which @@ -68,7 +72,7 @@ namespace ModernKeePassLib private string m_strDefaultUserName = string.Empty; private DateTime m_dtDefaultUserChanged = PwDefs.DtDefaultNow; private uint m_uMntncHistoryDays = 365; - private Color m_clr; + private Color m_clr = Color.Empty; private DateTime m_dtKeyLastChanged = PwDefs.DtDefaultNow; private long m_lKeyChangeRecDays = -1; @@ -498,7 +502,7 @@ namespace ModernKeePassLib m_strDefaultUserName = string.Empty; m_dtDefaultUserChanged = dtNow; m_uMntncHistoryDays = 365; - m_clr = new Color(); + m_clr = Color.Empty; m_dtKeyLastChanged = dtNow; m_lKeyChangeRecDays = -1; @@ -1465,14 +1469,10 @@ namespace ModernKeePassLib /// Image data. public Image GetCustomIcon(PwUuid pwIconId) { -#if PCL - return null; -#else - int nIndex = GetCustomIconIndex(pwIconId); + int nIndex = GetCustomIconIndex(pwIconId); if(nIndex >= 0) return m_vCustomIcons[nIndex].Image; else { Debug.Assert(false); return null; } -#endif } public bool DeleteCustomIcons(List vUuidsToDelete) diff --git a/ModernKeePassLib/PwDefs.cs b/ModernKeePassLib/PwDefs.cs index 6148841..9a6efc8 100644 --- a/ModernKeePassLib/PwDefs.cs +++ b/ModernKeePassLib/PwDefs.cs @@ -23,11 +23,11 @@ using System.Xml.Serialization; using System.ComponentModel; using System.Diagnostics; -using ModernKeePassLib.Delegates; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Serialization; +using ModernKeePassLibPCL.Delegates; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Serialization; -namespace ModernKeePassLib +namespace ModernKeePassLibPCL { /// /// Contains KeePassLib-global definitions and enums. @@ -318,7 +318,7 @@ namespace ModernKeePassLib set { m_bSearchInTags = value; } } -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT private StringComparison m_scType = StringComparison.OrdinalIgnoreCase; #else private StringComparison m_scType = StringComparison.InvariantCultureIgnoreCase; diff --git a/ModernKeePassLib/PwDeletedObject.cs b/ModernKeePassLib/PwDeletedObject.cs index d430e6a..c5e2d38 100644 --- a/ModernKeePassLib/PwDeletedObject.cs +++ b/ModernKeePassLib/PwDeletedObject.cs @@ -21,9 +21,9 @@ using System; using System.Collections.Generic; using System.Diagnostics; -using ModernKeePassLib.Interfaces; +using ModernKeePassLibPCL.Interfaces; -namespace ModernKeePassLib +namespace ModernKeePassLibPCL { /// /// Represents an object that has been deleted. diff --git a/ModernKeePassLib/PwEntry.cs b/ModernKeePassLib/PwEntry.cs index d05074c..e30e6ed 100644 --- a/ModernKeePassLib/PwEntry.cs +++ b/ModernKeePassLib/PwEntry.cs @@ -21,13 +21,14 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Xml; -using Windows.UI; -using ModernKeePassLib.Collections; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using System.Drawing; -namespace ModernKeePassLib +using ModernKeePassLibPCL.Collections; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; + +namespace ModernKeePassLibPCL { /// /// A class representing a password entry. A password entry consists of several @@ -48,8 +49,8 @@ namespace ModernKeePassLib private PwIcon m_pwIcon = PwIcon.Key; private PwUuid m_pwCustomIconID = PwUuid.Zero; - private Color m_clrForeground; - private Color m_clrBackground; + private Color m_clrForeground = Color.Empty; + private Color m_clrBackground = Color.Empty; private DateTime m_tCreation = PwDefs.DtDefaultNow; private DateTime m_tLastMod = PwDefs.DtDefaultNow; @@ -888,7 +889,7 @@ namespace ModernKeePassLib if(m_bCompareNaturally) return StrUtil.CompareNaturally(strA, strB); -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT return string.Compare(strA, strB, m_bCaseInsensitive ? StringComparison.CurrentCultureIgnoreCase : StringComparison.CurrentCulture); #else diff --git a/ModernKeePassLib/PwEnums.cs b/ModernKeePassLib/PwEnums.cs index e4fdc81..8c899a8 100644 --- a/ModernKeePassLib/PwEnums.cs +++ b/ModernKeePassLib/PwEnums.cs @@ -19,7 +19,7 @@ using System; -namespace ModernKeePassLib +namespace ModernKeePassLibPCL { /// /// Compression algorithm specifiers. diff --git a/ModernKeePassLib/PwGroup.cs b/ModernKeePassLib/PwGroup.cs index 40ea3a0..e961693 100644 --- a/ModernKeePassLib/PwGroup.cs +++ b/ModernKeePassLib/PwGroup.cs @@ -22,13 +22,13 @@ using System.Collections.Generic; using System.Diagnostics; using System.Text.RegularExpressions; -using ModernKeePassLib.Collections; -using ModernKeePassLib.Delegates; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Collections; +using ModernKeePassLibPCL.Delegates; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib +namespace ModernKeePassLibPCL { /// /// A group containing several password entries. @@ -841,13 +841,13 @@ namespace ModernKeePassLib Regex rx = null; if(sp.RegularExpression) { -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT RegexOptions ro = RegexOptions.None; #else RegexOptions ro = RegexOptions.Compiled; #endif if((sp.ComparisonMode == StringComparison.CurrentCultureIgnoreCase) || -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT (sp.ComparisonMode == StringComparison.InvariantCultureIgnoreCase) || #endif (sp.ComparisonMode == StringComparison.OrdinalIgnoreCase)) diff --git a/ModernKeePassLib/PwUuid.cs b/ModernKeePassLib/PwUuid.cs index 8884444..2ddf256 100644 --- a/ModernKeePassLib/PwUuid.cs +++ b/ModernKeePassLib/PwUuid.cs @@ -22,9 +22,9 @@ using System.Collections.Generic; using System.Xml; using System.Diagnostics; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib +namespace ModernKeePassLibPCL { // [ImmutableObject(true)] /// diff --git a/ModernKeePassLib/Resources/KLRes.Generated.cs b/ModernKeePassLib/Resources/KLRes.Generated.cs index 74f4274..023af1d 100644 --- a/ModernKeePassLib/Resources/KLRes.Generated.cs +++ b/ModernKeePassLib/Resources/KLRes.Generated.cs @@ -4,7 +4,7 @@ using System; using System.Collections.Generic; -namespace ModernKeePassLib.Resources +namespace ModernKeePassLibPCL.Resources { /// /// A strongly-typed resource class, for looking up localized strings, etc. diff --git a/ModernKeePassLib/Resources/KSRes.Generated.cs b/ModernKeePassLib/Resources/KSRes.Generated.cs index 7b49547..4d3804c 100644 --- a/ModernKeePassLib/Resources/KSRes.Generated.cs +++ b/ModernKeePassLib/Resources/KSRes.Generated.cs @@ -4,7 +4,7 @@ using System; using System.Collections.Generic; -namespace ModernKeePassLib.Resources +namespace ModernKeePassLibPCL.Resources { /// /// A strongly-typed resource class, for looking up localized strings, etc. diff --git a/ModernKeePassLib/Security/ProtectedBinary.cs b/ModernKeePassLib/Security/ProtectedBinary.cs index b8f2c4f..bfbd8fe 100644 --- a/ModernKeePassLib/Security/ProtectedBinary.cs +++ b/ModernKeePassLib/Security/ProtectedBinary.cs @@ -21,15 +21,16 @@ using System; using System.Threading; using System.Diagnostics; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Cipher; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Cryptography.Cipher; +using ModernKeePassLibPCL.Native; +using ModernKeePassLibPCL.Utility; #if KeePassLibSD using KeePassLibSD; #endif -namespace ModernKeePassLib.Security +namespace ModernKeePassLibPCL.Security { [Flags] public enum PbCryptFlags @@ -85,19 +86,17 @@ namespace ModernKeePassLib.Security { #if KeePassLibSD return false; -#elif PCL - return false; #else bool? ob = g_bProtectedMemorySupported; if(ob.HasValue) return ob.Value; // Mono does not implement any encryption for ProtectedMemory; // https://sourceforge.net/p/keepass/feature-requests/1907/ - /*if(NativeLib.IsUnix()) + if(NativeLib.IsUnix()) { g_bProtectedMemorySupported = false; return false; - }*/ + } ob = false; try // Test whether ProtectedMemory is supported @@ -242,15 +241,14 @@ namespace ModernKeePassLib.Security return; } -#if !PCL - if(ProtectedBinary.ProtectedMemorySupported) + if(ProtectedBinary.ProtectedMemorySupported) { ProtectedMemory.Protect(m_pbData, MemoryProtectionScope.SameProcess); m_mp = PbMemProt.ProtectedMemory; return; } -#endif + byte[] pbKey32 = g_pbKey32; if(pbKey32 == null) { @@ -270,10 +268,9 @@ namespace ModernKeePassLib.Security private void Decrypt() { if(m_pbData.Length == 0) return; -#if !PCL + if(m_mp == PbMemProt.ProtectedMemory) ProtectedMemory.Unprotect(m_pbData, MemoryProtectionScope.SameProcess); -#endif else if(m_mp == PbMemProt.Salsa20) { Salsa20Cipher s = new Salsa20Cipher(g_pbKey32, diff --git a/ModernKeePassLib/Security/ProtectedString.cs b/ModernKeePassLib/Security/ProtectedString.cs index 9b8f715..87365f0 100644 --- a/ModernKeePassLib/Security/ProtectedString.cs +++ b/ModernKeePassLib/Security/ProtectedString.cs @@ -21,8 +21,8 @@ using System; using System.Text; using System.Diagnostics; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Utility; #if KeePassLibSD using KeePassLibSD; @@ -30,7 +30,7 @@ using KeePassLibSD; // SecureString objects are limited to 65536 characters, don't use -namespace ModernKeePassLib.Security +namespace ModernKeePassLibPCL.Security { /// /// Represents an in-memory encrypted string. diff --git a/ModernKeePassLib/Security/XorredBuffer.cs b/ModernKeePassLib/Security/XorredBuffer.cs index 625e83c..b941074 100644 --- a/ModernKeePassLib/Security/XorredBuffer.cs +++ b/ModernKeePassLib/Security/XorredBuffer.cs @@ -20,7 +20,7 @@ using System; using System.Diagnostics; -namespace ModernKeePassLib.Security +namespace ModernKeePassLibPCL.Security { /// /// Represents an object that is encrypted using a XOR pad until diff --git a/ModernKeePassLib/Serialization/BinaryReaderEx.cs b/ModernKeePassLib/Serialization/BinaryReaderEx.cs index 1891861..d145ed1 100644 --- a/ModernKeePassLib/Serialization/BinaryReaderEx.cs +++ b/ModernKeePassLib/Serialization/BinaryReaderEx.cs @@ -22,9 +22,9 @@ using System.Collections.Generic; using System.Text; using System.IO; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { public sealed class BinaryReaderEx { diff --git a/ModernKeePassLib/Serialization/FileLock.cs b/ModernKeePassLib/Serialization/FileLock.cs index e99f604..880af0d 100644 --- a/ModernKeePassLib/Serialization/FileLock.cs +++ b/ModernKeePassLib/Serialization/FileLock.cs @@ -21,18 +21,18 @@ using System; using System.Collections.Generic; using System.Text; using System.IO; -#if PCL +#if ModernKeePassLibPCL using System.Threading.Tasks; #else using System.Threading; #endif using System.Diagnostics; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { public sealed class FileLockException : Exception { @@ -158,7 +158,7 @@ namespace ModernKeePassLib.Serialization byte[] pbID = CryptoRandom.Instance.GetRandomBytes(16); string strTime = TimeUtil.SerializeUtc(DateTime.Now); -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) lfi = new LockFileInfo(Convert.ToBase64String(pbID), strTime, Environment.UserName, Environment.MachineName, Environment.UserDomainName); @@ -243,7 +243,7 @@ namespace ModernKeePassLib.Serialization if(bFileDeleted) break; -#if PCL +#if ModernKeePassLibPCL if(bDisposing) Task.Delay(50).Wait(); #else diff --git a/ModernKeePassLib/Serialization/FileTransactionEx.cs b/ModernKeePassLib/Serialization/FileTransactionEx.cs index 0b1072f..bad9ac9 100644 --- a/ModernKeePassLib/Serialization/FileTransactionEx.cs +++ b/ModernKeePassLib/Serialization/FileTransactionEx.cs @@ -23,13 +23,14 @@ using System.Text; using System.IO; using System.Diagnostics; -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) using System.Security.AccessControl; #endif -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Native; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { public sealed class FileTransactionEx { @@ -58,8 +59,8 @@ namespace ModernKeePassLib.Serialization m_bTransacted = bTransacted; m_iocBase = iocBaseFile.CloneDeep(); -// ModernKeePassLib is currently targeting .NET 4.5 -#if !PCL +// ModernKeePassLibPCL is currently targeting .NET 4.5 +#if !ModernKeePassLibPCL // Prevent transactions for FTP URLs under .NET 4.0 in order to // avoid/workaround .NET bug 621450: // https://connect.microsoft.com/VisualStudio/feedback/details/621450/problem-renaming-file-on-ftp-server-using-ftpwebrequest-in-net-framework-4-0-vs2010-only @@ -101,14 +102,14 @@ namespace ModernKeePassLib.Serialization { bool bMadeUnhidden = UrlUtil.UnhideFile(m_iocBase.Path); -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) FileSecurity bkSecurity = null; bool bEfsEncrypted = false; #endif if(IOConnection.FileExists(m_iocBase)) { -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) if(m_iocBase.IsLocalFile()) { try @@ -130,7 +131,7 @@ namespace ModernKeePassLib.Serialization IOConnection.RenameFile(m_iocTemp, m_iocBase); -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) if(m_iocBase.IsLocalFile()) { try diff --git a/ModernKeePassLib/Serialization/HashedBlockStream.cs b/ModernKeePassLib/Serialization/HashedBlockStream.cs index 8bf77f4..ff6cf4e 100644 --- a/ModernKeePassLib/Serialization/HashedBlockStream.cs +++ b/ModernKeePassLib/Serialization/HashedBlockStream.cs @@ -19,22 +19,23 @@ using System; using System.IO; -#if PCL +#if ModernKeePassLibPCL using System.Linq; +using PCLCrypto; #else using System.Security.Cryptography; #endif using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; using System.Text; -using Windows.Security.Cryptography.Core; -using ModernKeePassLib.Utility; + +using ModernKeePassLibPCL.Native; +using ModernKeePassLibPCL.Utility; #if KeePassLibSD using KeePassLibSD; #endif -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { public sealed class HashedBlockStream : Stream { @@ -98,8 +99,8 @@ namespace ModernKeePassLib.Serialization private void Initialize(Stream sBaseStream, bool bWriting, int nBufferSize, bool bVerify) { - if (sBaseStream == null) throw new ArgumentNullException(nameof(sBaseStream)); - m_sBaseStream = sBaseStream; + if (sBaseStream != null) m_sBaseStream = sBaseStream; + else throw new ArgumentNullException(nameof(sBaseStream)); if (nBufferSize < 0) throw new ArgumentOutOfRangeException(nameof(nBufferSize)); @@ -134,7 +135,7 @@ namespace ModernKeePassLib.Serialization if(m_bWriting) m_bwOutput.Flush(); } -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT protected override void Dispose(bool disposing) { if(!disposing) return; @@ -221,11 +222,11 @@ namespace ModernKeePassLib.Serialization throw new InvalidDataException(); int nBufferSize = 0; - /*try {*/ nBufferSize = m_brInput.ReadInt32(); /*} + try { nBufferSize = m_brInput.ReadInt32(); } catch(NullReferenceException) // Mono bug workaround (LaunchPad 783268) { if(!NativeLib.IsUnix()) throw; - }*/ + } if(nBufferSize < 0) throw new InvalidDataException(); @@ -249,16 +250,16 @@ namespace ModernKeePassLib.Serialization if(m_bVerify) { -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var pbComputedHash = sha256.HashData(m_pbBuffer.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var pbComputedHash = sha256.HashData(m_pbBuffer); #else SHA256Managed sha256 = new SHA256Managed(); byte[] pbComputedHash = sha256.ComputeHash(m_pbBuffer); #endif if((pbComputedHash == null) || (pbComputedHash.Length != 32)) throw new InvalidOperationException(); - + for(int iHashPos = 0; iHashPos < 32; ++iHashPos) { if(pbStoredHash[iHashPos] != pbComputedHash[iHashPos]) @@ -296,9 +297,9 @@ namespace ModernKeePassLib.Serialization if(m_nBufferPos > 0) { -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var pbHash = sha256.HashData(m_pbBuffer.Where((x, i) => i < m_nBufferPos).ToArray().AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var pbHash = sha256.HashData(m_pbBuffer.Where((x, i) => i < m_nBufferPos).ToArray()); #else SHA256Managed sha256 = new SHA256Managed(); diff --git a/ModernKeePassLib/Serialization/IOConnection.cs b/ModernKeePassLib/Serialization/IOConnection.cs index 4495320..1a4fe8b 100644 --- a/ModernKeePassLib/Serialization/IOConnection.cs +++ b/ModernKeePassLib/Serialization/IOConnection.cs @@ -19,31 +19,28 @@ */ using System; -using System.Collections.Generic; -using System.Text; using System.IO; using System.Net; -using System.Reflection; using System.Diagnostics; - -#if (!PCL && !KeePassLibSD && !KeePassRT) +using Windows.Storage.Streams; +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) using System.Net.Cache; using System.Net.Security; #endif -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT using System.Security.Cryptography.X509Certificates; #endif -#if PCL +#if ModernKeePassLibPCL using Windows.Storage; +using PCLStorage; #endif +using ModernKeePassLibPCL.Utility; -using ModernKeePassLib.Utility; - -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) internal sealed class IOWebClient : WebClient { protected override WebRequest GetWebRequest(Uri address) @@ -55,7 +52,7 @@ namespace ModernKeePassLib.Serialization } #endif -#if !PCL +#if !ModernKeePassLibPCL internal abstract class WrapperStream : Stream { private readonly Stream m_s; @@ -228,7 +225,7 @@ namespace ModernKeePassLib.Serialization public static class IOConnection { -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) private static ProxyServerType m_pstProxyType = ProxyServerType.System; private static string m_strProxyAddr = string.Empty; private static string m_strProxyPort = string.Empty; @@ -252,7 +249,7 @@ namespace ModernKeePassLib.Serialization public static event EventHandler IOAccessPre; -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) // Allow self-signed certificates, expired certificates, etc. private static bool AcceptCertificate(object sender, X509Certificate certificate, X509Chain chain, @@ -434,17 +431,20 @@ namespace ModernKeePassLib.Serialization private static Stream OpenReadLocal(IOConnectionInfo ioc) { -#if PCL - /*var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; - return file.OpenAsync(PCLStorage.FileAccess.Read).Result;*/ - return ioc.StorageFile.OpenAsync(FileAccessMode.Read).GetResults().AsStream(); +#if ModernKeePassLibPCL + if (ioc.StorageFile != null) + { + return ioc.StorageFile.OpenAsync(FileAccessMode.Read).GetResults().AsStream(); + } + var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; + return file.OpenAsync(PCLStorage.FileAccess.Read).Result; #else return new FileStream(ioc.Path, FileMode.Open, FileAccess.Read, FileShare.Read); #endif } -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) public static Stream OpenWrite(IOConnectionInfo ioc) { if(ioc == null) { Debug.Assert(false); return null; } @@ -477,15 +477,18 @@ namespace ModernKeePassLib.Serialization private static Stream OpenWriteLocal(IOConnectionInfo ioc) { -#if PCL - return ioc.StorageFile.OpenAsync(FileAccessMode.ReadWrite).GetResults().AsStream(); - /*var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; - return file.OpenAsync(FileAccess.ReadAndWrite).Result;*/ +#if ModernKeePassLibPCL + if (ioc.StorageFile != null) + { + return ioc.StorageFile.OpenAsync(FileAccessMode.ReadWrite).GetResults().AsStream(); + } + var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; + return file.OpenAsync(FileAccess.ReadAndWrite).Result; #else return new FileStream(ioc.Path, FileMode.Create, FileAccess.Write, FileShare.None); #endif - } + } public static bool FileExists(IOConnectionInfo ioc) { @@ -498,14 +501,14 @@ namespace ModernKeePassLib.Serialization RaiseIOAccessPreEvent(ioc, IOAccessType.Exists); -#if PCL +#if ModernKeePassLibPCL if(ioc.IsLocalFile()) - return ioc.StorageFile.IsAvailable; + return (FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result != null); #else if(ioc.IsLocalFile()) return File.Exists(ioc.Path); #endif -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) if(ioc.Path.StartsWith("ftp://", StrUtil.CaseIgnoreCmp)) { bool b = SendCommand(ioc, WebRequestMethods.Ftp.GetDateTimestamp); @@ -540,17 +543,16 @@ namespace ModernKeePassLib.Serialization { RaiseIOAccessPreEvent(ioc, IOAccessType.Delete); -#if PCL - if(ioc.IsLocalFile()) { - /*var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; - file.DeleteAsync().RunSynchronously();*/ - ioc.StorageFile.DeleteAsync(StorageDeleteOption.Default).GetResults(); - } +#if ModernKeePassLibPCL + if (!ioc.IsLocalFile()) return; + ioc.StorageFile?.DeleteAsync().GetResults(); + var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; + file.DeleteAsync().RunSynchronously(); #else if(ioc.IsLocalFile()) { File.Delete(ioc.Path); return; } #endif -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) WebRequest req = CreateWebRequest(ioc); if(req != null) { @@ -582,18 +584,16 @@ namespace ModernKeePassLib.Serialization { RaiseIOAccessPreEvent(iocFrom, iocTo, IOAccessType.Move); -#if PCL - if(iocFrom.IsLocalFile()) { - /*var file = FileSystem.Current.GetFileFromPathAsync(iocFrom.Path).Result; - file.MoveAsync(iocTo.Path).RunSynchronously();*/ - iocFrom.StorageFile.RenameAsync(iocTo.Path).GetResults(); - return; - } +#if ModernKeePassLibPCL + if (!iocFrom.IsLocalFile()) return; + iocFrom.StorageFile?.RenameAsync(iocTo.Path).GetResults(); + var file = FileSystem.Current.GetFileFromPathAsync(iocFrom.Path).Result; + file.MoveAsync(iocTo.Path).RunSynchronously(); #else if(iocFrom.IsLocalFile()) { File.Move(iocFrom.Path, iocTo.Path); return; } #endif -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) WebRequest req = CreateWebRequest(iocFrom); if(req != null) { @@ -642,7 +642,7 @@ namespace ModernKeePassLib.Serialization // DeleteFile(iocFrom); } -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) private static bool SendCommand(IOConnectionInfo ioc, string strMethod) { try diff --git a/ModernKeePassLib/Serialization/IOConnectionInfo.cs b/ModernKeePassLib/Serialization/IOConnectionInfo.cs index 428a200..7adbec2 100644 --- a/ModernKeePassLib/Serialization/IOConnectionInfo.cs +++ b/ModernKeePassLib/Serialization/IOConnectionInfo.cs @@ -25,15 +25,15 @@ using System.Net; using System.ComponentModel; using System.Xml.Serialization; using System.Diagnostics; - -#if PCL using Windows.Storage; +#if ModernKeePassLibPCL +using PCLStorage; #endif -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { public enum IOCredSaveMode { @@ -67,11 +67,9 @@ namespace ModernKeePassLib.Serialization public sealed class IOConnectionInfo : IDeepCloneable { - // private IOFileFormatHint m_ioHint = IOFileFormatHint.None; + // private IOFileFormatHint m_ioHint = IOFileFormatHint.None; - public StorageFile StorageFile { get; set; } - - private string m_strUrl = string.Empty; + private string m_strUrl = string.Empty; public string Path { get { return m_strUrl; } @@ -295,23 +293,24 @@ namespace ModernKeePassLib.Serialization return ioc; } - public static IOConnectionInfo FromFile(StorageFile file) - { - IOConnectionInfo ioc = new IOConnectionInfo(); + public static IOConnectionInfo FromFile(StorageFile file) + { + IOConnectionInfo ioc = new IOConnectionInfo(); - ioc.Path = file.Path; - ioc.CredSaveMode = IOCredSaveMode.NoSave; - ioc.StorageFile = file; + ioc.StorageFile = file; + ioc.Path = file.Path; + ioc.CredSaveMode = IOCredSaveMode.NoSave; - return ioc; - } + return ioc; + } + public StorageFile StorageFile { get; set; } public bool CanProbablyAccess() { -#if PCL +#if ModernKeePassLibPCL if(IsLocalFile()) - return (StorageFile.IsAvailable); + return (FileSystem.Current.GetFileFromPathAsync(m_strUrl).Result != null); #else if(IsLocalFile()) return File.Exists(m_strUrl); #endif diff --git a/ModernKeePassLib/Serialization/KdbxFile.Read.Streamed.cs b/ModernKeePassLib/Serialization/KdbxFile.Read.Streamed.cs index 5140b98..bc1977f 100644 --- a/ModernKeePassLib/Serialization/KdbxFile.Read.Streamed.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Read.Streamed.cs @@ -21,20 +21,21 @@ using System; using System.Collections.Generic; using System.Text; using System.Security; +using System.Drawing; using System.Xml; using System.IO; using System.Diagnostics; -using ModernKeePassLib; -using ModernKeePassLib.Collections; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Cipher; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL; +using ModernKeePassLibPCL.Collections; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Cryptography.Cipher; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { /// /// Serialization to KeePass KDBX files. @@ -98,7 +99,7 @@ namespace ModernKeePassLib.Serialization xrs.IgnoreProcessingInstructions = true; xrs.IgnoreWhitespace = true; -#if !PCL +#if !ModernKeePassLibPCL // these are default values, so no need to set them #if !KeePassRT #if !KeePassLibSD @@ -241,8 +242,8 @@ namespace ModernKeePassLib.Serialization else if(xr.Name == ElemDbColor) { string strColor = ReadString(xr); - /*if(!string.IsNullOrEmpty(strColor)) - m_pwDatabase.Color = ColorTranslator.FromHtml(strColor);*/ + if(!string.IsNullOrEmpty(strColor)) + m_pwDatabase.Color = ColorTranslator.FromHtml(strColor); } else if(xr.Name == ElemDbKeyChanged) m_pwDatabase.MasterKeyChanged = ReadTime(xr); @@ -413,14 +414,14 @@ namespace ModernKeePassLib.Serialization else if(xr.Name == ElemFgColor) { string strColor = ReadString(xr); - /*if(!string.IsNullOrEmpty(strColor)) - m_ctxEntry.ForegroundColor = ColorTranslator.FromHtml(strColor);*/ + if(!string.IsNullOrEmpty(strColor)) + m_ctxEntry.ForegroundColor = ColorTranslator.FromHtml(strColor); } else if(xr.Name == ElemBgColor) { string strColor = ReadString(xr); - /*if(!string.IsNullOrEmpty(strColor)) - m_ctxEntry.BackgroundColor = ColorTranslator.FromHtml(strColor);*/ + if(!string.IsNullOrEmpty(strColor)) + m_ctxEntry.BackgroundColor = ColorTranslator.FromHtml(strColor); } else if(xr.Name == ElemOverrideUrl) m_ctxEntry.OverrideUrl = ReadString(xr); @@ -689,7 +690,7 @@ namespace ModernKeePassLib.Serialization } m_bReadNextNode = false; // ReadElementString skips end tag -#if PCL +#if ModernKeePassLibPCL return xr.ReadElementContentAsString(); #else return xr.ReadElementString(); @@ -699,7 +700,7 @@ namespace ModernKeePassLib.Serialization private string ReadStringRaw(XmlReader xr) { m_bReadNextNode = false; // ReadElementString skips end tag -#if PCL +#if ModernKeePassLibPCL return xr.ReadElementContentAsString(); #else return xr.ReadElementString(); diff --git a/ModernKeePassLib/Serialization/KdbxFile.Read.cs b/ModernKeePassLib/Serialization/KdbxFile.Read.cs index 236452d..3596981 100644 --- a/ModernKeePassLib/Serialization/KdbxFile.Read.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Read.cs @@ -22,29 +22,28 @@ using System.Collections.Generic; using System.Text; using System.IO; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; using System.Security; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif using System.Xml; -using Windows.Security.Cryptography.Core; + #if !KeePassLibSD using System.IO.Compression; #else using KeePassLibSD; #endif -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Cipher; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Keys; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Cryptography.Cipher; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Keys; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { /// /// Serialization to KeePass KDBX files. @@ -155,7 +154,7 @@ namespace ModernKeePassLib.Serialization // GC.KeepAlive(br); // GC.KeepAlive(brDecrypted); } -#if !PCL +#if !ModernKeePassLibPCL catch(CryptographicException) // Thrown on invalid padding { throw new CryptographicException(KLRes.FileCorrupted); @@ -221,9 +220,9 @@ namespace ModernKeePassLib.Serialization byte[] pbHeader = msHeader.ToArray(); msHeader.Dispose(); -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - m_pbHashOfHeader = sha256.HashData(pbHeader.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + m_pbHashOfHeader = sha256.HashData(pbHeader); #else SHA256Managed sha256 = new SHA256Managed(); m_pbHashOfHeader = sha256.ComputeHash(pbHeader); @@ -333,39 +332,46 @@ namespace ModernKeePassLib.Serialization m_craInnerRandomStream = (CrsAlgorithm)uID; } - private Stream AttachStreamDecryptor(Stream s) - { - using (var ms = new MemoryStream()) - { - Debug.Assert(m_pbMasterSeed.Length == 32); - if (m_pbMasterSeed.Length != 32) - throw new FormatException(KLRes.MasterSeedLengthInvalid); - ms.Write(m_pbMasterSeed, 0, 32); + private Stream AttachStreamDecryptor(Stream s) + { + MemoryStream ms = new MemoryStream(); - byte[] pKey32 = m_pwDatabase.MasterKey.GenerateKey32(m_pbTransformSeed, - m_pwDatabase.KeyEncryptionRounds).ReadData(); - if (pKey32 == null || pKey32.Length != 32) - throw new SecurityException(KLRes.InvalidCompositeKey); - ms.Write(pKey32, 0, 32); + Debug.Assert(m_pbMasterSeed.Length == 32); + if(m_pbMasterSeed.Length != 32) + throw new FormatException(KLRes.MasterSeedLengthInvalid); + ms.Write(m_pbMasterSeed, 0, 32); -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var aesKey = sha256.HashData(ms.GetWindowsRuntimeBuffer()).ToArray(); + byte[] pKey32 = m_pwDatabase.MasterKey.GenerateKey32(m_pbTransformSeed, + m_pwDatabase.KeyEncryptionRounds).ReadData(); + if((pKey32 == null) || (pKey32.Length != 32)) + throw new SecurityException(KLRes.InvalidCompositeKey); + ms.Write(pKey32, 0, 32); + +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var aesKey = sha256.HashData(ms.ToArray()); #else SHA256Managed sha256 = new SHA256Managed(); byte[] aesKey = sha256.ComputeHash(ms.ToArray()); #endif - Array.Clear(pKey32, 0, 32); - if (aesKey == null || aesKey.Length != 32) - throw new SecurityException(KLRes.FinalKeyCreationFailed); + ms.Dispose(); + Array.Clear(pKey32, 0, 32); + + if((aesKey == null) || (aesKey.Length != 32)) + throw new SecurityException(KLRes.FinalKeyCreationFailed); + + ICipherEngine iEngine = CipherPool.GlobalPool.GetCipher(m_pwDatabase.DataCipherUuid); + if(iEngine == null) throw new SecurityException(KLRes.FileUnknownCipher); + return iEngine.DecryptStream(s, aesKey, m_pbEncryptionIV); + } + + [Obsolete] + public static List ReadEntries(PwDatabase pwDatabase, Stream msData) + { + return ReadEntries(msData); + } - ICipherEngine iEngine = CipherPool.GlobalPool.GetCipher(m_pwDatabase.DataCipherUuid); - if (iEngine == null) throw new SecurityException(KLRes.FileUnknownCipher); - return iEngine.DecryptStream(s, aesKey, m_pbEncryptionIV); - } - } - /// /// Read entries from a stream. /// diff --git a/ModernKeePassLib/Serialization/KdbxFile.Write.cs b/ModernKeePassLib/Serialization/KdbxFile.Write.cs index 174db17..29c3382 100644 --- a/ModernKeePassLib/Serialization/KdbxFile.Write.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Write.cs @@ -23,32 +23,32 @@ using System.Text; using System.IO; using System.Xml; using System.Security; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif +using System.Drawing; using System.Globalization; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.Core; + #if !KeePassLibSD using System.IO.Compression; #else using KeePassLibSD; #endif -using ModernKeePassLib.Collections; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Cryptography.Cipher; -using ModernKeePassLib.Delegates; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Keys; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Collections; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Cryptography.Cipher; +using ModernKeePassLibPCL.Delegates; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Keys; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { /// /// Serialization to KeePass KDBX files. @@ -124,7 +124,7 @@ namespace ModernKeePassLib.Serialization writerStream = hashedStream; else { Debug.Assert(false); throw new FormatException("KdbFormat"); } -#if PCL +#if ModernKeePassLibPCL var settings = new XmlWriterSettings() { Encoding = encNoBom, Indent = true, @@ -188,9 +188,9 @@ namespace ModernKeePassLib.Serialization byte[] pbHeader = ms.ToArray(); ms.Dispose(); -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - m_pbHashOfHeader = sha256.HashData(pbHeader.AsBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + m_pbHashOfHeader = sha256.HashData(pbHeader); #else SHA256Managed sha256 = new SHA256Managed(); m_pbHashOfHeader = sha256.ComputeHash(pbHeader); @@ -235,9 +235,9 @@ namespace ModernKeePassLib.Serialization throw new SecurityException(KLRes.InvalidCompositeKey); ms.Write(pKey32, 0, 32); -#if PCL - var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); - var aesKey = sha256.HashData(ms.GetWindowsRuntimeBuffer()).ToArray(); +#if ModernKeePassLibPCL + var sha256 = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); + var aesKey = sha256.HashData(ms.ToArray()); #else SHA256Managed sha256 = new SHA256Managed(); byte[] aesKey = sha256.ComputeHash(ms.ToArray()); @@ -264,7 +264,7 @@ namespace ModernKeePassLib.Serialization BinPoolBuild(pgRoot); -#if !PCL +#if !ModernKeePassLibPCL m_xmlWriter.Formatting = Formatting.Indented; m_xmlWriter.IndentChar = '\t'; m_xmlWriter.Indentation = 1; diff --git a/ModernKeePassLib/Serialization/KdbxFile.cs b/ModernKeePassLib/Serialization/KdbxFile.cs index 8fce7cb..e6871ce 100644 --- a/ModernKeePassLib/Serialization/KdbxFile.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.cs @@ -29,18 +29,18 @@ using System.Diagnostics; using System.IO.Compression; #endif -#if PCL -using Windows.Storage; +#if ModernKeePassLibPCL +using PCLStorage; #endif -using ModernKeePassLib.Collections; -using ModernKeePassLib.Cryptography; -using ModernKeePassLib.Delegates; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Security; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Collections; +using ModernKeePassLibPCL.Cryptography; +using ModernKeePassLibPCL.Delegates; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { /// /// The KdbxFile class supports saving the data to various @@ -195,7 +195,7 @@ namespace ModernKeePassLib.Serialization private PwDatabase m_pwDatabase; // Not null, see constructor -#if PCL +#if ModernKeePassLibPCL private XmlWriter m_xmlWriter = null; #else private XmlTextWriter m_xmlWriter = null; @@ -383,16 +383,16 @@ namespace ModernKeePassLib.Serialization ++iTry; } -#if PCL - while(ApplicationData.Current.RoamingFolder.GetFileAsync(strPath).GetResults() != null); +#if ModernKeePassLibPCL + while(FileSystem.Current.GetFileFromPathAsync(strPath).Result != null); #else while(File.Exists(strPath)); #endif -#if PCL +#if ModernKeePassLibPCL byte[] pbData = pb.ReadData(); - var file = ApplicationData.Current.RoamingFolder.GetFileAsync(strPath).GetResults(); - using (var stream = file.OpenAsync(FileAccessMode.ReadWrite).GetResults().AsStream()) { + var file = FileSystem.Current.GetFileFromPathAsync(strPath).Result; + using (var stream = file.OpenAsync(FileAccess.ReadAndWrite).Result) { stream.Write (pbData, 0, pbData.Length); } MemUtil.ZeroByteArray(pbData); diff --git a/ModernKeePassLib/Serialization/OldFormatException.cs b/ModernKeePassLib/Serialization/OldFormatException.cs index 46a8aa6..4984025 100644 --- a/ModernKeePassLib/Serialization/OldFormatException.cs +++ b/ModernKeePassLib/Serialization/OldFormatException.cs @@ -21,10 +21,10 @@ using System; using System.Collections.Generic; using System.Text; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Serialization +namespace ModernKeePassLibPCL.Serialization { public sealed class OldFormatException : Exception { diff --git a/ModernKeePassLib/Translation/KPControlCustomization.cs b/ModernKeePassLib/Translation/KPControlCustomization.cs index 2e4ad0b..60d849b 100644 --- a/ModernKeePassLib/Translation/KPControlCustomization.cs +++ b/ModernKeePassLib/Translation/KPControlCustomization.cs @@ -21,14 +21,17 @@ using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; +using System.Windows.Forms; using System.Diagnostics; using System.Xml.Serialization; using System.Globalization; using System.IO; +using System.Security.Cryptography; +using System.Drawing; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Utility; -namespace ModernKeePassLib.Translation +namespace ModernKeePassLibPCL.Translation { public sealed class KpccLayout { diff --git a/ModernKeePassLib/Translation/KPFormCustomization.cs b/ModernKeePassLib/Translation/KPFormCustomization.cs index 4d0f7dc..4e4c705 100644 --- a/ModernKeePassLib/Translation/KPFormCustomization.cs +++ b/ModernKeePassLib/Translation/KPFormCustomization.cs @@ -25,7 +25,7 @@ using System.Xml.Serialization; using System.Diagnostics; using System.Reflection; -namespace ModernKeePassLib.Translation +namespace ModernKeePassLibPCL.Translation { public sealed class KPFormCustomization { diff --git a/ModernKeePassLib/Translation/KPStringTable.cs b/ModernKeePassLib/Translation/KPStringTable.cs index ea55bac..9cd5c37 100644 --- a/ModernKeePassLib/Translation/KPStringTable.cs +++ b/ModernKeePassLib/Translation/KPStringTable.cs @@ -24,7 +24,7 @@ using System.Xml.Serialization; using System.Windows.Forms; using System.Diagnostics; -namespace ModernKeePassLib.Translation +namespace ModernKeePassLibPCL.Translation { public sealed class KPStringTable { diff --git a/ModernKeePassLib/Translation/KPStringTableItem.cs b/ModernKeePassLib/Translation/KPStringTableItem.cs index 4bdb234..5ebd341 100644 --- a/ModernKeePassLib/Translation/KPStringTableItem.cs +++ b/ModernKeePassLib/Translation/KPStringTableItem.cs @@ -22,7 +22,7 @@ using System.Collections.Generic; using System.Text; using System.Xml.Serialization; -namespace ModernKeePassLib.Translation +namespace ModernKeePassLibPCL.Translation { public sealed class KPStringTableItem { diff --git a/ModernKeePassLib/Translation/KPTranslation.cs b/ModernKeePassLib/Translation/KPTranslation.cs index 6e16d28..107afa1 100644 --- a/ModernKeePassLib/Translation/KPTranslation.cs +++ b/ModernKeePassLib/Translation/KPTranslation.cs @@ -28,8 +28,8 @@ using System.ComponentModel; using System.Drawing; using System.Diagnostics; -using ModernKeePassLib.Interfaces; -using ModernKeePassLib.Utility; +using ModernKeePassLibPCL.Interfaces; +using ModernKeePassLibPCL.Utility; #if !KeePassLibSD using System.IO.Compression; @@ -37,7 +37,7 @@ using System.IO.Compression; using ICSharpCode.SharpZipLib.GZip; #endif -namespace ModernKeePassLib.Translation +namespace ModernKeePassLibPCL.Translation { [XmlRoot("Translation")] public sealed class KPTranslation diff --git a/ModernKeePassLib/Translation/KPTranslationProperties.cs b/ModernKeePassLib/Translation/KPTranslationProperties.cs index 0d0e721..1255357 100644 --- a/ModernKeePassLib/Translation/KPTranslationProperties.cs +++ b/ModernKeePassLib/Translation/KPTranslationProperties.cs @@ -21,7 +21,7 @@ using System; using System.Collections.Generic; using System.Text; -namespace ModernKeePassLib.Translation +namespace ModernKeePassLibPCL.Translation { public sealed class KPTranslationProperties { diff --git a/ModernKeePassLib/Utility/AppLogEx.cs b/ModernKeePassLib/Utility/AppLogEx.cs index 0e2dc56..8a6d141 100644 --- a/ModernKeePassLib/Utility/AppLogEx.cs +++ b/ModernKeePassLib/Utility/AppLogEx.cs @@ -27,7 +27,7 @@ using System.Diagnostics; using System.IO.Compression; #endif -namespace ModernKeePassLib.Utility +namespace ModernKeePassLibPCL.Utility { /// /// Application-wide logging services. diff --git a/ModernKeePassLib/Utility/ColorTranslator.cs b/ModernKeePassLib/Utility/ColorTranslator.cs index ad5fb13..4153d7a 100644 --- a/ModernKeePassLib/Utility/ColorTranslator.cs +++ b/ModernKeePassLib/Utility/ColorTranslator.cs @@ -3,7 +3,7 @@ using System.Drawing; using System.Globalization; using System.Text.RegularExpressions; -namespace KeePass2PCL.Utility +namespace ModernKeePassLibPCL.Utility { /// /// Replacement for System.Drawing.ColorTranslator. diff --git a/ModernKeePassLib/Utility/GfxUtil.cs b/ModernKeePassLib/Utility/GfxUtil.cs index baef385..4975f96 100644 --- a/ModernKeePassLib/Utility/GfxUtil.cs +++ b/ModernKeePassLib/Utility/GfxUtil.cs @@ -21,7 +21,7 @@ using System; using System.Collections.Generic; using System.Text; using System.IO; -#if KeePass2PCL +#if ModernKeePassLibPCL using Splat; #else using System.Drawing; @@ -29,7 +29,7 @@ using System.Drawing.Imaging; #endif using System.Diagnostics; -namespace KeePass2PCL.Utility +namespace ModernKeePassLibPCL.Utility { public static class GfxUtil { @@ -40,7 +40,7 @@ namespace KeePass2PCL.Utility try { return Image.FromStream(ms); } finally { ms.Close(); } } -#elif KeePass2PCL +#elif ModernKeePassLibPCL public static IBitmap LoadImage(byte[] pb) { using (var ms = new MemoryStream(pb, false)) { diff --git a/ModernKeePassLib/Utility/MemUtil.cs b/ModernKeePassLib/Utility/MemUtil.cs index 0ff5093..62cff19 100644 --- a/ModernKeePassLib/Utility/MemUtil.cs +++ b/ModernKeePassLib/Utility/MemUtil.cs @@ -29,7 +29,7 @@ using System.IO.Compression; using KeePassLibSD; #endif -namespace ModernKeePassLib.Utility +namespace ModernKeePassLibPCL.Utility { /// /// Contains static buffer manipulation and string conversion routines. diff --git a/ModernKeePassLib/Utility/MessageService.cs b/ModernKeePassLib/Utility/MessageService.cs index 77e087b..c10296e 100644 --- a/ModernKeePassLib/Utility/MessageService.cs +++ b/ModernKeePassLib/Utility/MessageService.cs @@ -24,10 +24,10 @@ using System.Text; using System.Windows.Forms; using System.Diagnostics; -using ModernKeePassLib.Resources; -using ModernKeePassLib.Serialization; +using ModernKeePassLibPCL.Resources; +using ModernKeePassLibPCL.Serialization; -namespace ModernKeePassLib.Utility +namespace ModernKeePassLibPCL.Utility { public sealed class MessageServiceEventArgs : EventArgs { diff --git a/ModernKeePassLib/Utility/MonoWorkarounds.cs b/ModernKeePassLib/Utility/MonoWorkarounds.cs index 9683d92..83f5d3d 100644 --- a/ModernKeePassLib/Utility/MonoWorkarounds.cs +++ b/ModernKeePassLib/Utility/MonoWorkarounds.cs @@ -25,9 +25,9 @@ using System.ComponentModel; using System.Reflection; using System.Diagnostics; -using KeePass2PCL.Native; +using ModernKeePassLibPCL.Native; -namespace KeePass2PCL.Utility +namespace ModernKeePassLibPCL.Utility { public static class MonoWorkarounds { diff --git a/ModernKeePassLib/Utility/StrUtil.cs b/ModernKeePassLib/Utility/StrUtil.cs index 5287919..342f46a 100644 --- a/ModernKeePassLib/Utility/StrUtil.cs +++ b/ModernKeePassLib/Utility/StrUtil.cs @@ -21,26 +21,24 @@ using System; using System.Collections; using System.Collections.Generic; using System.Text; +using System.Drawing; using System.IO; using System.Text.RegularExpressions; -#if PCL -using Windows.Security.Cryptography; +#if ModernKeePassLibPCL +using PCLCrypto; #else using System.Security.Cryptography; #endif using System.Globalization; using System.Diagnostics; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Security.Cryptography.DataProtection; -using Windows.Storage.Streams; -using Windows.UI; -using ModernKeePassLib.Collections; -using ModernKeePassLib.Cryptography.PasswordGenerator; -using ModernKeePassLib.Security; -using ModernKeePassLib.Resources; -using UnicodeEncoding = System.Text.UnicodeEncoding; -namespace ModernKeePassLib.Utility +using ModernKeePassLibPCL.Collections; +using ModernKeePassLibPCL.Cryptography.PasswordGenerator; +using ModernKeePassLibPCL.Native; +using ModernKeePassLibPCL.Security; +using ModernKeePassLibPCL.Resources; + +namespace ModernKeePassLibPCL.Utility { /// /// Character stream class. @@ -225,7 +223,7 @@ namespace ModernKeePassLib.Utility List l = new List(); l.Add(new StrEncodingInfo(StrEncodingType.Default, -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT StrUtil.Utf8.WebName, StrUtil.Utf8, 1, null)); #else #if !KeePassLibSD @@ -236,7 +234,7 @@ namespace ModernKeePassLib.Utility Encoding.Default, (uint)Encoding.Default.GetBytes("a").Length, null)); #endif -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT l.Add(new StrEncodingInfo(StrEncodingType.Ascii, "ASCII", Encoding.ASCII, 1, null)); l.Add(new StrEncodingInfo(StrEncodingType.Utf7, @@ -250,7 +248,7 @@ namespace ModernKeePassLib.Utility l.Add(new StrEncodingInfo(StrEncodingType.Utf16BE, "Unicode (UTF-16 BE)", new UnicodeEncoding(true, false), 2, new byte[] { 0xFE, 0xFF })); -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) l.Add(new StrEncodingInfo(StrEncodingType.Utf32LE, "Unicode (UTF-32 LE)", new UTF32Encoding(false, false), 4, new byte[] { 0xFF, 0xFE, 0x0, 0x0 })); @@ -501,7 +499,7 @@ namespace ModernKeePassLib.Utility if(excp.StackTrace != null) strText += excp.StackTrace + Environment.NewLine; #if !KeePassLibSD -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT if(excp.TargetSite != null) strText += excp.TargetSite.ToString() + MessageService.NewLine; #endif @@ -527,7 +525,7 @@ namespace ModernKeePassLib.Utility if(excp.InnerException.StackTrace != null) strText += excp.InnerException.StackTrace + Environment.NewLine; #if !KeePassLibSD -#if !PCL && !KeePassRT +#if !ModernKeePassLibPCL && !KeePassRT if(excp.InnerException.TargetSite != null) strText += excp.InnerException.TargetSite.ToString(); #endif @@ -772,15 +770,15 @@ namespace ModernKeePassLib.Utility Debug.Assert(strY != null); if(strY == null) throw new ArgumentNullException("strY"); - /*if(NativeMethods.SupportsStrCmpNaturally) - return NativeMethods.StrCmpNaturally(strX, strY);*/ + if(NativeMethods.SupportsStrCmpNaturally) + return NativeMethods.StrCmpNaturally(strX, strY); strX = strX.ToLower(); // Case-insensitive comparison strY = strY.ToLower(); if(m_rxNaturalSplit == null) m_rxNaturalSplit = new Regex(@"([0-9]+)", -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT RegexOptions.None); #else RegexOptions.Compiled); @@ -1191,14 +1189,13 @@ namespace ModernKeePassLib.Utility try { byte[] pbPlain = StrUtil.Utf8.GetBytes(strPlainText); + byte[] pbEnc = ProtectedData.Protect(pbPlain, m_pbOptEnt, + DataProtectionScope.CurrentUser); - var provider = new DataProtectionProvider("Local=user"); - var pbEnc = provider.ProtectAsync(pbPlain.AsBuffer()).GetResults(); - -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) return Convert.ToBase64String(pbEnc, Base64FormattingOptions.None); #else - return Convert.ToBase64String(pbEnc.ToArray()); + return Convert.ToBase64String(pbEnc); #endif } catch(Exception) { Debug.Assert(false); } @@ -1213,9 +1210,9 @@ namespace ModernKeePassLib.Utility try { byte[] pbEnc = Convert.FromBase64String(strCipherText); - var provider = new DataProtectionProvider("Local=user"); - var pbPlain = provider.UnprotectAsync(pbEnc.AsBuffer()).GetResults().ToArray(); - + byte[] pbPlain = ProtectedData.Unprotect(pbEnc, m_pbOptEnt, + DataProtectionScope.CurrentUser); + return StrUtil.Utf8.GetString(pbPlain, 0, pbPlain.Length); } catch(Exception) { Debug.Assert(false); } @@ -1308,7 +1305,7 @@ namespace ModernKeePassLib.Utility Array.Reverse(pb); for(int i = 0; i < pb.Length; ++i) pb[i] = (byte)(pb[i] ^ 0x65); -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) return Convert.ToBase64String(pb, Base64FormattingOptions.None); #else return Convert.ToBase64String(pb); @@ -1468,7 +1465,7 @@ namespace ModernKeePassLib.Utility if(strMimeType == null) strMimeType = "application/octet-stream"; -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) return ("data:" + strMimeType + ";base64," + Convert.ToBase64String( pbData, Base64FormattingOptions.None)); #else @@ -1499,7 +1496,7 @@ namespace ModernKeePassLib.Utility MemoryStream ms = new MemoryStream(); -#if PCL || KeePassRT +#if ModernKeePassLibPCL || KeePassRT Encoding enc = StrUtil.Utf8; #else Encoding enc = Encoding.ASCII; diff --git a/ModernKeePassLib/Utility/StreamExtensions.cs b/ModernKeePassLib/Utility/StreamExtensions.cs new file mode 100644 index 0000000..499a4c2 --- /dev/null +++ b/ModernKeePassLib/Utility/StreamExtensions.cs @@ -0,0 +1,17 @@ +using System.IO; +using Windows.Storage.Streams; + +namespace ModernKeePassLibPCL.Utility +{ + public static class StreamExtensions + { + public static Stream AsStream(this IRandomAccessStream inputStream) + { + var reader = new DataReader(inputStream.GetInputStreamAt(0)); + var bytes = new byte[inputStream.Size]; + reader.LoadAsync((uint)inputStream.Size).GetResults(); + reader.ReadBytes(bytes); + return new MemoryStream(bytes); + } + } +} diff --git a/ModernKeePassLib/Utility/TimeUtil.cs b/ModernKeePassLib/Utility/TimeUtil.cs index 9963dc3..a8b7442 100644 --- a/ModernKeePassLib/Utility/TimeUtil.cs +++ b/ModernKeePassLib/Utility/TimeUtil.cs @@ -23,9 +23,9 @@ using System.Text; using System.Globalization; using System.Diagnostics; -using ModernKeePassLib.Interfaces; +using ModernKeePassLibPCL.Interfaces; -namespace ModernKeePassLib.Utility +namespace ModernKeePassLibPCL.Utility { /// /// Contains various static time structure manipulation and conversion diff --git a/ModernKeePassLib/Utility/UrlUtil.cs b/ModernKeePassLib/Utility/UrlUtil.cs index a41f1ca..6d343a2 100644 --- a/ModernKeePassLib/Utility/UrlUtil.cs +++ b/ModernKeePassLib/Utility/UrlUtil.cs @@ -24,11 +24,13 @@ using System.Runtime.InteropServices; using System.Text; using System.Diagnostics; -#if PCL -using Windows.Storage; +#if ModernKeePassLibPCL +using PCLStorage; #endif -namespace ModernKeePassLib.Utility +using ModernKeePassLibPCL.Native; + +namespace ModernKeePassLibPCL.Utility { /// /// A class containing various static path utility helper methods (like @@ -38,7 +40,7 @@ namespace ModernKeePassLib.Utility { private static readonly char[] m_vDirSeps = new char[] { '\\', '/', UrlUtil.LocalDirSepChar }; -#if !PCL +#if !ModernKeePassLibPCL private static readonly char[] m_vPathTrimCharsWs = new char[] { '\"', ' ', '\t', '\r', '\n' }; #endif @@ -47,9 +49,8 @@ namespace ModernKeePassLib.Utility { #if KeePassRT get { return '\\'; } -#elif PCL - //get { return PortablePath.DirectorySeparatorChar; } - get { return '\\'; } +#elif ModernKeePassLibPCL + get { return PortablePath.DirectorySeparatorChar; } #else get { return Path.DirectorySeparatorChar; } #endif @@ -264,7 +265,7 @@ namespace ModernKeePassLib.Utility public static bool UnhideFile(string strFile) { -#if (PCL || KeePassLibSD || KeePassRT) +#if (ModernKeePassLibPCL || KeePassLibSD || KeePassRT) return false; #else if(strFile == null) throw new ArgumentNullException("strFile"); @@ -284,7 +285,7 @@ namespace ModernKeePassLib.Utility public static bool HideFile(string strFile, bool bHide) { -#if (PCL || KeePassLibSD || KeePassRT) +#if (ModernKeePassLibPCL || KeePassLibSD || KeePassRT) return false; #else if(strFile == null) throw new ArgumentNullException("strFile"); @@ -325,7 +326,7 @@ namespace ModernKeePassLib.Utility return strTargetFile; } -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) if(NativeLib.IsUnix()) #endif { @@ -358,7 +359,7 @@ namespace ModernKeePassLib.Utility return sbRel.ToString(); } -#if (!PCL && !KeePassLibSD && !KeePassRT) +#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT) try // Windows { const int nMaxPath = NativeMethods.MAX_PATH * 2; @@ -452,13 +453,12 @@ namespace ModernKeePassLib.Utility try { #if KeePassRT - var dirT = StorageFolder.GetFolderFromPathAsync( - strPath).GetResults(); + var dirT = Windows.Storage.StorageFolder.GetFolderFromPathAsync( + strPath).AwaitEx(); + str = dirT.Path; +#elif ModernKeePassLibPCL + var dirT = FileSystem.Current.GetFolderFromPathAsync(strPath).Result; str = dirT.Path; -#elif PCL - //var dirT = FileSystem.Current.GetFolderFromPathAsync(strPath).Result; - str = ApplicationData.Current.RoamingFolder.Path; - //str = dirT.Path; #else str = Path.GetFullPath(strPath); #endif @@ -631,7 +631,7 @@ namespace ModernKeePassLib.Utility return false; } -#if !PCL +#if !ModernKeePassLibPCL public static string GetTempPath() { string strDir; @@ -654,7 +654,7 @@ namespace ModernKeePassLib.Utility } #endif -#if !PCL && !KeePassLibSD +#if !ModernKeePassLibPCL && !KeePassLibSD // Structurally mostly equivalent to UrlUtil.GetFileInfos public static List GetFilePaths(string strDir, string strPattern, SearchOption opt) diff --git a/ModernKeePassLib/app.config b/ModernKeePassLib/app.config new file mode 100644 index 0000000..81b66be --- /dev/null +++ b/ModernKeePassLib/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ModernKeePassLib/packages.config b/ModernKeePassLib/packages.config new file mode 100644 index 0000000..a1a23a0 --- /dev/null +++ b/ModernKeePassLib/packages.config @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ModernKeePassLib/project.json b/ModernKeePassLib/project.json deleted file mode 100644 index 754f7fe..0000000 --- a/ModernKeePassLib/project.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "supports": {}, - "dependencies": { - "Microsoft.NETCore.Portable.Compatibility": "1.0.2", - "NETStandard.Library": "2.0.0", - "System.Net.Requests": "4.3.0", - "System.Runtime.WindowsRuntime": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XmlSerializer": "4.3.0" - }, - "frameworks": { - "netstandard1.2": {} - } -} \ No newline at end of file diff --git a/ModernKeePassLib/project.lock.json b/ModernKeePassLib/project.lock.json deleted file mode 100644 index 8936cd5..0000000 --- a/ModernKeePassLib/project.lock.json +++ /dev/null @@ -1,2996 +0,0 @@ -{ - "locked": false, - "version": 2, - "targets": { - ".NETStandard,Version=v1.2": { - "Microsoft.NETCore.Jit/1.0.2": { - "type": "package" - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "Microsoft.NETCore.Portable.Compatibility/1.0.2": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Runtime.CoreCLR": "1.0.2" - }, - "compile": { - "ref/netstandard1.0/System.ComponentModel.DataAnnotations.dll": {}, - "ref/netstandard1.0/System.Core.dll": {}, - "ref/netstandard1.0/System.Net.dll": {}, - "ref/netstandard1.0/System.Numerics.dll": {}, - "ref/netstandard1.0/System.Runtime.Serialization.dll": {}, - "ref/netstandard1.0/System.ServiceModel.Web.dll": {}, - "ref/netstandard1.0/System.ServiceModel.dll": {}, - "ref/netstandard1.0/System.Windows.dll": {}, - "ref/netstandard1.0/System.Xml.Linq.dll": {}, - "ref/netstandard1.0/System.Xml.Serialization.dll": {}, - "ref/netstandard1.0/System.Xml.dll": {}, - "ref/netstandard1.0/System.dll": {}, - "ref/netstandard1.0/mscorlib.dll": {} - }, - "runtime": { - "lib/netstandard1.0/System.ComponentModel.DataAnnotations.dll": {}, - "lib/netstandard1.0/System.Core.dll": {}, - "lib/netstandard1.0/System.Net.dll": {}, - "lib/netstandard1.0/System.Numerics.dll": {}, - "lib/netstandard1.0/System.Runtime.Serialization.dll": {}, - "lib/netstandard1.0/System.ServiceModel.Web.dll": {}, - "lib/netstandard1.0/System.ServiceModel.dll": {}, - "lib/netstandard1.0/System.Windows.dll": {}, - "lib/netstandard1.0/System.Xml.Linq.dll": {}, - "lib/netstandard1.0/System.Xml.Serialization.dll": {}, - "lib/netstandard1.0/System.Xml.dll": {}, - "lib/netstandard1.0/System.dll": {} - } - }, - "Microsoft.NETCore.Runtime.CoreCLR/1.0.2": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Jit": "1.0.2", - "Microsoft.NETCore.Windows.ApiSets": "1.0.1" - } - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "Microsoft.NETCore.Windows.ApiSets/1.0.1": { - "type": "package" - }, - "NETStandard.Library/2.0.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Net.Http": "4.3.2", - "System.Net.Primitives": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Timer": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XDocument": "4.3.0" - }, - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "runtime.native.System/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - }, - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "System.Collections/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Collections.dll": {} - } - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Collections.Concurrent.dll": {} - } - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Diagnostics.Debug.dll": {} - } - }, - "System.Diagnostics.Tools/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Diagnostics.Tools.dll": {} - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.2/System.Diagnostics.Tracing.dll": {} - } - }, - "System.Globalization/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Globalization.dll": {} - } - }, - "System.IO/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.IO.dll": {} - } - }, - "System.IO.Compression/4.3.0": { - "type": "package", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.IO.Compression.dll": {} - } - }, - "System.Linq/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Linq.dll": {} - } - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Linq.Expressions.dll": {} - } - }, - "System.Net.Http/4.3.2": { - "type": "package", - "dependencies": { - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Net.Http.dll": {} - } - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Net.Primitives.dll": {} - } - }, - "System.Net.Requests/4.3.0": { - "type": "package", - "dependencies": { - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Net.Requests.dll": {} - } - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.ObjectModel.dll": {} - } - }, - "System.Reflection/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Reflection.dll": {} - } - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Reflection.Extensions.dll": {} - } - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Reflection.Primitives.dll": {} - } - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Resources.ResourceManager.dll": {} - } - }, - "System.Runtime/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - }, - "compile": { - "ref/netstandard1.2/System.Runtime.dll": {} - } - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Runtime.Extensions.dll": {} - } - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.2/System.Runtime.InteropServices.dll": {} - } - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "type": "package", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} - }, - "runtime": { - "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Runtime.Numerics.dll": {} - } - }, - "System.Runtime.WindowsRuntime/4.3.0": { - "type": "package", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.2/System.Runtime.WindowsRuntime.dll": {} - } - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Text.Encoding.dll": {} - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Text.Encoding.Extensions.dll": {} - } - }, - "System.Text.RegularExpressions/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Text.RegularExpressions.dll": {} - } - }, - "System.Threading/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Threading.dll": {} - } - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Threading.Tasks.dll": {} - } - }, - "System.Threading.Timer/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.2/System.Threading.Timer.dll": {} - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Xml.ReaderWriter.dll": {} - } - }, - "System.Xml.XDocument/4.3.0": { - "type": "package", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Xml.XDocument.dll": {} - } - }, - "System.Xml.XmlSerializer/4.3.0": { - "type": "package", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Xml.XmlSerializer.dll": {} - } - } - } - }, - "libraries": { - "Microsoft.NETCore.Jit/1.0.2": { - "sha512": "Ok2vWofa6X8WD9vc4pfLHwvJz1/B6t3gOAoZcjrjrQf7lQOlNIuZIZtLn3wnWX28DuQGpPJkRlBxFj7Z5txNqw==", - "type": "package", - "files": [ - "Microsoft.NETCore.Jit.1.0.2.nupkg.sha512", - "Microsoft.NETCore.Jit.nuspec", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.json" - ] - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "sha512": "+XHS7n+M0uDgC28FAzPVRvDG2SvxtkprfAdbd0Cf9Fqa8YgMuXPXvoTB0SW/W/Z6kbuvp0fVeDItXnC9rnL+XA==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "microsoft.netcore.platforms.1.1.0.nupkg.sha512", - "microsoft.netcore.platforms.nuspec", - "runtime.json" - ] - }, - "Microsoft.NETCore.Portable.Compatibility/1.0.2": { - "sha512": "sR4m1GQ8Tbg+Xdbf8Y8yC+LXKSUJUVe/B5vckCAU9Jd5MYf84gC1D0u2YeA72B4WjeWewCyHRB20ddA8hyLmqQ==", - "type": "package", - "files": [ - "Microsoft.NETCore.Portable.Compatibility.1.0.2.nupkg.sha512", - "Microsoft.NETCore.Portable.Compatibility.nuspec", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/net45/_._", - "lib/netcore50/System.ComponentModel.DataAnnotations.dll", - "lib/netcore50/System.Core.dll", - "lib/netcore50/System.Net.dll", - "lib/netcore50/System.Numerics.dll", - "lib/netcore50/System.Runtime.Serialization.dll", - "lib/netcore50/System.ServiceModel.Web.dll", - "lib/netcore50/System.ServiceModel.dll", - "lib/netcore50/System.Windows.dll", - "lib/netcore50/System.Xml.Linq.dll", - "lib/netcore50/System.Xml.Serialization.dll", - "lib/netcore50/System.Xml.dll", - "lib/netcore50/System.dll", - "lib/netstandard1.0/System.ComponentModel.DataAnnotations.dll", - "lib/netstandard1.0/System.Core.dll", - "lib/netstandard1.0/System.Net.dll", - "lib/netstandard1.0/System.Numerics.dll", - "lib/netstandard1.0/System.Runtime.Serialization.dll", - "lib/netstandard1.0/System.ServiceModel.Web.dll", - "lib/netstandard1.0/System.ServiceModel.dll", - "lib/netstandard1.0/System.Windows.dll", - "lib/netstandard1.0/System.Xml.Linq.dll", - "lib/netstandard1.0/System.Xml.Serialization.dll", - "lib/netstandard1.0/System.Xml.dll", - "lib/netstandard1.0/System.dll", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "ref/net45/_._", - "ref/netcore50/System.ComponentModel.DataAnnotations.dll", - "ref/netcore50/System.Core.dll", - "ref/netcore50/System.Net.dll", - "ref/netcore50/System.Numerics.dll", - "ref/netcore50/System.Runtime.Serialization.dll", - "ref/netcore50/System.ServiceModel.Web.dll", - "ref/netcore50/System.ServiceModel.dll", - "ref/netcore50/System.Windows.dll", - "ref/netcore50/System.Xml.Linq.dll", - "ref/netcore50/System.Xml.Serialization.dll", - "ref/netcore50/System.Xml.dll", - "ref/netcore50/System.dll", - "ref/netcore50/mscorlib.dll", - "ref/netstandard1.0/System.ComponentModel.DataAnnotations.dll", - "ref/netstandard1.0/System.Core.dll", - "ref/netstandard1.0/System.Net.dll", - "ref/netstandard1.0/System.Numerics.dll", - "ref/netstandard1.0/System.Runtime.Serialization.dll", - "ref/netstandard1.0/System.ServiceModel.Web.dll", - "ref/netstandard1.0/System.ServiceModel.dll", - "ref/netstandard1.0/System.Windows.dll", - "ref/netstandard1.0/System.Xml.Linq.dll", - "ref/netstandard1.0/System.Xml.Serialization.dll", - "ref/netstandard1.0/System.Xml.dll", - "ref/netstandard1.0/System.dll", - "ref/netstandard1.0/mscorlib.dll", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "runtimes/aot/lib/netcore50/System.ComponentModel.DataAnnotations.dll", - "runtimes/aot/lib/netcore50/System.Core.dll", - "runtimes/aot/lib/netcore50/System.Net.dll", - "runtimes/aot/lib/netcore50/System.Numerics.dll", - "runtimes/aot/lib/netcore50/System.Runtime.Serialization.dll", - "runtimes/aot/lib/netcore50/System.ServiceModel.Web.dll", - "runtimes/aot/lib/netcore50/System.ServiceModel.dll", - "runtimes/aot/lib/netcore50/System.Windows.dll", - "runtimes/aot/lib/netcore50/System.Xml.Linq.dll", - "runtimes/aot/lib/netcore50/System.Xml.Serialization.dll", - "runtimes/aot/lib/netcore50/System.Xml.dll", - "runtimes/aot/lib/netcore50/System.dll", - "runtimes/aot/lib/netcore50/mscorlib.dll" - ] - }, - "Microsoft.NETCore.Runtime.CoreCLR/1.0.2": { - "sha512": "A0x1xtTjYJWZr2DRzgfCOXgB0JkQg8twnmtTJ79wFje+IihlLbXtx6Z2AxyVokBM5ruwTedR6YdCmHk39QJdtQ==", - "type": "package", - "files": [ - "Microsoft.NETCore.Runtime.CoreCLR.1.0.2.nupkg.sha512", - "Microsoft.NETCore.Runtime.CoreCLR.nuspec", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.json" - ] - }, - "Microsoft.NETCore.Targets/1.1.0": { - "sha512": "dUUadXhJMY9VZYrGVdJDKzcXsYcUmadCTd1Kz4VQgLuZhaC+QlbC7tDkFSE+snB5TBLxmRU3ZfX8ur4buLawqQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "microsoft.netcore.targets.1.1.0.nupkg.sha512", - "microsoft.netcore.targets.nuspec", - "runtime.json" - ] - }, - "Microsoft.NETCore.Windows.ApiSets/1.0.1": { - "sha512": "q0mF2juY/56CMT5b+bi8uh90ZiH1DB8TCoaK6nOTRZPQmRiqz+8JuOIu1upvy21SZHoesIl9alCFXK5MlfKFuQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "microsoft.netcore.windows.apisets.1.0.1.nupkg.sha512", - "microsoft.netcore.windows.apisets.nuspec", - "runtime.json" - ] - }, - "NETStandard.Library/2.0.0": { - "sha512": "7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==", - "type": "package", - "files": [ - "LICENSE.TXT", - "NETStandard.Library.2.0.0.nupkg.sha512", - "NETStandard.Library.nuspec", - "THIRD-PARTY-NOTICES.TXT", - "build/NETStandard.Library.targets", - "build/netstandard2.0/NETStandard.Library.targets", - "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll", - "build/netstandard2.0/ref/System.AppContext.dll", - "build/netstandard2.0/ref/System.Collections.Concurrent.dll", - "build/netstandard2.0/ref/System.Collections.NonGeneric.dll", - "build/netstandard2.0/ref/System.Collections.Specialized.dll", - "build/netstandard2.0/ref/System.Collections.dll", - "build/netstandard2.0/ref/System.ComponentModel.Composition.dll", - "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll", - "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll", - "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll", - "build/netstandard2.0/ref/System.ComponentModel.dll", - "build/netstandard2.0/ref/System.Console.dll", - "build/netstandard2.0/ref/System.Core.dll", - "build/netstandard2.0/ref/System.Data.Common.dll", - "build/netstandard2.0/ref/System.Data.dll", - "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll", - "build/netstandard2.0/ref/System.Diagnostics.Debug.dll", - "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll", - "build/netstandard2.0/ref/System.Diagnostics.Process.dll", - "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll", - "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll", - "build/netstandard2.0/ref/System.Diagnostics.Tools.dll", - "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll", - "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll", - "build/netstandard2.0/ref/System.Drawing.Primitives.dll", - "build/netstandard2.0/ref/System.Drawing.dll", - "build/netstandard2.0/ref/System.Dynamic.Runtime.dll", - "build/netstandard2.0/ref/System.Globalization.Calendars.dll", - "build/netstandard2.0/ref/System.Globalization.Extensions.dll", - "build/netstandard2.0/ref/System.Globalization.dll", - "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll", - "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll", - "build/netstandard2.0/ref/System.IO.Compression.dll", - "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll", - "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll", - "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll", - "build/netstandard2.0/ref/System.IO.FileSystem.dll", - "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll", - "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll", - "build/netstandard2.0/ref/System.IO.Pipes.dll", - "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll", - "build/netstandard2.0/ref/System.IO.dll", - "build/netstandard2.0/ref/System.Linq.Expressions.dll", - "build/netstandard2.0/ref/System.Linq.Parallel.dll", - "build/netstandard2.0/ref/System.Linq.Queryable.dll", - "build/netstandard2.0/ref/System.Linq.dll", - "build/netstandard2.0/ref/System.Net.Http.dll", - "build/netstandard2.0/ref/System.Net.NameResolution.dll", - "build/netstandard2.0/ref/System.Net.NetworkInformation.dll", - "build/netstandard2.0/ref/System.Net.Ping.dll", - "build/netstandard2.0/ref/System.Net.Primitives.dll", - "build/netstandard2.0/ref/System.Net.Requests.dll", - "build/netstandard2.0/ref/System.Net.Security.dll", - "build/netstandard2.0/ref/System.Net.Sockets.dll", - "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll", - "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll", - "build/netstandard2.0/ref/System.Net.WebSockets.dll", - "build/netstandard2.0/ref/System.Net.dll", - "build/netstandard2.0/ref/System.Numerics.dll", - "build/netstandard2.0/ref/System.ObjectModel.dll", - "build/netstandard2.0/ref/System.Reflection.Extensions.dll", - "build/netstandard2.0/ref/System.Reflection.Primitives.dll", - "build/netstandard2.0/ref/System.Reflection.dll", - "build/netstandard2.0/ref/System.Resources.Reader.dll", - "build/netstandard2.0/ref/System.Resources.ResourceManager.dll", - "build/netstandard2.0/ref/System.Resources.Writer.dll", - "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll", - "build/netstandard2.0/ref/System.Runtime.Extensions.dll", - "build/netstandard2.0/ref/System.Runtime.Handles.dll", - "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll", - "build/netstandard2.0/ref/System.Runtime.InteropServices.dll", - "build/netstandard2.0/ref/System.Runtime.Numerics.dll", - "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll", - "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll", - "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll", - "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll", - "build/netstandard2.0/ref/System.Runtime.Serialization.dll", - "build/netstandard2.0/ref/System.Runtime.dll", - "build/netstandard2.0/ref/System.Security.Claims.dll", - "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll", - "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll", - "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll", - "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll", - "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll", - "build/netstandard2.0/ref/System.Security.Principal.dll", - "build/netstandard2.0/ref/System.Security.SecureString.dll", - "build/netstandard2.0/ref/System.ServiceModel.Web.dll", - "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll", - "build/netstandard2.0/ref/System.Text.Encoding.dll", - "build/netstandard2.0/ref/System.Text.RegularExpressions.dll", - "build/netstandard2.0/ref/System.Threading.Overlapped.dll", - "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll", - "build/netstandard2.0/ref/System.Threading.Tasks.dll", - "build/netstandard2.0/ref/System.Threading.Thread.dll", - "build/netstandard2.0/ref/System.Threading.ThreadPool.dll", - "build/netstandard2.0/ref/System.Threading.Timer.dll", - "build/netstandard2.0/ref/System.Threading.dll", - "build/netstandard2.0/ref/System.Transactions.dll", - "build/netstandard2.0/ref/System.ValueTuple.dll", - "build/netstandard2.0/ref/System.Web.dll", - "build/netstandard2.0/ref/System.Windows.dll", - "build/netstandard2.0/ref/System.Xml.Linq.dll", - "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll", - "build/netstandard2.0/ref/System.Xml.Serialization.dll", - "build/netstandard2.0/ref/System.Xml.XDocument.dll", - "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll", - "build/netstandard2.0/ref/System.Xml.XPath.dll", - "build/netstandard2.0/ref/System.Xml.XmlDocument.dll", - "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll", - "build/netstandard2.0/ref/System.Xml.dll", - "build/netstandard2.0/ref/System.dll", - "build/netstandard2.0/ref/mscorlib.dll", - "build/netstandard2.0/ref/netstandard.dll", - "build/netstandard2.0/ref/netstandard.xml", - "lib/netstandard1.0/_._" - ] - }, - "runtime.native.System/4.3.0": { - "sha512": "HhykbX7CxJfRxeSnztqdszl4wvsxTi3Q5vhPitlPQt5LKBI6q2cvXrQjBS1FTBgdA3O+rliE86qsDCu1mzLXYg==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "runtime.native.system.4.3.0.nupkg.sha512", - "runtime.native.system.nuspec" - ] - }, - "System.Collections/4.3.0": { - "sha512": "odtewSKaGFM1cRV0i2f+fF1wDTcPLisgZVNa1Jrm88mDNAxD52TRh0U51jwqs73RH91GYI4ogCkF9r7W0zVoDw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Collections.dll", - "ref/netcore50/System.Collections.xml", - "ref/netcore50/de/System.Collections.xml", - "ref/netcore50/es/System.Collections.xml", - "ref/netcore50/fr/System.Collections.xml", - "ref/netcore50/it/System.Collections.xml", - "ref/netcore50/ja/System.Collections.xml", - "ref/netcore50/ko/System.Collections.xml", - "ref/netcore50/ru/System.Collections.xml", - "ref/netcore50/zh-hans/System.Collections.xml", - "ref/netcore50/zh-hant/System.Collections.xml", - "ref/netstandard1.0/System.Collections.dll", - "ref/netstandard1.0/System.Collections.xml", - "ref/netstandard1.0/de/System.Collections.xml", - "ref/netstandard1.0/es/System.Collections.xml", - "ref/netstandard1.0/fr/System.Collections.xml", - "ref/netstandard1.0/it/System.Collections.xml", - "ref/netstandard1.0/ja/System.Collections.xml", - "ref/netstandard1.0/ko/System.Collections.xml", - "ref/netstandard1.0/ru/System.Collections.xml", - "ref/netstandard1.0/zh-hans/System.Collections.xml", - "ref/netstandard1.0/zh-hant/System.Collections.xml", - "ref/netstandard1.3/System.Collections.dll", - "ref/netstandard1.3/System.Collections.xml", - "ref/netstandard1.3/de/System.Collections.xml", - "ref/netstandard1.3/es/System.Collections.xml", - "ref/netstandard1.3/fr/System.Collections.xml", - "ref/netstandard1.3/it/System.Collections.xml", - "ref/netstandard1.3/ja/System.Collections.xml", - "ref/netstandard1.3/ko/System.Collections.xml", - "ref/netstandard1.3/ru/System.Collections.xml", - "ref/netstandard1.3/zh-hans/System.Collections.xml", - "ref/netstandard1.3/zh-hant/System.Collections.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.collections.4.3.0.nupkg.sha512", - "system.collections.nuspec" - ] - }, - "System.Collections.Concurrent/4.3.0": { - "sha512": "574p/+ur5xdbM7fZCoFJLM2pqCO4B843KdXjrxYZC9AGSiDwAtlq90gkgg3xg5YwcDPa/C7Y0Uylh2n7QIZ5nQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Collections.Concurrent.dll", - "lib/netstandard1.3/System.Collections.Concurrent.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Collections.Concurrent.dll", - "ref/netcore50/System.Collections.Concurrent.xml", - "ref/netcore50/de/System.Collections.Concurrent.xml", - "ref/netcore50/es/System.Collections.Concurrent.xml", - "ref/netcore50/fr/System.Collections.Concurrent.xml", - "ref/netcore50/it/System.Collections.Concurrent.xml", - "ref/netcore50/ja/System.Collections.Concurrent.xml", - "ref/netcore50/ko/System.Collections.Concurrent.xml", - "ref/netcore50/ru/System.Collections.Concurrent.xml", - "ref/netcore50/zh-hans/System.Collections.Concurrent.xml", - "ref/netcore50/zh-hant/System.Collections.Concurrent.xml", - "ref/netstandard1.1/System.Collections.Concurrent.dll", - "ref/netstandard1.1/System.Collections.Concurrent.xml", - "ref/netstandard1.1/de/System.Collections.Concurrent.xml", - "ref/netstandard1.1/es/System.Collections.Concurrent.xml", - "ref/netstandard1.1/fr/System.Collections.Concurrent.xml", - "ref/netstandard1.1/it/System.Collections.Concurrent.xml", - "ref/netstandard1.1/ja/System.Collections.Concurrent.xml", - "ref/netstandard1.1/ko/System.Collections.Concurrent.xml", - "ref/netstandard1.1/ru/System.Collections.Concurrent.xml", - "ref/netstandard1.1/zh-hans/System.Collections.Concurrent.xml", - "ref/netstandard1.1/zh-hant/System.Collections.Concurrent.xml", - "ref/netstandard1.3/System.Collections.Concurrent.dll", - "ref/netstandard1.3/System.Collections.Concurrent.xml", - "ref/netstandard1.3/de/System.Collections.Concurrent.xml", - "ref/netstandard1.3/es/System.Collections.Concurrent.xml", - "ref/netstandard1.3/fr/System.Collections.Concurrent.xml", - "ref/netstandard1.3/it/System.Collections.Concurrent.xml", - "ref/netstandard1.3/ja/System.Collections.Concurrent.xml", - "ref/netstandard1.3/ko/System.Collections.Concurrent.xml", - "ref/netstandard1.3/ru/System.Collections.Concurrent.xml", - "ref/netstandard1.3/zh-hans/System.Collections.Concurrent.xml", - "ref/netstandard1.3/zh-hant/System.Collections.Concurrent.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.collections.concurrent.4.3.0.nupkg.sha512", - "system.collections.concurrent.nuspec" - ] - }, - "System.Diagnostics.Debug/4.3.0": { - "sha512": "1woBURpg50IpEZZ7BK8AZe1T24GsBY+e6MyEufMAPVMZoVzRDRwejOLLfIIkgY2hgw0bk6CXAFg4dB2iFF5IVQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Diagnostics.Debug.dll", - "ref/netcore50/System.Diagnostics.Debug.xml", - "ref/netcore50/de/System.Diagnostics.Debug.xml", - "ref/netcore50/es/System.Diagnostics.Debug.xml", - "ref/netcore50/fr/System.Diagnostics.Debug.xml", - "ref/netcore50/it/System.Diagnostics.Debug.xml", - "ref/netcore50/ja/System.Diagnostics.Debug.xml", - "ref/netcore50/ko/System.Diagnostics.Debug.xml", - "ref/netcore50/ru/System.Diagnostics.Debug.xml", - "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml", - "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/System.Diagnostics.Debug.dll", - "ref/netstandard1.0/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/de/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/es/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/fr/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/it/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/ja/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/ko/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/ru/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/zh-hans/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/zh-hant/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/System.Diagnostics.Debug.dll", - "ref/netstandard1.3/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/de/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/es/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/fr/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/it/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/ja/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/ko/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/ru/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/zh-hans/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/zh-hant/System.Diagnostics.Debug.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.diagnostics.debug.4.3.0.nupkg.sha512", - "system.diagnostics.debug.nuspec" - ] - }, - "System.Diagnostics.Tools/4.3.0": { - "sha512": "cNBqRhfTSwBU0OfXuTvV+sRaE8EfJRYrkh1giN74UvENZb6SHLJw23GroCIrvyV4j03gp0a1028I4dEsRi0XoQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Diagnostics.Tools.dll", - "ref/netcore50/System.Diagnostics.Tools.xml", - "ref/netcore50/de/System.Diagnostics.Tools.xml", - "ref/netcore50/es/System.Diagnostics.Tools.xml", - "ref/netcore50/fr/System.Diagnostics.Tools.xml", - "ref/netcore50/it/System.Diagnostics.Tools.xml", - "ref/netcore50/ja/System.Diagnostics.Tools.xml", - "ref/netcore50/ko/System.Diagnostics.Tools.xml", - "ref/netcore50/ru/System.Diagnostics.Tools.xml", - "ref/netcore50/zh-hans/System.Diagnostics.Tools.xml", - "ref/netcore50/zh-hant/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/System.Diagnostics.Tools.dll", - "ref/netstandard1.0/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/de/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/es/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/fr/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/it/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/ja/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/ko/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/ru/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/zh-hans/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/zh-hant/System.Diagnostics.Tools.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.diagnostics.tools.4.3.0.nupkg.sha512", - "system.diagnostics.tools.nuspec" - ] - }, - "System.Diagnostics.Tracing/4.3.0": { - "sha512": "sE7+yUZUrkcebditDSxZLnsCwG/oI4RELRdhSmen0ig1AH1kW5b9ztJ7HQbK3sCIuY0Yd5OvqyX0pOie4T35fQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Diagnostics.Tracing.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Diagnostics.Tracing.dll", - "ref/netcore50/System.Diagnostics.Tracing.dll", - "ref/netcore50/System.Diagnostics.Tracing.xml", - "ref/netcore50/de/System.Diagnostics.Tracing.xml", - "ref/netcore50/es/System.Diagnostics.Tracing.xml", - "ref/netcore50/fr/System.Diagnostics.Tracing.xml", - "ref/netcore50/it/System.Diagnostics.Tracing.xml", - "ref/netcore50/ja/System.Diagnostics.Tracing.xml", - "ref/netcore50/ko/System.Diagnostics.Tracing.xml", - "ref/netcore50/ru/System.Diagnostics.Tracing.xml", - "ref/netcore50/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netcore50/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/System.Diagnostics.Tracing.dll", - "ref/netstandard1.1/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/System.Diagnostics.Tracing.dll", - "ref/netstandard1.2/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/System.Diagnostics.Tracing.dll", - "ref/netstandard1.3/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/System.Diagnostics.Tracing.dll", - "ref/netstandard1.5/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/zh-hant/System.Diagnostics.Tracing.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.diagnostics.tracing.4.3.0.nupkg.sha512", - "system.diagnostics.tracing.nuspec" - ] - }, - "System.Globalization/4.3.0": { - "sha512": "VqCYVd4WTRcRl/U08cJOFmyDFPs79CFfcEbav+p7Q5Sj7Lokf0R+mD0TEc+f8+GVBRtaff6b+mknJnIR44LvYQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Globalization.dll", - "ref/netcore50/System.Globalization.xml", - "ref/netcore50/de/System.Globalization.xml", - "ref/netcore50/es/System.Globalization.xml", - "ref/netcore50/fr/System.Globalization.xml", - "ref/netcore50/it/System.Globalization.xml", - "ref/netcore50/ja/System.Globalization.xml", - "ref/netcore50/ko/System.Globalization.xml", - "ref/netcore50/ru/System.Globalization.xml", - "ref/netcore50/zh-hans/System.Globalization.xml", - "ref/netcore50/zh-hant/System.Globalization.xml", - "ref/netstandard1.0/System.Globalization.dll", - "ref/netstandard1.0/System.Globalization.xml", - "ref/netstandard1.0/de/System.Globalization.xml", - "ref/netstandard1.0/es/System.Globalization.xml", - "ref/netstandard1.0/fr/System.Globalization.xml", - "ref/netstandard1.0/it/System.Globalization.xml", - "ref/netstandard1.0/ja/System.Globalization.xml", - "ref/netstandard1.0/ko/System.Globalization.xml", - "ref/netstandard1.0/ru/System.Globalization.xml", - "ref/netstandard1.0/zh-hans/System.Globalization.xml", - "ref/netstandard1.0/zh-hant/System.Globalization.xml", - "ref/netstandard1.3/System.Globalization.dll", - "ref/netstandard1.3/System.Globalization.xml", - "ref/netstandard1.3/de/System.Globalization.xml", - "ref/netstandard1.3/es/System.Globalization.xml", - "ref/netstandard1.3/fr/System.Globalization.xml", - "ref/netstandard1.3/it/System.Globalization.xml", - "ref/netstandard1.3/ja/System.Globalization.xml", - "ref/netstandard1.3/ko/System.Globalization.xml", - "ref/netstandard1.3/ru/System.Globalization.xml", - "ref/netstandard1.3/zh-hans/System.Globalization.xml", - "ref/netstandard1.3/zh-hant/System.Globalization.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.globalization.4.3.0.nupkg.sha512", - "system.globalization.nuspec" - ] - }, - "System.IO/4.3.0": { - "sha512": "YsCDVvNbX1fQsiQuBRb7Wy/v+L14iJ0JhzInNXsblcU2wUZ8fD33Q5RBRZ4PUu2iZKQ6KnrfaOxWScxoGcIoPA==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.IO.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.IO.dll", - "ref/netcore50/System.IO.dll", - "ref/netcore50/System.IO.xml", - "ref/netcore50/de/System.IO.xml", - "ref/netcore50/es/System.IO.xml", - "ref/netcore50/fr/System.IO.xml", - "ref/netcore50/it/System.IO.xml", - "ref/netcore50/ja/System.IO.xml", - "ref/netcore50/ko/System.IO.xml", - "ref/netcore50/ru/System.IO.xml", - "ref/netcore50/zh-hans/System.IO.xml", - "ref/netcore50/zh-hant/System.IO.xml", - "ref/netstandard1.0/System.IO.dll", - "ref/netstandard1.0/System.IO.xml", - "ref/netstandard1.0/de/System.IO.xml", - "ref/netstandard1.0/es/System.IO.xml", - "ref/netstandard1.0/fr/System.IO.xml", - "ref/netstandard1.0/it/System.IO.xml", - "ref/netstandard1.0/ja/System.IO.xml", - "ref/netstandard1.0/ko/System.IO.xml", - "ref/netstandard1.0/ru/System.IO.xml", - "ref/netstandard1.0/zh-hans/System.IO.xml", - "ref/netstandard1.0/zh-hant/System.IO.xml", - "ref/netstandard1.3/System.IO.dll", - "ref/netstandard1.3/System.IO.xml", - "ref/netstandard1.3/de/System.IO.xml", - "ref/netstandard1.3/es/System.IO.xml", - "ref/netstandard1.3/fr/System.IO.xml", - "ref/netstandard1.3/it/System.IO.xml", - "ref/netstandard1.3/ja/System.IO.xml", - "ref/netstandard1.3/ko/System.IO.xml", - "ref/netstandard1.3/ru/System.IO.xml", - "ref/netstandard1.3/zh-hans/System.IO.xml", - "ref/netstandard1.3/zh-hant/System.IO.xml", - "ref/netstandard1.5/System.IO.dll", - "ref/netstandard1.5/System.IO.xml", - "ref/netstandard1.5/de/System.IO.xml", - "ref/netstandard1.5/es/System.IO.xml", - "ref/netstandard1.5/fr/System.IO.xml", - "ref/netstandard1.5/it/System.IO.xml", - "ref/netstandard1.5/ja/System.IO.xml", - "ref/netstandard1.5/ko/System.IO.xml", - "ref/netstandard1.5/ru/System.IO.xml", - "ref/netstandard1.5/zh-hans/System.IO.xml", - "ref/netstandard1.5/zh-hant/System.IO.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.io.4.3.0.nupkg.sha512", - "system.io.nuspec" - ] - }, - "System.IO.Compression/4.3.0": { - "sha512": "+G+M250pfD6KOqeADMPvbO2jPqV0UMtE3YECosM/p5bU0Krytlo0qNBrqtbk7uHJS3kOle5kk3T7zlxd/z/pTA==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net46/System.IO.Compression.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net46/System.IO.Compression.dll", - "ref/netcore50/System.IO.Compression.dll", - "ref/netcore50/System.IO.Compression.xml", - "ref/netcore50/de/System.IO.Compression.xml", - "ref/netcore50/es/System.IO.Compression.xml", - "ref/netcore50/fr/System.IO.Compression.xml", - "ref/netcore50/it/System.IO.Compression.xml", - "ref/netcore50/ja/System.IO.Compression.xml", - "ref/netcore50/ko/System.IO.Compression.xml", - "ref/netcore50/ru/System.IO.Compression.xml", - "ref/netcore50/zh-hans/System.IO.Compression.xml", - "ref/netcore50/zh-hant/System.IO.Compression.xml", - "ref/netstandard1.1/System.IO.Compression.dll", - "ref/netstandard1.1/System.IO.Compression.xml", - "ref/netstandard1.1/de/System.IO.Compression.xml", - "ref/netstandard1.1/es/System.IO.Compression.xml", - "ref/netstandard1.1/fr/System.IO.Compression.xml", - "ref/netstandard1.1/it/System.IO.Compression.xml", - "ref/netstandard1.1/ja/System.IO.Compression.xml", - "ref/netstandard1.1/ko/System.IO.Compression.xml", - "ref/netstandard1.1/ru/System.IO.Compression.xml", - "ref/netstandard1.1/zh-hans/System.IO.Compression.xml", - "ref/netstandard1.1/zh-hant/System.IO.Compression.xml", - "ref/netstandard1.3/System.IO.Compression.dll", - "ref/netstandard1.3/System.IO.Compression.xml", - "ref/netstandard1.3/de/System.IO.Compression.xml", - "ref/netstandard1.3/es/System.IO.Compression.xml", - "ref/netstandard1.3/fr/System.IO.Compression.xml", - "ref/netstandard1.3/it/System.IO.Compression.xml", - "ref/netstandard1.3/ja/System.IO.Compression.xml", - "ref/netstandard1.3/ko/System.IO.Compression.xml", - "ref/netstandard1.3/ru/System.IO.Compression.xml", - "ref/netstandard1.3/zh-hans/System.IO.Compression.xml", - "ref/netstandard1.3/zh-hant/System.IO.Compression.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll", - "runtimes/win/lib/net46/System.IO.Compression.dll", - "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll", - "system.io.compression.4.3.0.nupkg.sha512", - "system.io.compression.nuspec" - ] - }, - "System.Linq/4.3.0": { - "sha512": "w9wJuI2T9KXZmY/AS7E4PUVzGPS0jhlx1YlKsgzShgNj6Vk9iN7R8qRwWB2kvD+Ki58cpRwM87fVD5yivijJEg==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net463/System.Linq.dll", - "lib/netcore50/System.Linq.dll", - "lib/netstandard1.6/System.Linq.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net463/System.Linq.dll", - "ref/netcore50/System.Linq.dll", - "ref/netcore50/System.Linq.xml", - "ref/netcore50/de/System.Linq.xml", - "ref/netcore50/es/System.Linq.xml", - "ref/netcore50/fr/System.Linq.xml", - "ref/netcore50/it/System.Linq.xml", - "ref/netcore50/ja/System.Linq.xml", - "ref/netcore50/ko/System.Linq.xml", - "ref/netcore50/ru/System.Linq.xml", - "ref/netcore50/zh-hans/System.Linq.xml", - "ref/netcore50/zh-hant/System.Linq.xml", - "ref/netstandard1.0/System.Linq.dll", - "ref/netstandard1.0/System.Linq.xml", - "ref/netstandard1.0/de/System.Linq.xml", - "ref/netstandard1.0/es/System.Linq.xml", - "ref/netstandard1.0/fr/System.Linq.xml", - "ref/netstandard1.0/it/System.Linq.xml", - "ref/netstandard1.0/ja/System.Linq.xml", - "ref/netstandard1.0/ko/System.Linq.xml", - "ref/netstandard1.0/ru/System.Linq.xml", - "ref/netstandard1.0/zh-hans/System.Linq.xml", - "ref/netstandard1.0/zh-hant/System.Linq.xml", - "ref/netstandard1.6/System.Linq.dll", - "ref/netstandard1.6/System.Linq.xml", - "ref/netstandard1.6/de/System.Linq.xml", - "ref/netstandard1.6/es/System.Linq.xml", - "ref/netstandard1.6/fr/System.Linq.xml", - "ref/netstandard1.6/it/System.Linq.xml", - "ref/netstandard1.6/ja/System.Linq.xml", - "ref/netstandard1.6/ko/System.Linq.xml", - "ref/netstandard1.6/ru/System.Linq.xml", - "ref/netstandard1.6/zh-hans/System.Linq.xml", - "ref/netstandard1.6/zh-hant/System.Linq.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.linq.4.3.0.nupkg.sha512", - "system.linq.nuspec" - ] - }, - "System.Linq.Expressions/4.3.0": { - "sha512": "EjVvFE83n3Ih05PIJ611aMBS321nFT7FS1yIpcnVHLVB3GqaCWaVPMg7/kklhlohrUPXJ4PS5CeUlIBmXMva8w==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net463/System.Linq.Expressions.dll", - "lib/netcore50/System.Linq.Expressions.dll", - "lib/netstandard1.6/System.Linq.Expressions.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net463/System.Linq.Expressions.dll", - "ref/netcore50/System.Linq.Expressions.dll", - "ref/netcore50/System.Linq.Expressions.xml", - "ref/netcore50/de/System.Linq.Expressions.xml", - "ref/netcore50/es/System.Linq.Expressions.xml", - "ref/netcore50/fr/System.Linq.Expressions.xml", - "ref/netcore50/it/System.Linq.Expressions.xml", - "ref/netcore50/ja/System.Linq.Expressions.xml", - "ref/netcore50/ko/System.Linq.Expressions.xml", - "ref/netcore50/ru/System.Linq.Expressions.xml", - "ref/netcore50/zh-hans/System.Linq.Expressions.xml", - "ref/netcore50/zh-hant/System.Linq.Expressions.xml", - "ref/netstandard1.0/System.Linq.Expressions.dll", - "ref/netstandard1.0/System.Linq.Expressions.xml", - "ref/netstandard1.0/de/System.Linq.Expressions.xml", - "ref/netstandard1.0/es/System.Linq.Expressions.xml", - "ref/netstandard1.0/fr/System.Linq.Expressions.xml", - "ref/netstandard1.0/it/System.Linq.Expressions.xml", - "ref/netstandard1.0/ja/System.Linq.Expressions.xml", - "ref/netstandard1.0/ko/System.Linq.Expressions.xml", - "ref/netstandard1.0/ru/System.Linq.Expressions.xml", - "ref/netstandard1.0/zh-hans/System.Linq.Expressions.xml", - "ref/netstandard1.0/zh-hant/System.Linq.Expressions.xml", - "ref/netstandard1.3/System.Linq.Expressions.dll", - "ref/netstandard1.3/System.Linq.Expressions.xml", - "ref/netstandard1.3/de/System.Linq.Expressions.xml", - "ref/netstandard1.3/es/System.Linq.Expressions.xml", - "ref/netstandard1.3/fr/System.Linq.Expressions.xml", - "ref/netstandard1.3/it/System.Linq.Expressions.xml", - "ref/netstandard1.3/ja/System.Linq.Expressions.xml", - "ref/netstandard1.3/ko/System.Linq.Expressions.xml", - "ref/netstandard1.3/ru/System.Linq.Expressions.xml", - "ref/netstandard1.3/zh-hans/System.Linq.Expressions.xml", - "ref/netstandard1.3/zh-hant/System.Linq.Expressions.xml", - "ref/netstandard1.6/System.Linq.Expressions.dll", - "ref/netstandard1.6/System.Linq.Expressions.xml", - "ref/netstandard1.6/de/System.Linq.Expressions.xml", - "ref/netstandard1.6/es/System.Linq.Expressions.xml", - "ref/netstandard1.6/fr/System.Linq.Expressions.xml", - "ref/netstandard1.6/it/System.Linq.Expressions.xml", - "ref/netstandard1.6/ja/System.Linq.Expressions.xml", - "ref/netstandard1.6/ko/System.Linq.Expressions.xml", - "ref/netstandard1.6/ru/System.Linq.Expressions.xml", - "ref/netstandard1.6/zh-hans/System.Linq.Expressions.xml", - "ref/netstandard1.6/zh-hant/System.Linq.Expressions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Linq.Expressions.dll", - "system.linq.expressions.4.3.0.nupkg.sha512", - "system.linq.expressions.nuspec" - ] - }, - "System.Net.Http/4.3.2": { - "sha512": "wMTk4xwcImunKYNGcMC35TFe/8LKBhzc1INgatMHmbGt6hNu3IsxcwpYD8r2zstiv64uKK+GTgfxJ7Lh91Qnqw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/Xamarinmac20/_._", - "lib/monoandroid10/_._", - "lib/monotouch10/_._", - "lib/net45/_._", - "lib/net46/System.Net.Http.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/Xamarinmac20/_._", - "ref/monoandroid10/_._", - "ref/monotouch10/_._", - "ref/net45/_._", - "ref/net46/System.Net.Http.dll", - "ref/netcore50/System.Net.Http.dll", - "ref/netstandard1.1/System.Net.Http.dll", - "ref/netstandard1.3/System.Net.Http.dll", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll", - "runtimes/win/lib/net46/System.Net.Http.dll", - "runtimes/win/lib/netcore50/System.Net.Http.dll", - "runtimes/win/lib/netstandard1.3/System.Net.Http.dll", - "system.net.http.4.3.2.nupkg.sha512", - "system.net.http.nuspec" - ] - }, - "System.Net.Primitives/4.3.0": { - "sha512": "Ds2qmHelD5W4JYm+FOub7/4OWbVWKXXsL4+pVVhZxd3urA9yYI6UFPMEnIbK9mCG7rvoli+PVpbczlcy8H+Jmg==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Net.Primitives.dll", - "ref/netcore50/System.Net.Primitives.xml", - "ref/netcore50/de/System.Net.Primitives.xml", - "ref/netcore50/es/System.Net.Primitives.xml", - "ref/netcore50/fr/System.Net.Primitives.xml", - "ref/netcore50/it/System.Net.Primitives.xml", - "ref/netcore50/ja/System.Net.Primitives.xml", - "ref/netcore50/ko/System.Net.Primitives.xml", - "ref/netcore50/ru/System.Net.Primitives.xml", - "ref/netcore50/zh-hans/System.Net.Primitives.xml", - "ref/netcore50/zh-hant/System.Net.Primitives.xml", - "ref/netstandard1.0/System.Net.Primitives.dll", - "ref/netstandard1.0/System.Net.Primitives.xml", - "ref/netstandard1.0/de/System.Net.Primitives.xml", - "ref/netstandard1.0/es/System.Net.Primitives.xml", - "ref/netstandard1.0/fr/System.Net.Primitives.xml", - "ref/netstandard1.0/it/System.Net.Primitives.xml", - "ref/netstandard1.0/ja/System.Net.Primitives.xml", - "ref/netstandard1.0/ko/System.Net.Primitives.xml", - "ref/netstandard1.0/ru/System.Net.Primitives.xml", - "ref/netstandard1.0/zh-hans/System.Net.Primitives.xml", - "ref/netstandard1.0/zh-hant/System.Net.Primitives.xml", - "ref/netstandard1.1/System.Net.Primitives.dll", - "ref/netstandard1.1/System.Net.Primitives.xml", - "ref/netstandard1.1/de/System.Net.Primitives.xml", - "ref/netstandard1.1/es/System.Net.Primitives.xml", - "ref/netstandard1.1/fr/System.Net.Primitives.xml", - "ref/netstandard1.1/it/System.Net.Primitives.xml", - "ref/netstandard1.1/ja/System.Net.Primitives.xml", - "ref/netstandard1.1/ko/System.Net.Primitives.xml", - "ref/netstandard1.1/ru/System.Net.Primitives.xml", - "ref/netstandard1.1/zh-hans/System.Net.Primitives.xml", - "ref/netstandard1.1/zh-hant/System.Net.Primitives.xml", - "ref/netstandard1.3/System.Net.Primitives.dll", - "ref/netstandard1.3/System.Net.Primitives.xml", - "ref/netstandard1.3/de/System.Net.Primitives.xml", - "ref/netstandard1.3/es/System.Net.Primitives.xml", - "ref/netstandard1.3/fr/System.Net.Primitives.xml", - "ref/netstandard1.3/it/System.Net.Primitives.xml", - "ref/netstandard1.3/ja/System.Net.Primitives.xml", - "ref/netstandard1.3/ko/System.Net.Primitives.xml", - "ref/netstandard1.3/ru/System.Net.Primitives.xml", - "ref/netstandard1.3/zh-hans/System.Net.Primitives.xml", - "ref/netstandard1.3/zh-hant/System.Net.Primitives.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.net.primitives.4.3.0.nupkg.sha512", - "system.net.primitives.nuspec" - ] - }, - "System.Net.Requests/4.3.0": { - "sha512": "ZvKLMYR1iGBh3ianvGnqMojG8uLtq1jhviCrojW2QUZEPUYKhB28gtLt5iW51nsvmGhFh1WTHvh9CenMuxzLbQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net46/_._", - "ref/netcore50/System.Net.Requests.dll", - "ref/netcore50/System.Net.Requests.xml", - "ref/netcore50/de/System.Net.Requests.xml", - "ref/netcore50/es/System.Net.Requests.xml", - "ref/netcore50/fr/System.Net.Requests.xml", - "ref/netcore50/it/System.Net.Requests.xml", - "ref/netcore50/ja/System.Net.Requests.xml", - "ref/netcore50/ko/System.Net.Requests.xml", - "ref/netcore50/ru/System.Net.Requests.xml", - "ref/netcore50/zh-hans/System.Net.Requests.xml", - "ref/netcore50/zh-hant/System.Net.Requests.xml", - "ref/netstandard1.0/System.Net.Requests.dll", - "ref/netstandard1.0/System.Net.Requests.xml", - "ref/netstandard1.0/de/System.Net.Requests.xml", - "ref/netstandard1.0/es/System.Net.Requests.xml", - "ref/netstandard1.0/fr/System.Net.Requests.xml", - "ref/netstandard1.0/it/System.Net.Requests.xml", - "ref/netstandard1.0/ja/System.Net.Requests.xml", - "ref/netstandard1.0/ko/System.Net.Requests.xml", - "ref/netstandard1.0/ru/System.Net.Requests.xml", - "ref/netstandard1.0/zh-hans/System.Net.Requests.xml", - "ref/netstandard1.0/zh-hant/System.Net.Requests.xml", - "ref/netstandard1.1/System.Net.Requests.dll", - "ref/netstandard1.1/System.Net.Requests.xml", - "ref/netstandard1.1/de/System.Net.Requests.xml", - "ref/netstandard1.1/es/System.Net.Requests.xml", - "ref/netstandard1.1/fr/System.Net.Requests.xml", - "ref/netstandard1.1/it/System.Net.Requests.xml", - "ref/netstandard1.1/ja/System.Net.Requests.xml", - "ref/netstandard1.1/ko/System.Net.Requests.xml", - "ref/netstandard1.1/ru/System.Net.Requests.xml", - "ref/netstandard1.1/zh-hans/System.Net.Requests.xml", - "ref/netstandard1.1/zh-hant/System.Net.Requests.xml", - "ref/netstandard1.3/System.Net.Requests.dll", - "ref/netstandard1.3/System.Net.Requests.xml", - "ref/netstandard1.3/de/System.Net.Requests.xml", - "ref/netstandard1.3/es/System.Net.Requests.xml", - "ref/netstandard1.3/fr/System.Net.Requests.xml", - "ref/netstandard1.3/it/System.Net.Requests.xml", - "ref/netstandard1.3/ja/System.Net.Requests.xml", - "ref/netstandard1.3/ko/System.Net.Requests.xml", - "ref/netstandard1.3/ru/System.Net.Requests.xml", - "ref/netstandard1.3/zh-hans/System.Net.Requests.xml", - "ref/netstandard1.3/zh-hant/System.Net.Requests.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.3/System.Net.Requests.dll", - "runtimes/win/lib/net46/_._", - "runtimes/win/lib/netstandard1.3/System.Net.Requests.dll", - "system.net.requests.4.3.0.nupkg.sha512", - "system.net.requests.nuspec" - ] - }, - "System.ObjectModel/4.3.0": { - "sha512": "yXnz+D4S6l25VS9SuCrS8cyVKWgeAQJ/v2epBlTL1cM+Xs6rx0/6gUAXTTruCZiO1UjrhX56isX8DKL267D5gQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.ObjectModel.dll", - "lib/netstandard1.3/System.ObjectModel.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.ObjectModel.dll", - "ref/netcore50/System.ObjectModel.xml", - "ref/netcore50/de/System.ObjectModel.xml", - "ref/netcore50/es/System.ObjectModel.xml", - "ref/netcore50/fr/System.ObjectModel.xml", - "ref/netcore50/it/System.ObjectModel.xml", - "ref/netcore50/ja/System.ObjectModel.xml", - "ref/netcore50/ko/System.ObjectModel.xml", - "ref/netcore50/ru/System.ObjectModel.xml", - "ref/netcore50/zh-hans/System.ObjectModel.xml", - "ref/netcore50/zh-hant/System.ObjectModel.xml", - "ref/netstandard1.0/System.ObjectModel.dll", - "ref/netstandard1.0/System.ObjectModel.xml", - "ref/netstandard1.0/de/System.ObjectModel.xml", - "ref/netstandard1.0/es/System.ObjectModel.xml", - "ref/netstandard1.0/fr/System.ObjectModel.xml", - "ref/netstandard1.0/it/System.ObjectModel.xml", - "ref/netstandard1.0/ja/System.ObjectModel.xml", - "ref/netstandard1.0/ko/System.ObjectModel.xml", - "ref/netstandard1.0/ru/System.ObjectModel.xml", - "ref/netstandard1.0/zh-hans/System.ObjectModel.xml", - "ref/netstandard1.0/zh-hant/System.ObjectModel.xml", - "ref/netstandard1.3/System.ObjectModel.dll", - "ref/netstandard1.3/System.ObjectModel.xml", - "ref/netstandard1.3/de/System.ObjectModel.xml", - "ref/netstandard1.3/es/System.ObjectModel.xml", - "ref/netstandard1.3/fr/System.ObjectModel.xml", - "ref/netstandard1.3/it/System.ObjectModel.xml", - "ref/netstandard1.3/ja/System.ObjectModel.xml", - "ref/netstandard1.3/ko/System.ObjectModel.xml", - "ref/netstandard1.3/ru/System.ObjectModel.xml", - "ref/netstandard1.3/zh-hans/System.ObjectModel.xml", - "ref/netstandard1.3/zh-hant/System.ObjectModel.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.objectmodel.4.3.0.nupkg.sha512", - "system.objectmodel.nuspec" - ] - }, - "System.Reflection/4.3.0": { - "sha512": "gWKa+cLy5BkkDxp6iuKYNQVNlxir4VYpR7siMIW8vQI7lR9E5PsR+Fmm6h+ZzTCu2XFMf9sNvRYRw727QmJ0fw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Reflection.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Reflection.dll", - "ref/netcore50/System.Reflection.dll", - "ref/netcore50/System.Reflection.xml", - "ref/netcore50/de/System.Reflection.xml", - "ref/netcore50/es/System.Reflection.xml", - "ref/netcore50/fr/System.Reflection.xml", - "ref/netcore50/it/System.Reflection.xml", - "ref/netcore50/ja/System.Reflection.xml", - "ref/netcore50/ko/System.Reflection.xml", - "ref/netcore50/ru/System.Reflection.xml", - "ref/netcore50/zh-hans/System.Reflection.xml", - "ref/netcore50/zh-hant/System.Reflection.xml", - "ref/netstandard1.0/System.Reflection.dll", - "ref/netstandard1.0/System.Reflection.xml", - "ref/netstandard1.0/de/System.Reflection.xml", - "ref/netstandard1.0/es/System.Reflection.xml", - "ref/netstandard1.0/fr/System.Reflection.xml", - "ref/netstandard1.0/it/System.Reflection.xml", - "ref/netstandard1.0/ja/System.Reflection.xml", - "ref/netstandard1.0/ko/System.Reflection.xml", - "ref/netstandard1.0/ru/System.Reflection.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.xml", - "ref/netstandard1.3/System.Reflection.dll", - "ref/netstandard1.3/System.Reflection.xml", - "ref/netstandard1.3/de/System.Reflection.xml", - "ref/netstandard1.3/es/System.Reflection.xml", - "ref/netstandard1.3/fr/System.Reflection.xml", - "ref/netstandard1.3/it/System.Reflection.xml", - "ref/netstandard1.3/ja/System.Reflection.xml", - "ref/netstandard1.3/ko/System.Reflection.xml", - "ref/netstandard1.3/ru/System.Reflection.xml", - "ref/netstandard1.3/zh-hans/System.Reflection.xml", - "ref/netstandard1.3/zh-hant/System.Reflection.xml", - "ref/netstandard1.5/System.Reflection.dll", - "ref/netstandard1.5/System.Reflection.xml", - "ref/netstandard1.5/de/System.Reflection.xml", - "ref/netstandard1.5/es/System.Reflection.xml", - "ref/netstandard1.5/fr/System.Reflection.xml", - "ref/netstandard1.5/it/System.Reflection.xml", - "ref/netstandard1.5/ja/System.Reflection.xml", - "ref/netstandard1.5/ko/System.Reflection.xml", - "ref/netstandard1.5/ru/System.Reflection.xml", - "ref/netstandard1.5/zh-hans/System.Reflection.xml", - "ref/netstandard1.5/zh-hant/System.Reflection.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.reflection.4.3.0.nupkg.sha512", - "system.reflection.nuspec" - ] - }, - "System.Reflection.Extensions/4.3.0": { - "sha512": "MZ0vyVl3i7SpA8hLhKjb8wrJ9s4a/bggVHasDqNrbpbkbyMaaYxi8dUDduh5K7RFAHJaR45BAW7+TMbpoQ7Oqg==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Reflection.Extensions.dll", - "ref/netcore50/System.Reflection.Extensions.xml", - "ref/netcore50/de/System.Reflection.Extensions.xml", - "ref/netcore50/es/System.Reflection.Extensions.xml", - "ref/netcore50/fr/System.Reflection.Extensions.xml", - "ref/netcore50/it/System.Reflection.Extensions.xml", - "ref/netcore50/ja/System.Reflection.Extensions.xml", - "ref/netcore50/ko/System.Reflection.Extensions.xml", - "ref/netcore50/ru/System.Reflection.Extensions.xml", - "ref/netcore50/zh-hans/System.Reflection.Extensions.xml", - "ref/netcore50/zh-hant/System.Reflection.Extensions.xml", - "ref/netstandard1.0/System.Reflection.Extensions.dll", - "ref/netstandard1.0/System.Reflection.Extensions.xml", - "ref/netstandard1.0/de/System.Reflection.Extensions.xml", - "ref/netstandard1.0/es/System.Reflection.Extensions.xml", - "ref/netstandard1.0/fr/System.Reflection.Extensions.xml", - "ref/netstandard1.0/it/System.Reflection.Extensions.xml", - "ref/netstandard1.0/ja/System.Reflection.Extensions.xml", - "ref/netstandard1.0/ko/System.Reflection.Extensions.xml", - "ref/netstandard1.0/ru/System.Reflection.Extensions.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.Extensions.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.Extensions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.reflection.extensions.4.3.0.nupkg.sha512", - "system.reflection.extensions.nuspec" - ] - }, - "System.Reflection.Primitives/4.3.0": { - "sha512": "QcIJSKt4ksNWnTWkNc7fqdnaARA4or2omXIXVi1hzccV8AixhcW4gVNfpdz/jE1cldDBRSeySM5PbF8M3GUHbA==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Reflection.Primitives.dll", - "ref/netcore50/System.Reflection.Primitives.xml", - "ref/netcore50/de/System.Reflection.Primitives.xml", - "ref/netcore50/es/System.Reflection.Primitives.xml", - "ref/netcore50/fr/System.Reflection.Primitives.xml", - "ref/netcore50/it/System.Reflection.Primitives.xml", - "ref/netcore50/ja/System.Reflection.Primitives.xml", - "ref/netcore50/ko/System.Reflection.Primitives.xml", - "ref/netcore50/ru/System.Reflection.Primitives.xml", - "ref/netcore50/zh-hans/System.Reflection.Primitives.xml", - "ref/netcore50/zh-hant/System.Reflection.Primitives.xml", - "ref/netstandard1.0/System.Reflection.Primitives.dll", - "ref/netstandard1.0/System.Reflection.Primitives.xml", - "ref/netstandard1.0/de/System.Reflection.Primitives.xml", - "ref/netstandard1.0/es/System.Reflection.Primitives.xml", - "ref/netstandard1.0/fr/System.Reflection.Primitives.xml", - "ref/netstandard1.0/it/System.Reflection.Primitives.xml", - "ref/netstandard1.0/ja/System.Reflection.Primitives.xml", - "ref/netstandard1.0/ko/System.Reflection.Primitives.xml", - "ref/netstandard1.0/ru/System.Reflection.Primitives.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.reflection.primitives.4.3.0.nupkg.sha512", - "system.reflection.primitives.nuspec" - ] - }, - "System.Resources.ResourceManager/4.3.0": { - "sha512": "DRxdwZJGYZA+sp8Ht53dvNPr8NLsbBzctIrpbx4UFylYbDsoDQzJwchNarrRnwiIfsZHkXYA3HCKewNr62XiRw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Resources.ResourceManager.dll", - "ref/netcore50/System.Resources.ResourceManager.xml", - "ref/netcore50/de/System.Resources.ResourceManager.xml", - "ref/netcore50/es/System.Resources.ResourceManager.xml", - "ref/netcore50/fr/System.Resources.ResourceManager.xml", - "ref/netcore50/it/System.Resources.ResourceManager.xml", - "ref/netcore50/ja/System.Resources.ResourceManager.xml", - "ref/netcore50/ko/System.Resources.ResourceManager.xml", - "ref/netcore50/ru/System.Resources.ResourceManager.xml", - "ref/netcore50/zh-hans/System.Resources.ResourceManager.xml", - "ref/netcore50/zh-hant/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/System.Resources.ResourceManager.dll", - "ref/netstandard1.0/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/de/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/es/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/fr/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/it/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/ja/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/ko/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/ru/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/zh-hans/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/zh-hant/System.Resources.ResourceManager.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.resources.resourcemanager.4.3.0.nupkg.sha512", - "system.resources.resourcemanager.nuspec" - ] - }, - "System.Runtime/4.3.0": { - "sha512": "a+38DiHlk4UA1NMs7Ty0/izJb/ukQtEhDgoy2xrGppdA/nVOkOC1JtR9HCcYYHfxXxQNNsjQ66NNvrbM3oVTrw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Runtime.dll", - "lib/portable-net45+win8+wp80+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Runtime.dll", - "ref/netcore50/System.Runtime.dll", - "ref/netcore50/System.Runtime.xml", - "ref/netcore50/de/System.Runtime.xml", - "ref/netcore50/es/System.Runtime.xml", - "ref/netcore50/fr/System.Runtime.xml", - "ref/netcore50/it/System.Runtime.xml", - "ref/netcore50/ja/System.Runtime.xml", - "ref/netcore50/ko/System.Runtime.xml", - "ref/netcore50/ru/System.Runtime.xml", - "ref/netcore50/zh-hans/System.Runtime.xml", - "ref/netcore50/zh-hant/System.Runtime.xml", - "ref/netstandard1.0/System.Runtime.dll", - "ref/netstandard1.0/System.Runtime.xml", - "ref/netstandard1.0/de/System.Runtime.xml", - "ref/netstandard1.0/es/System.Runtime.xml", - "ref/netstandard1.0/fr/System.Runtime.xml", - "ref/netstandard1.0/it/System.Runtime.xml", - "ref/netstandard1.0/ja/System.Runtime.xml", - "ref/netstandard1.0/ko/System.Runtime.xml", - "ref/netstandard1.0/ru/System.Runtime.xml", - "ref/netstandard1.0/zh-hans/System.Runtime.xml", - "ref/netstandard1.0/zh-hant/System.Runtime.xml", - "ref/netstandard1.2/System.Runtime.dll", - "ref/netstandard1.2/System.Runtime.xml", - "ref/netstandard1.2/de/System.Runtime.xml", - "ref/netstandard1.2/es/System.Runtime.xml", - "ref/netstandard1.2/fr/System.Runtime.xml", - "ref/netstandard1.2/it/System.Runtime.xml", - "ref/netstandard1.2/ja/System.Runtime.xml", - "ref/netstandard1.2/ko/System.Runtime.xml", - "ref/netstandard1.2/ru/System.Runtime.xml", - "ref/netstandard1.2/zh-hans/System.Runtime.xml", - "ref/netstandard1.2/zh-hant/System.Runtime.xml", - "ref/netstandard1.3/System.Runtime.dll", - "ref/netstandard1.3/System.Runtime.xml", - "ref/netstandard1.3/de/System.Runtime.xml", - "ref/netstandard1.3/es/System.Runtime.xml", - "ref/netstandard1.3/fr/System.Runtime.xml", - "ref/netstandard1.3/it/System.Runtime.xml", - "ref/netstandard1.3/ja/System.Runtime.xml", - "ref/netstandard1.3/ko/System.Runtime.xml", - "ref/netstandard1.3/ru/System.Runtime.xml", - "ref/netstandard1.3/zh-hans/System.Runtime.xml", - "ref/netstandard1.3/zh-hant/System.Runtime.xml", - "ref/netstandard1.5/System.Runtime.dll", - "ref/netstandard1.5/System.Runtime.xml", - "ref/netstandard1.5/de/System.Runtime.xml", - "ref/netstandard1.5/es/System.Runtime.xml", - "ref/netstandard1.5/fr/System.Runtime.xml", - "ref/netstandard1.5/it/System.Runtime.xml", - "ref/netstandard1.5/ja/System.Runtime.xml", - "ref/netstandard1.5/ko/System.Runtime.xml", - "ref/netstandard1.5/ru/System.Runtime.xml", - "ref/netstandard1.5/zh-hans/System.Runtime.xml", - "ref/netstandard1.5/zh-hant/System.Runtime.xml", - "ref/portable-net45+win8+wp80+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.4.3.0.nupkg.sha512", - "system.runtime.nuspec" - ] - }, - "System.Runtime.Extensions/4.3.0": { - "sha512": "P78VOZ2fZUq3otcfcf+6zd+EhWijXhI/BWk/wd9RnWFAddhO4hnlpiqxAIw1yPTZJSWRG5VboYyUmB8xcmcHpQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Runtime.Extensions.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Runtime.Extensions.dll", - "ref/netcore50/System.Runtime.Extensions.dll", - "ref/netcore50/System.Runtime.Extensions.xml", - "ref/netcore50/de/System.Runtime.Extensions.xml", - "ref/netcore50/es/System.Runtime.Extensions.xml", - "ref/netcore50/fr/System.Runtime.Extensions.xml", - "ref/netcore50/it/System.Runtime.Extensions.xml", - "ref/netcore50/ja/System.Runtime.Extensions.xml", - "ref/netcore50/ko/System.Runtime.Extensions.xml", - "ref/netcore50/ru/System.Runtime.Extensions.xml", - "ref/netcore50/zh-hans/System.Runtime.Extensions.xml", - "ref/netcore50/zh-hant/System.Runtime.Extensions.xml", - "ref/netstandard1.0/System.Runtime.Extensions.dll", - "ref/netstandard1.0/System.Runtime.Extensions.xml", - "ref/netstandard1.0/de/System.Runtime.Extensions.xml", - "ref/netstandard1.0/es/System.Runtime.Extensions.xml", - "ref/netstandard1.0/fr/System.Runtime.Extensions.xml", - "ref/netstandard1.0/it/System.Runtime.Extensions.xml", - "ref/netstandard1.0/ja/System.Runtime.Extensions.xml", - "ref/netstandard1.0/ko/System.Runtime.Extensions.xml", - "ref/netstandard1.0/ru/System.Runtime.Extensions.xml", - "ref/netstandard1.0/zh-hans/System.Runtime.Extensions.xml", - "ref/netstandard1.0/zh-hant/System.Runtime.Extensions.xml", - "ref/netstandard1.3/System.Runtime.Extensions.dll", - "ref/netstandard1.3/System.Runtime.Extensions.xml", - "ref/netstandard1.3/de/System.Runtime.Extensions.xml", - "ref/netstandard1.3/es/System.Runtime.Extensions.xml", - "ref/netstandard1.3/fr/System.Runtime.Extensions.xml", - "ref/netstandard1.3/it/System.Runtime.Extensions.xml", - "ref/netstandard1.3/ja/System.Runtime.Extensions.xml", - "ref/netstandard1.3/ko/System.Runtime.Extensions.xml", - "ref/netstandard1.3/ru/System.Runtime.Extensions.xml", - "ref/netstandard1.3/zh-hans/System.Runtime.Extensions.xml", - "ref/netstandard1.3/zh-hant/System.Runtime.Extensions.xml", - "ref/netstandard1.5/System.Runtime.Extensions.dll", - "ref/netstandard1.5/System.Runtime.Extensions.xml", - "ref/netstandard1.5/de/System.Runtime.Extensions.xml", - "ref/netstandard1.5/es/System.Runtime.Extensions.xml", - "ref/netstandard1.5/fr/System.Runtime.Extensions.xml", - "ref/netstandard1.5/it/System.Runtime.Extensions.xml", - "ref/netstandard1.5/ja/System.Runtime.Extensions.xml", - "ref/netstandard1.5/ko/System.Runtime.Extensions.xml", - "ref/netstandard1.5/ru/System.Runtime.Extensions.xml", - "ref/netstandard1.5/zh-hans/System.Runtime.Extensions.xml", - "ref/netstandard1.5/zh-hant/System.Runtime.Extensions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.extensions.4.3.0.nupkg.sha512", - "system.runtime.extensions.nuspec" - ] - }, - "System.Runtime.InteropServices/4.3.0": { - "sha512": "6CC8BIjVaMtHM3OvOOO0cirqqF6CNluOPtc/DNBkieZhMiz676cszc5ciNCiIWcTcNW+Mb0Cs8LWZrhK7W+rdQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Runtime.InteropServices.dll", - "lib/net463/System.Runtime.InteropServices.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Runtime.InteropServices.dll", - "ref/net463/System.Runtime.InteropServices.dll", - "ref/netcore50/System.Runtime.InteropServices.dll", - "ref/netcore50/System.Runtime.InteropServices.xml", - "ref/netcore50/de/System.Runtime.InteropServices.xml", - "ref/netcore50/es/System.Runtime.InteropServices.xml", - "ref/netcore50/fr/System.Runtime.InteropServices.xml", - "ref/netcore50/it/System.Runtime.InteropServices.xml", - "ref/netcore50/ja/System.Runtime.InteropServices.xml", - "ref/netcore50/ko/System.Runtime.InteropServices.xml", - "ref/netcore50/ru/System.Runtime.InteropServices.xml", - "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml", - "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml", - "ref/netcoreapp1.1/System.Runtime.InteropServices.dll", - "ref/netstandard1.1/System.Runtime.InteropServices.dll", - "ref/netstandard1.1/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/zh-hant/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/System.Runtime.InteropServices.dll", - "ref/netstandard1.2/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/zh-hant/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/System.Runtime.InteropServices.dll", - "ref/netstandard1.3/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/zh-hant/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/System.Runtime.InteropServices.dll", - "ref/netstandard1.5/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/zh-hant/System.Runtime.InteropServices.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.interopservices.4.3.0.nupkg.sha512", - "system.runtime.interopservices.nuspec" - ] - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "sha512": "rf6Ebmg9wgokWKK14uiVNdyBY7g4yLaZ4edbiE6XcNX5fyqtgHZTKuP2MFkkzQWL9NGX2LSIfodKQNVnOM+qCA==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512", - "system.runtime.interopservices.runtimeinformation.nuspec" - ] - }, - "System.Runtime.Numerics/4.3.0": { - "sha512": "H73WuUWJAH5UQE1MIxWLdqg+skdOBBwGA+fLu4JgPHJ+0tivNLBrN4TQdJGDvVeGPxrN229R5muocedVVAIfbA==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Runtime.Numerics.dll", - "lib/netstandard1.3/System.Runtime.Numerics.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Runtime.Numerics.dll", - "ref/netcore50/System.Runtime.Numerics.xml", - "ref/netcore50/de/System.Runtime.Numerics.xml", - "ref/netcore50/es/System.Runtime.Numerics.xml", - "ref/netcore50/fr/System.Runtime.Numerics.xml", - "ref/netcore50/it/System.Runtime.Numerics.xml", - "ref/netcore50/ja/System.Runtime.Numerics.xml", - "ref/netcore50/ko/System.Runtime.Numerics.xml", - "ref/netcore50/ru/System.Runtime.Numerics.xml", - "ref/netcore50/zh-hans/System.Runtime.Numerics.xml", - "ref/netcore50/zh-hant/System.Runtime.Numerics.xml", - "ref/netstandard1.1/System.Runtime.Numerics.dll", - "ref/netstandard1.1/System.Runtime.Numerics.xml", - "ref/netstandard1.1/de/System.Runtime.Numerics.xml", - "ref/netstandard1.1/es/System.Runtime.Numerics.xml", - "ref/netstandard1.1/fr/System.Runtime.Numerics.xml", - "ref/netstandard1.1/it/System.Runtime.Numerics.xml", - "ref/netstandard1.1/ja/System.Runtime.Numerics.xml", - "ref/netstandard1.1/ko/System.Runtime.Numerics.xml", - "ref/netstandard1.1/ru/System.Runtime.Numerics.xml", - "ref/netstandard1.1/zh-hans/System.Runtime.Numerics.xml", - "ref/netstandard1.1/zh-hant/System.Runtime.Numerics.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.numerics.4.3.0.nupkg.sha512", - "system.runtime.numerics.nuspec" - ] - }, - "System.Runtime.WindowsRuntime/4.3.0": { - "sha512": "xbgfgewneLCfKQfz0VzKsYDacZ680CudYw0uzj0bZ8ATpotkwicgtAsyJZ/J7/Dh2QIwpadjA2zLW/LFk7FKiA==", - "type": "package", - "files": [ - "System.Runtime.WindowsRuntime.4.3.0.nupkg.sha512", - "System.Runtime.WindowsRuntime.nuspec", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/portable-win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "ref/netcore50/System.Runtime.WindowsRuntime.dll", - "ref/netcore50/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/de/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/es/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/fr/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/it/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/ja/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/ko/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/ru/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/zh-hans/System.Runtime.WindowsRuntime.xml", - "ref/netcore50/zh-hant/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/System.Runtime.WindowsRuntime.dll", - "ref/netstandard1.0/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/de/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/es/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/fr/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/it/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/ja/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/ko/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/ru/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/zh-hans/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.0/zh-hant/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/System.Runtime.WindowsRuntime.dll", - "ref/netstandard1.2/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/de/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/es/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/fr/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/it/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/ja/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/ko/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/ru/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/zh-hans/System.Runtime.WindowsRuntime.xml", - "ref/netstandard1.2/zh-hant/System.Runtime.WindowsRuntime.xml", - "ref/portable-win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "runtimes/win8-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll", - "runtimes/win8/lib/netstandard1.3/System.Runtime.WindowsRuntime.dll" - ] - }, - "System.Text.Encoding/4.3.0": { - "sha512": "3hnC4XGk/ip1HnQuDpA5L3aOsYXSl4I7OlwSb40WlTIEVtOP9VrcqPN4kuT2L3a1kXXr8emjPePQcbtYVjRvjw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Text.Encoding.dll", - "ref/netcore50/System.Text.Encoding.xml", - "ref/netcore50/de/System.Text.Encoding.xml", - "ref/netcore50/es/System.Text.Encoding.xml", - "ref/netcore50/fr/System.Text.Encoding.xml", - "ref/netcore50/it/System.Text.Encoding.xml", - "ref/netcore50/ja/System.Text.Encoding.xml", - "ref/netcore50/ko/System.Text.Encoding.xml", - "ref/netcore50/ru/System.Text.Encoding.xml", - "ref/netcore50/zh-hans/System.Text.Encoding.xml", - "ref/netcore50/zh-hant/System.Text.Encoding.xml", - "ref/netstandard1.0/System.Text.Encoding.dll", - "ref/netstandard1.0/System.Text.Encoding.xml", - "ref/netstandard1.0/de/System.Text.Encoding.xml", - "ref/netstandard1.0/es/System.Text.Encoding.xml", - "ref/netstandard1.0/fr/System.Text.Encoding.xml", - "ref/netstandard1.0/it/System.Text.Encoding.xml", - "ref/netstandard1.0/ja/System.Text.Encoding.xml", - "ref/netstandard1.0/ko/System.Text.Encoding.xml", - "ref/netstandard1.0/ru/System.Text.Encoding.xml", - "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml", - "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml", - "ref/netstandard1.3/System.Text.Encoding.dll", - "ref/netstandard1.3/System.Text.Encoding.xml", - "ref/netstandard1.3/de/System.Text.Encoding.xml", - "ref/netstandard1.3/es/System.Text.Encoding.xml", - "ref/netstandard1.3/fr/System.Text.Encoding.xml", - "ref/netstandard1.3/it/System.Text.Encoding.xml", - "ref/netstandard1.3/ja/System.Text.Encoding.xml", - "ref/netstandard1.3/ko/System.Text.Encoding.xml", - "ref/netstandard1.3/ru/System.Text.Encoding.xml", - "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml", - "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.text.encoding.4.3.0.nupkg.sha512", - "system.text.encoding.nuspec" - ] - }, - "System.Text.Encoding.Extensions/4.3.0": { - "sha512": "q9p8y7bgIQR7IQJQBeOL3TT4H0vg634anhTKgbao9gHvFmmGJkJF6eNhX6Tfcu5vFbKqd+I1+kW/6hVdZXqPmQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Text.Encoding.Extensions.dll", - "ref/netcore50/System.Text.Encoding.Extensions.xml", - "ref/netcore50/de/System.Text.Encoding.Extensions.xml", - "ref/netcore50/es/System.Text.Encoding.Extensions.xml", - "ref/netcore50/fr/System.Text.Encoding.Extensions.xml", - "ref/netcore50/it/System.Text.Encoding.Extensions.xml", - "ref/netcore50/ja/System.Text.Encoding.Extensions.xml", - "ref/netcore50/ko/System.Text.Encoding.Extensions.xml", - "ref/netcore50/ru/System.Text.Encoding.Extensions.xml", - "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml", - "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/System.Text.Encoding.Extensions.dll", - "ref/netstandard1.0/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/de/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/es/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/fr/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/it/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/ja/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/ko/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/ru/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/zh-hans/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/zh-hant/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/System.Text.Encoding.Extensions.dll", - "ref/netstandard1.3/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/de/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/es/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/fr/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/it/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/ja/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/ko/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/ru/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/zh-hans/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/zh-hant/System.Text.Encoding.Extensions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.text.encoding.extensions.4.3.0.nupkg.sha512", - "system.text.encoding.extensions.nuspec" - ] - }, - "System.Text.RegularExpressions/4.3.0": { - "sha512": "SJ9qrjcnDx6YwpMpIgeKL1K/4/uDAHCT6Id3aey/z66H9SIX8PcG2TQ+gYNg7VGm7tI0wkLsV+8dMxbxTam7Yw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net463/System.Text.RegularExpressions.dll", - "lib/netcore50/System.Text.RegularExpressions.dll", - "lib/netstandard1.6/System.Text.RegularExpressions.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net463/System.Text.RegularExpressions.dll", - "ref/netcore50/System.Text.RegularExpressions.dll", - "ref/netcore50/System.Text.RegularExpressions.xml", - "ref/netcore50/de/System.Text.RegularExpressions.xml", - "ref/netcore50/es/System.Text.RegularExpressions.xml", - "ref/netcore50/fr/System.Text.RegularExpressions.xml", - "ref/netcore50/it/System.Text.RegularExpressions.xml", - "ref/netcore50/ja/System.Text.RegularExpressions.xml", - "ref/netcore50/ko/System.Text.RegularExpressions.xml", - "ref/netcore50/ru/System.Text.RegularExpressions.xml", - "ref/netcore50/zh-hans/System.Text.RegularExpressions.xml", - "ref/netcore50/zh-hant/System.Text.RegularExpressions.xml", - "ref/netcoreapp1.1/System.Text.RegularExpressions.dll", - "ref/netstandard1.0/System.Text.RegularExpressions.dll", - "ref/netstandard1.0/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/de/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/es/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/fr/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/it/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/ja/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/ko/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/ru/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/zh-hans/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/zh-hant/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/System.Text.RegularExpressions.dll", - "ref/netstandard1.3/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/de/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/es/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/fr/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/it/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/ja/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/ko/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/ru/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/zh-hans/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/zh-hant/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/System.Text.RegularExpressions.dll", - "ref/netstandard1.6/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/de/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/es/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/fr/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/it/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/ja/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/ko/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/ru/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/zh-hans/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/zh-hant/System.Text.RegularExpressions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.text.regularexpressions.4.3.0.nupkg.sha512", - "system.text.regularexpressions.nuspec" - ] - }, - "System.Threading/4.3.0": { - "sha512": "cm4+iLU+Gvodk221rboVLwWguLuPOl/bkcCtr+k9hc4tvngnw/dJaoUPqIEsU/FWcCusXk4po3ydFxmRp2lXyw==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Threading.dll", - "lib/netstandard1.3/System.Threading.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Threading.dll", - "ref/netcore50/System.Threading.xml", - "ref/netcore50/de/System.Threading.xml", - "ref/netcore50/es/System.Threading.xml", - "ref/netcore50/fr/System.Threading.xml", - "ref/netcore50/it/System.Threading.xml", - "ref/netcore50/ja/System.Threading.xml", - "ref/netcore50/ko/System.Threading.xml", - "ref/netcore50/ru/System.Threading.xml", - "ref/netcore50/zh-hans/System.Threading.xml", - "ref/netcore50/zh-hant/System.Threading.xml", - "ref/netstandard1.0/System.Threading.dll", - "ref/netstandard1.0/System.Threading.xml", - "ref/netstandard1.0/de/System.Threading.xml", - "ref/netstandard1.0/es/System.Threading.xml", - "ref/netstandard1.0/fr/System.Threading.xml", - "ref/netstandard1.0/it/System.Threading.xml", - "ref/netstandard1.0/ja/System.Threading.xml", - "ref/netstandard1.0/ko/System.Threading.xml", - "ref/netstandard1.0/ru/System.Threading.xml", - "ref/netstandard1.0/zh-hans/System.Threading.xml", - "ref/netstandard1.0/zh-hant/System.Threading.xml", - "ref/netstandard1.3/System.Threading.dll", - "ref/netstandard1.3/System.Threading.xml", - "ref/netstandard1.3/de/System.Threading.xml", - "ref/netstandard1.3/es/System.Threading.xml", - "ref/netstandard1.3/fr/System.Threading.xml", - "ref/netstandard1.3/it/System.Threading.xml", - "ref/netstandard1.3/ja/System.Threading.xml", - "ref/netstandard1.3/ko/System.Threading.xml", - "ref/netstandard1.3/ru/System.Threading.xml", - "ref/netstandard1.3/zh-hans/System.Threading.xml", - "ref/netstandard1.3/zh-hant/System.Threading.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Threading.dll", - "system.threading.4.3.0.nupkg.sha512", - "system.threading.nuspec" - ] - }, - "System.Threading.Tasks/4.3.0": { - "sha512": "1je8yxoIxd0iVjfJbb9DXNIfTt6ESMRIwNwoaB0WhxSfJMLOhfJ3mb9UQsa6Q/98g6jEOyFdSAbr+fPEgwbKUg==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Threading.Tasks.dll", - "ref/netcore50/System.Threading.Tasks.xml", - "ref/netcore50/de/System.Threading.Tasks.xml", - "ref/netcore50/es/System.Threading.Tasks.xml", - "ref/netcore50/fr/System.Threading.Tasks.xml", - "ref/netcore50/it/System.Threading.Tasks.xml", - "ref/netcore50/ja/System.Threading.Tasks.xml", - "ref/netcore50/ko/System.Threading.Tasks.xml", - "ref/netcore50/ru/System.Threading.Tasks.xml", - "ref/netcore50/zh-hans/System.Threading.Tasks.xml", - "ref/netcore50/zh-hant/System.Threading.Tasks.xml", - "ref/netstandard1.0/System.Threading.Tasks.dll", - "ref/netstandard1.0/System.Threading.Tasks.xml", - "ref/netstandard1.0/de/System.Threading.Tasks.xml", - "ref/netstandard1.0/es/System.Threading.Tasks.xml", - "ref/netstandard1.0/fr/System.Threading.Tasks.xml", - "ref/netstandard1.0/it/System.Threading.Tasks.xml", - "ref/netstandard1.0/ja/System.Threading.Tasks.xml", - "ref/netstandard1.0/ko/System.Threading.Tasks.xml", - "ref/netstandard1.0/ru/System.Threading.Tasks.xml", - "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml", - "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml", - "ref/netstandard1.3/System.Threading.Tasks.dll", - "ref/netstandard1.3/System.Threading.Tasks.xml", - "ref/netstandard1.3/de/System.Threading.Tasks.xml", - "ref/netstandard1.3/es/System.Threading.Tasks.xml", - "ref/netstandard1.3/fr/System.Threading.Tasks.xml", - "ref/netstandard1.3/it/System.Threading.Tasks.xml", - "ref/netstandard1.3/ja/System.Threading.Tasks.xml", - "ref/netstandard1.3/ko/System.Threading.Tasks.xml", - "ref/netstandard1.3/ru/System.Threading.Tasks.xml", - "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml", - "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.threading.tasks.4.3.0.nupkg.sha512", - "system.threading.tasks.nuspec" - ] - }, - "System.Threading.Timer/4.3.0": { - "sha512": "BzzEELyI/Jct8o0jOeXisFR5uawc5yhFVlgboaxWWWV/Fjahi/ESRRaHlR1HMWAyZsNnybq7v57YgWTVd+NAkg==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net451/_._", - "lib/portable-net451+win81+wpa81/_._", - "lib/win81/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net451/_._", - "ref/netcore50/System.Threading.Timer.dll", - "ref/netcore50/System.Threading.Timer.xml", - "ref/netcore50/de/System.Threading.Timer.xml", - "ref/netcore50/es/System.Threading.Timer.xml", - "ref/netcore50/fr/System.Threading.Timer.xml", - "ref/netcore50/it/System.Threading.Timer.xml", - "ref/netcore50/ja/System.Threading.Timer.xml", - "ref/netcore50/ko/System.Threading.Timer.xml", - "ref/netcore50/ru/System.Threading.Timer.xml", - "ref/netcore50/zh-hans/System.Threading.Timer.xml", - "ref/netcore50/zh-hant/System.Threading.Timer.xml", - "ref/netstandard1.2/System.Threading.Timer.dll", - "ref/netstandard1.2/System.Threading.Timer.xml", - "ref/netstandard1.2/de/System.Threading.Timer.xml", - "ref/netstandard1.2/es/System.Threading.Timer.xml", - "ref/netstandard1.2/fr/System.Threading.Timer.xml", - "ref/netstandard1.2/it/System.Threading.Timer.xml", - "ref/netstandard1.2/ja/System.Threading.Timer.xml", - "ref/netstandard1.2/ko/System.Threading.Timer.xml", - "ref/netstandard1.2/ru/System.Threading.Timer.xml", - "ref/netstandard1.2/zh-hans/System.Threading.Timer.xml", - "ref/netstandard1.2/zh-hant/System.Threading.Timer.xml", - "ref/portable-net451+win81+wpa81/_._", - "ref/win81/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.threading.timer.4.3.0.nupkg.sha512", - "system.threading.timer.nuspec" - ] - }, - "System.Xml.ReaderWriter/4.3.0": { - "sha512": "41StQbCnhTjv/daEuN55cqY4rUYP1NQI9a8cQktBxDbF5QLFsIvcr9mIFGQ2nrzrk3DYHKwpJ9AkVuMiYymtHg==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net46/System.Xml.ReaderWriter.dll", - "lib/netcore50/System.Xml.ReaderWriter.dll", - "lib/netstandard1.3/System.Xml.ReaderWriter.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net46/System.Xml.ReaderWriter.dll", - "ref/netcore50/System.Xml.ReaderWriter.dll", - "ref/netcore50/System.Xml.ReaderWriter.xml", - "ref/netcore50/de/System.Xml.ReaderWriter.xml", - "ref/netcore50/es/System.Xml.ReaderWriter.xml", - "ref/netcore50/fr/System.Xml.ReaderWriter.xml", - "ref/netcore50/it/System.Xml.ReaderWriter.xml", - "ref/netcore50/ja/System.Xml.ReaderWriter.xml", - "ref/netcore50/ko/System.Xml.ReaderWriter.xml", - "ref/netcore50/ru/System.Xml.ReaderWriter.xml", - "ref/netcore50/zh-hans/System.Xml.ReaderWriter.xml", - "ref/netcore50/zh-hant/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/System.Xml.ReaderWriter.dll", - "ref/netstandard1.0/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/de/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/es/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/fr/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/it/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/ja/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/ko/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/ru/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/zh-hans/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/zh-hant/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/System.Xml.ReaderWriter.dll", - "ref/netstandard1.3/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/de/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/es/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/fr/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/it/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/ja/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/ko/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/ru/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/zh-hans/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/zh-hant/System.Xml.ReaderWriter.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.xml.readerwriter.4.3.0.nupkg.sha512", - "system.xml.readerwriter.nuspec" - ] - }, - "System.Xml.XDocument/4.3.0": { - "sha512": "WT8lBJSEINzk3c9dm3n0vlqb9Z9PoORD29n/rbkcNh3feSZTJeYQ5+xgSbJhdsyvpmsRsE56fdsH4fchJt65PQ==", - "type": "package", - "files": [ - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Xml.XDocument.dll", - "lib/netstandard1.3/System.Xml.XDocument.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Xml.XDocument.dll", - "ref/netcore50/System.Xml.XDocument.xml", - "ref/netcore50/de/System.Xml.XDocument.xml", - "ref/netcore50/es/System.Xml.XDocument.xml", - "ref/netcore50/fr/System.Xml.XDocument.xml", - "ref/netcore50/it/System.Xml.XDocument.xml", - "ref/netcore50/ja/System.Xml.XDocument.xml", - "ref/netcore50/ko/System.Xml.XDocument.xml", - "ref/netcore50/ru/System.Xml.XDocument.xml", - "ref/netcore50/zh-hans/System.Xml.XDocument.xml", - "ref/netcore50/zh-hant/System.Xml.XDocument.xml", - "ref/netstandard1.0/System.Xml.XDocument.dll", - "ref/netstandard1.0/System.Xml.XDocument.xml", - "ref/netstandard1.0/de/System.Xml.XDocument.xml", - "ref/netstandard1.0/es/System.Xml.XDocument.xml", - "ref/netstandard1.0/fr/System.Xml.XDocument.xml", - "ref/netstandard1.0/it/System.Xml.XDocument.xml", - "ref/netstandard1.0/ja/System.Xml.XDocument.xml", - "ref/netstandard1.0/ko/System.Xml.XDocument.xml", - "ref/netstandard1.0/ru/System.Xml.XDocument.xml", - "ref/netstandard1.0/zh-hans/System.Xml.XDocument.xml", - "ref/netstandard1.0/zh-hant/System.Xml.XDocument.xml", - "ref/netstandard1.3/System.Xml.XDocument.dll", - "ref/netstandard1.3/System.Xml.XDocument.xml", - "ref/netstandard1.3/de/System.Xml.XDocument.xml", - "ref/netstandard1.3/es/System.Xml.XDocument.xml", - "ref/netstandard1.3/fr/System.Xml.XDocument.xml", - "ref/netstandard1.3/it/System.Xml.XDocument.xml", - "ref/netstandard1.3/ja/System.Xml.XDocument.xml", - "ref/netstandard1.3/ko/System.Xml.XDocument.xml", - "ref/netstandard1.3/ru/System.Xml.XDocument.xml", - "ref/netstandard1.3/zh-hans/System.Xml.XDocument.xml", - "ref/netstandard1.3/zh-hant/System.Xml.XDocument.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.xml.xdocument.4.3.0.nupkg.sha512", - "system.xml.xdocument.nuspec" - ] - }, - "System.Xml.XmlSerializer/4.3.0": { - "sha512": "MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", - "type": "package", - "files": [ - "System.Xml.XmlSerializer.4.3.0.nupkg.sha512", - "System.Xml.XmlSerializer.nuspec", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Xml.XmlSerializer.dll", - "lib/netstandard1.3/System.Xml.XmlSerializer.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Xml.XmlSerializer.dll", - "ref/netcore50/System.Xml.XmlSerializer.xml", - "ref/netcore50/de/System.Xml.XmlSerializer.xml", - "ref/netcore50/es/System.Xml.XmlSerializer.xml", - "ref/netcore50/fr/System.Xml.XmlSerializer.xml", - "ref/netcore50/it/System.Xml.XmlSerializer.xml", - "ref/netcore50/ja/System.Xml.XmlSerializer.xml", - "ref/netcore50/ko/System.Xml.XmlSerializer.xml", - "ref/netcore50/ru/System.Xml.XmlSerializer.xml", - "ref/netcore50/zh-hans/System.Xml.XmlSerializer.xml", - "ref/netcore50/zh-hant/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/System.Xml.XmlSerializer.dll", - "ref/netstandard1.0/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/de/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/es/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/fr/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/it/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/ja/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/ko/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/ru/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/zh-hans/System.Xml.XmlSerializer.xml", - "ref/netstandard1.0/zh-hant/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/System.Xml.XmlSerializer.dll", - "ref/netstandard1.3/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/de/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/es/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/fr/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/it/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/ja/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/ko/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/ru/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/zh-hans/System.Xml.XmlSerializer.xml", - "ref/netstandard1.3/zh-hant/System.Xml.XmlSerializer.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Xml.XmlSerializer.dll" - ] - } - }, - "projectFileDependencyGroups": { - "": [ - "Microsoft.NETCore.Portable.Compatibility >= 1.0.2", - "NETStandard.Library >= 2.0.0", - "System.Net.Requests >= 4.3.0", - "System.Runtime.WindowsRuntime >= 4.3.0", - "System.Xml.ReaderWriter >= 4.3.0", - "System.Xml.XmlSerializer >= 4.3.0" - ], - ".NETStandard,Version=v1.2": [] - } -} \ No newline at end of file