From 84abdc15966f6cba2455d3e436cb8393234375b1 Mon Sep 17 00:00:00 2001 From: Slavasil Date: Fri, 5 Dec 2025 15:30:38 +0300 Subject: [PATCH] unlock error reporting, bugfixes - fix Locked property becoming true when the store in fact was not opened - fix password being null - make RepositoryWindow non-resizeable - show error popups in case of unlock error --- .../PasswordStore/PassStoreFileAccessor.cs | 5 +-- src/KeyKeeper/RepositoryWindow.axaml | 6 ++-- src/KeyKeeper/RepositoryWindow.axaml.cs | 9 +++++- .../ViewModels/LockedRepositoryViewModel.cs | 24 +++++++++++--- .../ViewModels/RepositoryWindowViewModel.cs | 4 +++ src/KeyKeeper/Views/ErrorDialog.axaml | 31 +++++++++++++++++++ src/KeyKeeper/Views/ErrorDialog.axaml.cs | 18 +++++++++++ src/KeyKeeper/Views/MainWindow.axaml.cs | 3 +- 8 files changed, 88 insertions(+), 12 deletions(-) create mode 100644 src/KeyKeeper/Views/ErrorDialog.axaml create mode 100644 src/KeyKeeper/Views/ErrorDialog.axaml.cs diff --git a/src/KeyKeeper/PasswordStore/PassStoreFileAccessor.cs b/src/KeyKeeper/PasswordStore/PassStoreFileAccessor.cs index 8169c34..61ddb4c 100644 --- a/src/KeyKeeper/PasswordStore/PassStoreFileAccessor.cs +++ b/src/KeyKeeper/PasswordStore/PassStoreFileAccessor.cs @@ -63,8 +63,8 @@ public class PassStoreFileAccessor : IPassStore file.Seek((file.Position + 4096 - 1) / 4096 * 4096, SeekOrigin.Begin); key.Salt = hdr.PreSalt; - this.key = hdr.KdfInfo.GetKdf().Derive(key, 32); - using OuterEncryptionReader cryptoReader = new(file, this.key, ((OuterAesHeader)hdr.OuterCryptoHeader).InitVector); + byte[] masterKey = hdr.KdfInfo.GetKdf().Derive(key, 32); + using OuterEncryptionReader cryptoReader = new(file, masterKey, ((OuterAesHeader)hdr.OuterCryptoHeader).InitVector); using BinaryReader rd = new(cryptoReader); { @@ -103,6 +103,7 @@ public class PassStoreFileAccessor : IPassStore throw PassStoreFileException.UnexpectedEndOfFile; } } + this.key = masterKey; } public void Lock() diff --git a/src/KeyKeeper/RepositoryWindow.axaml b/src/KeyKeeper/RepositoryWindow.axaml index 849cd20..eb57a79 100644 --- a/src/KeyKeeper/RepositoryWindow.axaml +++ b/src/KeyKeeper/RepositoryWindow.axaml @@ -3,6 +3,7 @@ xmlns:vm="using:KeyKeeper.ViewModels" x:Class="KeyKeeper.RepositoryWindow" Title="KeyKeeper - Хранилище паролей" + CanResize="False" Width="800" Height="600" Background="White" @@ -13,7 +14,7 @@ @@ -42,8 +43,7 @@ -