diff --git a/ModernKeePass/Common/DatabaseHelper.cs b/ModernKeePass/Common/DatabaseHelper.cs index b769f23..a65b4d2 100644 --- a/ModernKeePass/Common/DatabaseHelper.cs +++ b/ModernKeePass/Common/DatabaseHelper.cs @@ -124,7 +124,7 @@ namespace ModernKeePass.Common public void Save() { // TODO: Save is disabled for now for Argon2Kdf because it corrupts DB (read works) - if (_pwDatabase == null || !_pwDatabase.IsOpen || KdfPool.Get(KeyDerivation.KdfUuid) is Argon2Kdf) return; + if (_pwDatabase == null || !_pwDatabase.IsOpen /*|| KdfPool.Get(KeyDerivation.KdfUuid) is Argon2Kdf*/) return; _pwDatabase.Save(new NullStatusLogger()); } diff --git a/ModernKeePass/ModernKeePassApp.csproj b/ModernKeePass/ModernKeePassApp.csproj index 615d2dc..2494c90 100644 --- a/ModernKeePass/ModernKeePassApp.csproj +++ b/ModernKeePass/ModernKeePassApp.csproj @@ -296,10 +296,6 @@ ..\packages\Microsoft.Toolkit.Uwp.Notifications.2.0.0\lib\dotnet\Microsoft.Toolkit.Uwp.Notifications.dll True - - ..\packages\ModernKeePassLib.2.37.5000\lib\netstandard1.2\ModernKeePassLib.dll - True - ..\packages\Splat.2.0.0\lib\Portable-Win81+Wpa81\Splat.dll True @@ -360,6 +356,12 @@ + + + {2e710089-9559-4967-846c-e763dd1f3acb} + ModernKeePassLib + + 12.0 diff --git a/ModernKeePass/Package.appxmanifest b/ModernKeePass/Package.appxmanifest index 9d1dc27..404bb7a 100644 --- a/ModernKeePass/Package.appxmanifest +++ b/ModernKeePass/Package.appxmanifest @@ -1,6 +1,6 @@  - + ModernKeePass wismna diff --git a/ModernKeePass/Pages/SettingsPageFrames/SettingsDatabasePage.xaml b/ModernKeePass/Pages/SettingsPageFrames/SettingsDatabasePage.xaml index d914788..27797de 100644 --- a/ModernKeePass/Pages/SettingsPageFrames/SettingsDatabasePage.xaml +++ b/ModernKeePass/Pages/SettingsPageFrames/SettingsDatabasePage.xaml @@ -24,6 +24,6 @@ - + diff --git a/ModernKeePass/Properties/AssemblyInfo.cs b/ModernKeePass/Properties/AssemblyInfo.cs index ebcca22..35c9165 100644 --- a/ModernKeePass/Properties/AssemblyInfo.cs +++ b/ModernKeePass/Properties/AssemblyInfo.cs @@ -24,6 +24,6 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.6.0.0")] -[assembly: AssemblyFileVersion("1.6.0.0")] +[assembly: AssemblyVersion("1.7.0.0")] +[assembly: AssemblyFileVersion("1.7.0.0")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/ModernKeePassLib/ModernKeePassLib.nuspec b/ModernKeePassLib/ModernKeePassLib.nuspec index 7c8113f..fb5f5c0 100644 --- a/ModernKeePassLib/ModernKeePassLib.nuspec +++ b/ModernKeePassLib/ModernKeePassLib.nuspec @@ -2,7 +2,7 @@ ModernKeePassLib - 2.37.5000 + 2.37.6000 ModernKeePassLib Geoffroy Bonneville Geoffroy Bonneville @@ -10,7 +10,7 @@ https://github.com/wismna/ModernKeePass false Portable KeePass Password Management Library that targets .Net Standard and WinRT. Allows reading, editing and writing to KeePass 2.x databases. - KDBX 4 file format supported + TBD Copyright © 2017 Geoffroy Bonneville KeePass KeePassLib Portable PCL NetStandard diff --git a/ModernKeePassLib/Serialization/KdbxFile.Read.cs b/ModernKeePassLib/Serialization/KdbxFile.Read.cs index 76dde29..37c3656 100644 --- a/ModernKeePassLib/Serialization/KdbxFile.Read.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Read.cs @@ -26,11 +26,8 @@ using System.IO; using System.Security; using System.Text; using System.Xml; -#if ModernKeePassLib -using Windows.Security.Cryptography; -using Windows.Security.Cryptography.Core; -using Windows.Storage.Streams; -#else + +#if !ModernKeePassLib && !KeePassUAP using System.Security.Cryptography; #endif @@ -40,15 +37,15 @@ using System.IO.Compression; using KeePassLibSD; #endif +using ModernKeePassLib.Collections; using ModernKeePassLib.Cryptography; using ModernKeePassLib.Cryptography.Cipher; +using ModernKeePassLib.Cryptography.KeyDerivation; using ModernKeePassLib.Interfaces; using ModernKeePassLib.Keys; using ModernKeePassLib.Resources; -using ModernKeePassLib.Utility; -using ModernKeePassLib.Collections; -using ModernKeePassLib.Cryptography.KeyDerivation; using ModernKeePassLib.Security; +using ModernKeePassLib.Utility; namespace ModernKeePassLib.Serialization { diff --git a/ModernKeePassLib/Serialization/KdbxFile.Write.cs b/ModernKeePassLib/Serialization/KdbxFile.Write.cs index 6cc7024..890c28b 100644 --- a/ModernKeePassLib/Serialization/KdbxFile.Write.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Write.cs @@ -25,9 +25,8 @@ using System.IO; using System.Security; using System.Text; using System.Xml; -#if ModernKeePassLib -using Windows.Security.Cryptography; -#else + +#if !ModernKeePassLib && !KeePassUAP using System.Drawing; using System.Security.Cryptography; #endif @@ -41,15 +40,13 @@ using System.IO.Compression; using ModernKeePassLib.Collections; using ModernKeePassLib.Cryptography; using ModernKeePassLib.Cryptography.Cipher; +using ModernKeePassLib.Cryptography.KeyDerivation; using ModernKeePassLib.Delegates; using ModernKeePassLib.Interfaces; using ModernKeePassLib.Keys; using ModernKeePassLib.Resources; using ModernKeePassLib.Security; using ModernKeePassLib.Utility; -using Windows.Security.Cryptography.Core; -using Windows.Storage.Streams; -using ModernKeePassLib.Cryptography.KeyDerivation; namespace ModernKeePassLib.Serialization { @@ -212,8 +209,13 @@ namespace ModernKeePassLib.Serialization xws.Indent = true; xws.IndentChars = "\t"; xws.NewLineOnAttributes = false; +#if ModernKeePassLib + // This is needed for Argon2Kdf write + xws.Async = true; + if (m_uFileVersion >= FileVersion32_4) xws.CloseOutput = true; +#endif - XmlWriter xw = XmlWriter.Create(sXml, xws); + XmlWriter xw = XmlWriter.Create(sXml, xws); #else XmlTextWriter xw = new XmlTextWriter(sXml, encNoBom); diff --git a/ModernKeePassLib/Serialization/KdbxFile.cs b/ModernKeePassLib/Serialization/KdbxFile.cs index a48815e..e25c1e5 100644 --- a/ModernKeePassLib/Serialization/KdbxFile.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.cs @@ -519,8 +519,8 @@ namespace ModernKeePassLib.Serialization byte[] pbData = pb.ReadData(); /*var file = FileSystem.Current.GetFileFromPathAsync(strPath).Result; using (var stream = file.OpenAsync(FileAccess.ReadAndWrite).Result) {*/ - var file = StorageFile.GetFileFromPathAsync(strPath).GetResults(); - using (var stream = file.OpenAsync(FileAccessMode.ReadWrite).GetResults().AsStream()) + var file = StorageFile.GetFileFromPathAsync(strPath).GetAwaiter().GetResult(); + using (var stream = file.OpenAsync(FileAccessMode.ReadWrite).GetAwaiter().GetResult().AsStream()) { stream.Write (pbData, 0, pbData.Length); }