diff --git a/ModernKeePass.sln b/ModernKeePass.sln
index afc08f4..c8ea3bb 100644
--- a/ModernKeePass.sln
+++ b/ModernKeePass.sln
@@ -8,6 +8,9 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLibPCL", "ModernKeePassLib\ModernKeePassLibPCL.csproj", "{2E710089-9559-4967-846C-E763DD1F3ACB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLib.Test", "ModernKeePassLib.Test\ModernKeePassLib.Test.csproj", "{067456C0-086C-46A8-B37F-1405717B7BFC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {2E710089-9559-4967-846C-E763DD1F3ACB} = {2E710089-9559-4967-846C-E763DD1F3ACB}
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/ModernKeePass/ModernKeePass.csproj b/ModernKeePass/ModernKeePass.csproj
index 55188a3..426196d 100644
--- a/ModernKeePass/ModernKeePass.csproj
+++ b/ModernKeePass/ModernKeePass.csproj
@@ -163,32 +163,8 @@
..\packages\Portable.BouncyCastle.1.8.1.1\lib\netstandard1.0\crypto.dll
True
-
- ..\packages\ModernKeePassLibPCL.2.28.1.31251\lib\netstandard1.2\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
+
+ ..\packages\ModernKeePassLibPCL.2.28.1.25559\lib\netstandard1.2\ModernKeePassLibPCL.dll
True
diff --git a/ModernKeePass/Pages/EntryDetailPage.xaml b/ModernKeePass/Pages/EntryDetailPage.xaml
index b15ec6e..d07d042 100644
--- a/ModernKeePass/Pages/EntryDetailPage.xaml
+++ b/ModernKeePass/Pages/EntryDetailPage.xaml
@@ -44,7 +44,7 @@
-
+
diff --git a/ModernKeePass/Pages/EntryDetailPage.xaml.cs b/ModernKeePass/Pages/EntryDetailPage.xaml.cs
index bb1979c..ccc6b8b 100644
--- a/ModernKeePass/Pages/EntryDetailPage.xaml.cs
+++ b/ModernKeePass/Pages/EntryDetailPage.xaml.cs
@@ -1,17 +1,7 @@
using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
using ModernKeePass.Common;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using ModernKeePass.ViewModels;
@@ -31,10 +21,7 @@ namespace ModernKeePass.Pages
/// NavigationHelper est utilisé sur chaque page pour faciliter la navigation et
/// gestion de la durée de vie des processus
///
- public NavigationHelper NavigationHelper
- {
- get { return this.navigationHelper; }
- }
+ public NavigationHelper NavigationHelper => navigationHelper;
public EntryDetailPage()
{
@@ -51,16 +38,11 @@ namespace ModernKeePass.Pages
/// Source de l'événement ; en général
///
/// Données d'événement qui fournissent le paramètre de navigation transmis à
- /// lors de la requête initiale de cette page et
+ /// lors de la requête initiale de cette page et
/// un dictionnaire d'état conservé par cette page durant une session
/// antérieure. L'état n'aura pas la valeur Null lors de la première visite de la page.
private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
- object navigationParameter;
- if (e.PageState != null && e.PageState.ContainsKey("SelectedItem"))
- {
- navigationParameter = e.PageState["SelectedItem"];
- }
}
#region Inscription de NavigationHelper
diff --git a/ModernKeePass/Pages/GroupDetailPage.xaml.cs b/ModernKeePass/Pages/GroupDetailPage.xaml.cs
index fa2ad71..9570fbf 100644
--- a/ModernKeePass/Pages/GroupDetailPage.xaml.cs
+++ b/ModernKeePass/Pages/GroupDetailPage.xaml.cs
@@ -1,4 +1,5 @@
-using ModernKeePass.Common;
+using System;
+using ModernKeePass.Common;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using ModernKeePass.ViewModels;
@@ -19,10 +20,7 @@ namespace ModernKeePass.Pages
/// NavigationHelper is used on each page to aid in navigation and
/// process lifetime management
///
- public NavigationHelper NavigationHelper
- {
- get { return navigationHelper; }
- }
+ public NavigationHelper NavigationHelper => navigationHelper;
public GroupDetailPage()
@@ -40,7 +38,7 @@ namespace ModernKeePass.Pages
/// The source of the event; typically
///
/// Event data that provides both the navigation parameter passed to
- /// when this page was initially requested and
+ /// when this page was initially requested and
/// a dictionary of state preserved by this page during an earlier
/// session. The state will be null the first time a page is visited.
private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
diff --git a/ModernKeePass/ViewModels/EntryVm.cs b/ModernKeePass/ViewModels/EntryVm.cs
index 7c6761d..a7c6826 100644
--- a/ModernKeePass/ViewModels/EntryVm.cs
+++ b/ModernKeePass/ViewModels/EntryVm.cs
@@ -1,26 +1,55 @@
using System.ComponentModel;
using ModernKeePassLibPCL;
+using ModernKeePassLibPCL.Security;
namespace ModernKeePass.ViewModels
{
public class EntryVm : INotifyPropertyChanged
{
- public string Title { get; set; }
- public string UserName { get; private set; }
- public string Password { get; private set; }
- public string URL { get; private set; }
- public string Notes { get; private set; }
+ public string Title
+ {
+ get { return GetEntryValue(PwDefs.TitleField); }
+ set { SetEntryValue(PwDefs.TitleField, value); }
+ }
+ public string UserName
+ {
+ get { return GetEntryValue(PwDefs.UserNameField); }
+ set { SetEntryValue(PwDefs.UserNameField, value); }
+ }
+ public string Password
+ {
+ get { return GetEntryValue(PwDefs.PasswordField); }
+ set { SetEntryValue(PwDefs.PasswordField, value); }
+ }
+ public string Url
+ {
+ get { return GetEntryValue(PwDefs.UrlField); }
+ set { SetEntryValue(PwDefs.UrlField, value); }
+ }
+ public string Notes
+ {
+ get { return GetEntryValue(PwDefs.NotesField); }
+ set { SetEntryValue(PwDefs.NotesField, value); }
+ }
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ private readonly PwEntry _pwEntry;
public EntryVm() { }
public EntryVm(PwEntry entry)
{
- Title = entry.Strings.GetSafe(PwDefs.TitleField).ReadString();
- UserName = entry.Strings.GetSafe(PwDefs.UserNameField).ReadString();
- Password = entry.Strings.GetSafe(PwDefs.PasswordField).ReadString();
- URL = entry.Strings.GetSafe(PwDefs.UrlField).ReadString();
- Notes = entry.Strings.GetSafe(PwDefs.NotesField).ReadString();
+ _pwEntry = entry;
}
- public event PropertyChangedEventHandler PropertyChanged;
+ private string GetEntryValue(string key)
+ {
+ return _pwEntry.Strings.GetSafe(key).ReadString();
+ }
+
+ private void SetEntryValue(string key, string newValue)
+ {
+ _pwEntry.Strings.Set(key, new ProtectedString(true, newValue));
+ }
}
}
diff --git a/ModernKeePass/packages.config b/ModernKeePass/packages.config
index 8a95652..9289d4a 100644
--- a/ModernKeePass/packages.config
+++ b/ModernKeePass/packages.config
@@ -4,7 +4,7 @@
-
+
diff --git a/ModernKeePassLib.Test/ModernKeePassLib.Test.csproj b/ModernKeePassLib.Test/ModernKeePassLib.Test.csproj
index 73a6a5b..ddc2348 100644
--- a/ModernKeePassLib.Test/ModernKeePassLib.Test.csproj
+++ b/ModernKeePassLib.Test/ModernKeePassLib.Test.csproj
@@ -33,42 +33,13 @@
4
-
- ..\packages\ModernKeePassLibPCL.2.28.1.32947\lib\portable46-net451+win81+wpa81\ModernKeePassLibPCL.dll
- True
+
+ ..\packages\Portable.BouncyCastle.1.8.1.1\lib\portable-net4+sl5+wp8+win8+wpa81\crypto.dll
..\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll
True
-
- ..\packages\PCLCrypto.2.0.147\lib\net45\PCLCrypto.dll
- True
-
-
- ..\packages\PCLStorage.1.0.2\lib\net45\PCLStorage.dll
- True
-
-
- ..\packages\PCLStorage.1.0.2\lib\net45\PCLStorage.Abstractions.dll
- True
-
-
- ..\packages\PInvoke.BCrypt.0.5.97\lib\net45\PInvoke.BCrypt.dll
- True
-
-
- ..\packages\PInvoke.Kernel32.0.5.97\lib\net45\PInvoke.Kernel32.dll
- True
-
-
- ..\packages\PInvoke.NCrypt.0.5.97\lib\net45\PInvoke.NCrypt.dll
- True
-
-
- ..\packages\PInvoke.Windows.Core.0.5.97\lib\net35\PInvoke.Windows.Core.dll
- True
-
..\packages\Splat.2.0.0\lib\Net45\Splat.dll
True
@@ -78,13 +49,8 @@
-
- False
- ..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1\System.Runtime.WindowsRuntime.dll
-
-
- ..\packages\Validation.2.4.15\lib\net45\Validation.dll
- True
+
+ ..\ModernKeePassLib\Libs\Windows.winmd
@@ -106,6 +72,12 @@
+
+
+ {2e710089-9559-4967-846c-e763dd1f3acb}
+ ModernKeePassLibPCL
+
+
diff --git a/ModernKeePassLib.Test/app.config b/ModernKeePassLib.Test/app.config
index 869e12a..042eee6 100644
--- a/ModernKeePassLib.Test/app.config
+++ b/ModernKeePassLib.Test/app.config
@@ -14,6 +14,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/ModernKeePassLib.Test/packages.config b/ModernKeePassLib.Test/packages.config
index 8b06047..596ae52 100644
--- a/ModernKeePassLib.Test/packages.config
+++ b/ModernKeePassLib.Test/packages.config
@@ -1,15 +1,6 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs b/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs
index 8965ef4..c038e4a 100644
--- a/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs
+++ b/ModernKeePassLib/Cryptography/Cipher/StandardAesEngine.cs
@@ -43,6 +43,12 @@ using Org.BouncyCastle.Crypto.Parameters;
#endif
using ModernKeePassLibPCL.Resources;
+using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.Crypto.Engines;
+using Org.BouncyCastle.Crypto.IO;
+using Org.BouncyCastle.Crypto.Modes;
+using Org.BouncyCastle.Crypto.Paddings;
+using Org.BouncyCastle.Crypto.Parameters;
namespace ModernKeePassLibPCL.Cryptography.Cipher
{
@@ -123,8 +129,8 @@ namespace ModernKeePassLibPCL.Cryptography.Cipher
byte[] pbLocalKey = new byte[32];
Array.Copy(pbKey, pbLocalKey, 32);
-
-#if ModernKeePassLibPCL
+#if !ModernKeePassLibPCL
+//#if ModernKeePassLibPCL
/*var provider = WinRTCrypto.SymmetricKeyAlgorithmProvider.
OpenAlgorithm(SymmetricAlgorithm.AesCbcPkcs7);
var key = provider.CreateSymmetricKey(pbLocalKey);
@@ -140,9 +146,11 @@ namespace ModernKeePassLibPCL.Cryptography.Cipher
return new CryptoStream(s, decryptor, CryptoStreamMode.Read);
}
*/
+
var provider = SymmetricKeyAlgorithmProvider.
OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);
var key = provider.CreateSymmetricKey(CryptographicBuffer.CreateFromByteArray(pbLocalKey));
+
using (var ms = new MemoryStream())
{
s.CopyTo(ms);
@@ -152,18 +160,21 @@ namespace ModernKeePassLibPCL.Cryptography.Cipher
{
var encrypted = CryptographicEngine.Encrypt(key, data, CryptographicBuffer.CreateFromByteArray(pbLocalIV));
CryptographicBuffer.CopyToByteArray(encrypted, out resultByteArray);
+ return new MemoryStream(resultByteArray);
}
else
{
var decrypted = CryptographicEngine.Decrypt(key, data, CryptographicBuffer.CreateFromByteArray(pbLocalIV));
CryptographicBuffer.CopyToByteArray(decrypted, out resultByteArray);
- }
return new MemoryStream(resultByteArray, true);
+ }
}
-#else
+
+//#else
-#if !KeePassRT
- RijndaelManaged r = new RijndaelManaged();
+//#if !KeePassRT
+//#if !ModernKeePassLibPCL
+ RijndaelManaged r = new RijndaelManaged();
if(r.BlockSize != 128) // AES block size
{
Debug.Assert(false);
@@ -183,6 +194,7 @@ namespace ModernKeePassLibPCL.Cryptography.Cipher
return new CryptoStream(s, iTransform, bEncrypt ? CryptoStreamMode.Write :
CryptoStreamMode.Read);
#else
+
AesEngine aes = new AesEngine();
CbcBlockCipher cbc = new CbcBlockCipher(aes);
PaddedBufferedBlockCipher bc = new PaddedBufferedBlockCipher(cbc,
@@ -196,7 +208,7 @@ namespace ModernKeePassLibPCL.Cryptography.Cipher
return new CipherStream(s, cpRead, cpWrite);
#endif
-#endif
+//#endif
}
public Stream EncryptStream(Stream sPlainText, byte[] pbKey, byte[] pbIV)
diff --git a/ModernKeePassLib/Cryptography/HashingStreamEx.cs b/ModernKeePassLib/Cryptography/HashingStreamEx.cs
index eb22b70..6c84a71 100644
--- a/ModernKeePassLib/Cryptography/HashingStreamEx.cs
+++ b/ModernKeePassLib/Cryptography/HashingStreamEx.cs
@@ -23,13 +23,16 @@ using System.Text;
using System.IO;
#if ModernKeePassLibPCL
using Windows.Security.Cryptography;
+using Windows.Security.Cryptography.Core;
+using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.Crypto.Digests;
#else
using System.Security.Cryptography;
#endif
using System.Diagnostics;
-
+using System.Runtime.InteropServices.ComTypes;
using ModernKeePassLibPCL.Utility;
-using Windows.Security.Cryptography.Core;
+using Org.BouncyCastle.Crypto.Tls;
namespace ModernKeePassLibPCL.Cryptography
{
@@ -39,7 +42,8 @@ namespace ModernKeePassLibPCL.Cryptography
private bool m_bWriting;
#if ModernKeePassLibPCL
//private ICryptoTransform m_hash;
- private CryptographicHash m_hash;
+ //private CryptographicHash m_hash;
+ private IDigest m_hash;
#else
private HashAlgorithm m_hash;
#endif
@@ -53,7 +57,7 @@ namespace ModernKeePassLibPCL.Cryptography
public override bool CanRead
{
- get { return /*!m_bWriting;*/true; }
+ get { return !m_bWriting; }
}
public override bool CanSeek
@@ -91,7 +95,8 @@ namespace ModernKeePassLibPCL.Cryptography
m_bWriting = bWriting;
#if ModernKeePassLibPCL
//m_hash = WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(hashAlgorithm ?? HashAlgorithm.Sha256).CreateHash();
- m_hash = HashAlgorithmProvider.OpenAlgorithm(hashAlgorithm ?? HashAlgorithmNames.Sha256).CreateHash();
+ //m_hash = HashAlgorithmProvider.OpenAlgorithm(hashAlgorithm ?? HashAlgorithmNames.Sha256).CreateHash();
+ m_hash = new Sha256Digest();
#elif !KeePassLibSD
m_hash = (hashAlgorithm ?? new SHA256Managed());
#else // KeePassLibSD
@@ -135,7 +140,10 @@ namespace ModernKeePassLibPCL.Cryptography
//m_hash.TransformFinalBlock(new byte[0], 0, 0);
#if ModernKeePassLibPCL
//m_pbFinalHash = (m_hash as CryptographicHash).GetValueAndReset ();
- CryptographicBuffer.CopyToByteArray(m_hash.GetValueAndReset(), out m_pbFinalHash);
+ //CryptographicBuffer.CopyToByteArray(m_hash.GetValueAndReset(), out m_pbFinalHash);
+ m_pbFinalHash = new byte[32];
+ m_hash.DoFinal(m_pbFinalHash, 0);
+ m_hash.Reset();
#else
m_pbFinalHash = m_hash.Hash;
#endif
@@ -160,7 +168,7 @@ namespace ModernKeePassLibPCL.Cryptography
public override int Read(byte[] pbBuffer, int nOffset, int nCount)
{
- //if(m_bWriting) throw new InvalidOperationException();
+ if(m_bWriting) throw new InvalidOperationException();
int nRead = m_sBaseStream.Read(pbBuffer, nOffset, nCount);
int nPartialRead = nRead;
@@ -178,7 +186,8 @@ namespace ModernKeePassLibPCL.Cryptography
if((m_hash != null) && (nRead > 0))
//m_hash.TransformBlock(pbBuffer, nOffset, nRead, pbBuffer, nOffset);
- m_hash.Append(CryptographicBuffer.CreateFromByteArray(pbBuffer));
+ //m_hash.Append(CryptographicBuffer.CreateFromByteArray(pbBuffer));
+ m_hash.BlockUpdate(pbBuffer, nOffset, nRead);
#if DEBUG
Debug.Assert(MemUtil.ArraysEqual(pbBuffer, pbOrg));
@@ -198,10 +207,10 @@ namespace ModernKeePassLibPCL.Cryptography
if ((m_hash != null) && (nCount > 0))
//m_hash.TransformBlock(pbBuffer, nOffset, nCount, pbBuffer, nOffset);
- m_hash.Append(CryptographicBuffer.CreateFromByteArray(pbBuffer));
-
+ //m_hash.Append(CryptographicBuffer.CreateFromByteArray(pbBuffer));
+ m_hash.BlockUpdate(pbBuffer, nOffset, nCount);
#if DEBUG
- Debug.Assert(MemUtil.ArraysEqual(pbBuffer, pbOrg));
+ Debug.Assert(MemUtil.ArraysEqual(pbBuffer, pbOrg));
#endif
m_sBaseStream.Write(pbBuffer, nOffset, nCount);
diff --git a/ModernKeePassLib/Keys/KcpKeyFile.cs b/ModernKeePassLib/Keys/KcpKeyFile.cs
index 0959f34..a1704c6 100644
--- a/ModernKeePassLib/Keys/KcpKeyFile.cs
+++ b/ModernKeePassLib/Keys/KcpKeyFile.cs
@@ -322,7 +322,7 @@ namespace ModernKeePassLibPCL.Keys
#if ModernKeePassLibPCL
var settings = new XmlWriterSettings() { Encoding = StrUtil.Utf8 };
- var xtw = XmlWriter.Create(sOut.AsStream(), settings);
+ var xtw = XmlWriter.Create(sOut, settings);
#else
XmlTextWriter xtw = new XmlTextWriter(sOut, StrUtil.Utf8);
#endif
diff --git a/ModernKeePassLib/ModernKeePassLibPCL.nuget.targets b/ModernKeePassLib/ModernKeePassLibPCL.nuget.targets
deleted file mode 100644
index ac12fe8..0000000
--- a/ModernKeePassLib/ModernKeePassLibPCL.nuget.targets
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- $(UserProfile)\.nuget\packages\
-
-
-
-
-
\ No newline at end of file
diff --git a/ModernKeePassLib/Serialization/FileLock.cs b/ModernKeePassLib/Serialization/FileLock.cs
index c4d318a..c23236c 100644
--- a/ModernKeePassLib/Serialization/FileLock.cs
+++ b/ModernKeePassLib/Serialization/FileLock.cs
@@ -129,7 +129,7 @@ namespace ModernKeePassLibPCL.Serialization
try
{
if(s == null) return null;
- using (var sr = new StreamReader(s.AsStream(), StrUtil.Utf8))
+ using (var sr = new StreamReader(s, StrUtil.Utf8))
{
string str = sr.ReadToEnd();
if (str == null)
@@ -179,7 +179,7 @@ namespace ModernKeePassLibPCL.Serialization
{
byte[] pbFile = StrUtil.Utf8.GetBytes(sb.ToString());
if (s == null) throw new IOException(iocLockFile.GetDisplayName());
- s.WriteAsync(pbFile.AsBuffer()).GetAwaiter().GetResult();
+ s.WriteAsync(pbFile, 0, pbFile.Length).GetAwaiter().GetResult();
}
return lfi;
diff --git a/ModernKeePassLib/Serialization/FileTransactionEx.cs b/ModernKeePassLib/Serialization/FileTransactionEx.cs
index 79d75cd..72a6c42 100644
--- a/ModernKeePassLib/Serialization/FileTransactionEx.cs
+++ b/ModernKeePassLib/Serialization/FileTransactionEx.cs
@@ -79,7 +79,7 @@ namespace ModernKeePassLibPCL.Serialization
else m_iocTemp = m_iocBase;
}
- public IRandomAccessStream OpenWrite()
+ public Stream OpenWrite()
{
if(!m_bTransacted) m_bMadeUnhidden = UrlUtil.UnhideFile(m_iocTemp.Path);
else // m_bTransacted
@@ -100,7 +100,7 @@ namespace ModernKeePassLibPCL.Serialization
}
}
- private async void CommitWriteTransaction()
+ private void CommitWriteTransaction()
{
bool bMadeUnhidden = UrlUtil.UnhideFile(m_iocBase.Path);
diff --git a/ModernKeePassLib/Serialization/IOConnection.cs b/ModernKeePassLib/Serialization/IOConnection.cs
index cdbc056..1f0601d 100644
--- a/ModernKeePassLib/Serialization/IOConnection.cs
+++ b/ModernKeePassLib/Serialization/IOConnection.cs
@@ -422,7 +422,7 @@ namespace ModernKeePassLibPCL.Serialization
new Uri(ioc.Path)));
}
#else
- public static IRandomAccessStream OpenRead(IOConnectionInfo ioc)
+ public static Stream OpenRead(IOConnectionInfo ioc)
{
RaiseIOAccessPreEvent(ioc, IOAccessType.Read);
@@ -430,9 +430,9 @@ namespace ModernKeePassLibPCL.Serialization
}
#endif
- private static IRandomAccessStream OpenReadLocal(IOConnectionInfo ioc)
+ private static Stream OpenReadLocal(IOConnectionInfo ioc)
{
- return ioc.StorageFile.OpenAsync(FileAccessMode.Read).GetAwaiter().GetResult();
+ return ioc.StorageFile.OpenAsync(FileAccessMode.Read).GetAwaiter().GetResult().AsStream();
}
#if (!ModernKeePassLibPCL && !KeePassLibSD && !KeePassRT)
@@ -458,7 +458,7 @@ namespace ModernKeePassLibPCL.Serialization
return IocStream.WrapIfRequired(s);
}
#else
- public static IRandomAccessStream OpenWrite(IOConnectionInfo ioc)
+ public static Stream OpenWrite(IOConnectionInfo ioc)
{
RaiseIOAccessPreEvent(ioc, IOAccessType.Write);
@@ -466,9 +466,9 @@ namespace ModernKeePassLibPCL.Serialization
}
#endif
- private static IRandomAccessStream OpenWriteLocal(IOConnectionInfo ioc)
+ private static Stream OpenWriteLocal(IOConnectionInfo ioc)
{
- return ioc.StorageFile.OpenAsync(FileAccessMode.ReadWrite).GetAwaiter().GetResult();
+ return ioc.StorageFile.OpenAsync(FileAccessMode.ReadWrite).GetAwaiter().GetResult().AsStream();
}
public static bool FileExists(IOConnectionInfo ioc)
@@ -546,7 +546,7 @@ namespace ModernKeePassLibPCL.Serialization
#endif
public static byte[] ReadFile(IOConnectionInfo ioc)
{
- IRandomAccessStream sIn = null;
+ Stream sIn = null;
MemoryStream ms = null;
try
{
@@ -555,7 +555,7 @@ namespace ModernKeePassLibPCL.Serialization
ms = new MemoryStream();
- MemUtil.CopyStream(sIn.AsStream(), ms);
+ MemUtil.CopyStream(sIn, ms);
return ms.ToArray();
}
diff --git a/ModernKeePassLib/Serialization/KdbxFile.Read.cs b/ModernKeePassLib/Serialization/KdbxFile.Read.cs
index 538cd13..e46759c 100644
--- a/ModernKeePassLib/Serialization/KdbxFile.Read.cs
+++ b/ModernKeePassLib/Serialization/KdbxFile.Read.cs
@@ -71,7 +71,7 @@ namespace ModernKeePassLibPCL.Serialization
/// a KDBX stream.
/// Format specifier.
/// Status logger (optional).
- public void Load(IRandomAccessStream sSource, KdbxFormat kdbFormat, IStatusLogger slLogger)
+ public void Load(Stream sSource, KdbxFormat kdbFormat, IStatusLogger slLogger)
{
Debug.Assert(sSource != null);
if(sSource == null) throw new ArgumentNullException("sSource");
@@ -79,7 +79,7 @@ namespace ModernKeePassLibPCL.Serialization
m_format = kdbFormat;
m_slLogger = slLogger;
- HashingStreamEx hashedStream = new HashingStreamEx(sSource.AsStream(), false, null);
+ HashingStreamEx hashedStream = new HashingStreamEx(sSource, false, null);
UTF8Encoding encNoBom = StrUtil.Utf8;
try
@@ -165,7 +165,7 @@ namespace ModernKeePassLibPCL.Serialization
finally { CommonCleanUpRead(sSource, hashedStream); }
}
- private void CommonCleanUpRead(IRandomAccessStream sSource, HashingStreamEx hashedStream)
+ private void CommonCleanUpRead(Stream sSource, HashingStreamEx hashedStream)
{
hashedStream.Dispose();
m_pbHashOfFileOnDisk = hashedStream.Hash;
@@ -376,7 +376,7 @@ namespace ModernKeePassLibPCL.Serialization
}
[Obsolete]
- public static List ReadEntries(PwDatabase pwDatabase, IRandomAccessStream msData)
+ public static List ReadEntries(PwDatabase pwDatabase, Stream msData)
{
return ReadEntries(msData);
}
@@ -386,7 +386,7 @@ namespace ModernKeePassLibPCL.Serialization
///
/// Input stream to read the entries from.
/// Extracted entries.
- public static List ReadEntries(IRandomAccessStream msData)
+ public static List ReadEntries(Stream msData)
{
/* KdbxFile f = new KdbxFile(pwDatabase);
f.m_format = KdbxFormat.PlainXml;
diff --git a/ModernKeePassLib/Serialization/KdbxFile.Write.cs b/ModernKeePassLib/Serialization/KdbxFile.Write.cs
index ec2e425..cb9f75e 100644
--- a/ModernKeePassLib/Serialization/KdbxFile.Write.cs
+++ b/ModernKeePassLib/Serialization/KdbxFile.Write.cs
@@ -77,7 +77,7 @@ namespace ModernKeePassLibPCL.Serialization
/// be written.
/// Format of the file to create.
/// Logger that recieves status information.
- public void Save(IRandomAccessStream sSaveTo, PwGroup pgDataSource, KdbxFormat format,
+ public void Save(Stream sSaveTo, PwGroup pgDataSource, KdbxFormat format,
IStatusLogger slLogger)
{
Debug.Assert(sSaveTo != null);
@@ -86,7 +86,7 @@ namespace ModernKeePassLibPCL.Serialization
m_format = format;
m_slLogger = slLogger;
- HashingStreamEx hashedStream = new HashingStreamEx(sSaveTo.AsStream(), true, null);
+ HashingStreamEx hashedStream = new HashingStreamEx(sSaveTo, true, null);
UTF8Encoding encNoBom = StrUtil.Utf8;
CryptoRandom cr = CryptoRandom.Instance;
@@ -146,7 +146,7 @@ namespace ModernKeePassLibPCL.Serialization
finally { CommonCleanUpWrite(sSaveTo, hashedStream); }
}
- private void CommonCleanUpWrite(IRandomAccessStream sSaveTo, HashingStreamEx hashedStream)
+ private void CommonCleanUpWrite(Stream sSaveTo, HashingStreamEx hashedStream)
{
hashedStream.Dispose();
m_pbHashOfFileOnDisk = hashedStream.Hash;
@@ -836,7 +836,7 @@ namespace ModernKeePassLibPCL.Serialization
}
[Obsolete]
- public static bool WriteEntries(IRandomAccessStream msOutput, PwDatabase pwDatabase,
+ public static bool WriteEntries(Stream msOutput, PwDatabase pwDatabase,
PwEntry[] vEntries)
{
return WriteEntries(msOutput, vEntries);
@@ -849,7 +849,7 @@ namespace ModernKeePassLibPCL.Serialization
/// Entries to serialize.
/// Returns true, if the entries were written successfully
/// to the stream.
- public static bool WriteEntries(IRandomAccessStream msOutput, PwEntry[] vEntries)
+ public static bool WriteEntries(Stream msOutput, PwEntry[] vEntries)
{
/* KdbxFile f = new KdbxFile(pwDatabase);
f.m_format = KdbxFormat.PlainXml;
diff --git a/ModernKeePassLib/app.config b/ModernKeePassLib/app.config
index b4834a7..9cf3b82 100644
--- a/ModernKeePassLib/app.config
+++ b/ModernKeePassLib/app.config
@@ -2,6 +2,10 @@
+
+
+
+
diff --git a/ModernKeePassLib/project.json b/ModernKeePassLib/project.json
index 86efe1b..2764ad2 100644
--- a/ModernKeePassLib/project.json
+++ b/ModernKeePassLib/project.json
@@ -1,7 +1,6 @@
{
"supports": {},
"dependencies": {
- "Microsoft.Bcl.Build": "1.0.21",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"PInvoke.Windows.Core": "0.5.97",
diff --git a/ModernKeePassLib/project.lock.json b/ModernKeePassLib/project.lock.json
index 046022d..2f35586 100644
--- a/ModernKeePassLib/project.lock.json
+++ b/ModernKeePassLib/project.lock.json
@@ -3,9 +3,6 @@
"version": 2,
"targets": {
".NETStandard,Version=v1.2": {
- "Microsoft.Bcl.Build/1.0.21": {
- "type": "package"
- },
"Microsoft.NETCore.Jit/1.0.2": {
"type": "package"
},
@@ -545,17 +542,6 @@
}
},
"libraries": {
- "Microsoft.Bcl.Build/1.0.21": {
- "sha512": "sgHu4mIt0+NVGyI12Bj4hLPypNK55UOH+ologj2LqDCjxq3EbIxe/uAtHjY+fEwbE1dtsAHG8SXHf+V/EYbKTg==",
- "type": "package",
- "files": [
- "License-Stable.rtf",
- "Microsoft.Bcl.Build.1.0.21.nupkg.sha512",
- "Microsoft.Bcl.Build.nuspec",
- "build/Microsoft.Bcl.Build.Tasks.dll",
- "build/Microsoft.Bcl.Build.targets"
- ]
- },
"Microsoft.NETCore.Jit/1.0.2": {
"sha512": "Ok2vWofa6X8WD9vc4pfLHwvJz1/B6t3gOAoZcjrjrQf7lQOlNIuZIZtLn3wnWX28DuQGpPJkRlBxFj7Z5txNqw==",
"type": "package",
@@ -2959,7 +2945,6 @@
},
"projectFileDependencyGroups": {
"": [
- "Microsoft.Bcl.Build >= 1.0.21",
"Microsoft.NETCore.Portable.Compatibility >= 1.0.1",
"NETStandard.Library >= 1.6.0",
"PInvoke.Windows.Core >= 0.5.97",