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);
}