diff --git a/ModernKeePass.sln b/ModernKeePass.sln index c3365f9..c09d8de 100644 --- a/ModernKeePass.sln +++ b/ModernKeePass.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 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}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassApp", "ModernKeePass\ModernKeePassApp.csproj", "{A0CFC681-769B-405A-8482-0CDEE595A91F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModernKeePassLib", "ModernKeePassLib\ModernKeePassLib.csproj", "{2E710089-9559-4967-846C-E763DD1F3ACB}" EndProject diff --git a/ModernKeePass/.gitignore b/ModernKeePass/.gitignore index 246f7e8..ef1d66c 100644 --- a/ModernKeePass/.gitignore +++ b/ModernKeePass/.gitignore @@ -34,3 +34,4 @@ Translation/TrlUtil.vshost.exe.manifest *.nupkg .vs/ /UpgradeLog.htm +ModernKeePass_StoreKey.pfx \ No newline at end of file diff --git a/ModernKeePass/Common/DatabaseHelper.cs b/ModernKeePass/Common/DatabaseHelper.cs index 7ab480c..b476b91 100644 --- a/ModernKeePass/Common/DatabaseHelper.cs +++ b/ModernKeePass/Common/DatabaseHelper.cs @@ -53,8 +53,6 @@ namespace ModernKeePass.Common } } - public StorageFile KeyFile { get; set; } - public PwUuid DataCipher { get { return _pwDatabase.DataCipherUuid; } @@ -72,20 +70,18 @@ namespace ModernKeePass.Common get { return _pwDatabase.KdfParameters; } set { _pwDatabase.KdfParameters = value; } } - + /// /// Open a KeePass database /// - /// The database password + /// The database composite key /// True to create a new database before opening it /// An error message, if any - public string Open(string password, bool createNew = false) + public string Open(CompositeKey key, bool createNew = false) { - var key = new CompositeKey(); try { - if (password != null) key.AddUserKey(new KcpPassword(password)); - if (KeyFile != null) key.AddUserKey(new KcpKeyFile(IOConnectionInfo.FromFile(KeyFile))); + if (key == null) return "No composite key"; var ioConnection = IOConnectionInfo.FromFile(DatabaseFile); if (createNew) _pwDatabase.New(ioConnection, key); else _pwDatabase.Open(ioConnection, key, new NullStatusLogger()); @@ -152,5 +148,10 @@ namespace ModernKeePass.Common RecycleBin.IsSelected = true; RecycleBin.IconSymbol = Symbol.Delete; } + + public void UpdateCompositeKey(CompositeKey key) + { + _pwDatabase.MasterKey = key; + } } } diff --git a/ModernKeePass/Common/NotifyPropertyChangedBase.cs b/ModernKeePass/Common/NotifyPropertyChangedBase.cs index 53751dd..ed71053 100644 --- a/ModernKeePass/Common/NotifyPropertyChangedBase.cs +++ b/ModernKeePass/Common/NotifyPropertyChangedBase.cs @@ -8,7 +8,7 @@ namespace ModernKeePass.Common { public event PropertyChangedEventHandler PropertyChanged; - protected void OnPropertyChanged([CallerMemberName] string propertyName = "") + protected void OnPropertyChanged(string propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } diff --git a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml index 0132d17..b2766fb 100644 --- a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml +++ b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml @@ -8,16 +8,22 @@ xmlns:core="using:Microsoft.Xaml.Interactions.Core" xmlns:actions="using:ModernKeePass.Actions" xmlns:converters="using:ModernKeePass.Converters" + xmlns:viewModels="using:ModernKeePass.ViewModels" mc:Ignorable="d" d:DesignHeight="120" d:DesignWidth="550" > - + + - + + + + + @@ -27,22 +33,22 @@ - - + + - + - - - -