Code Monkey home page Code Monkey logo

winhellounlock's Introduction

WinHelloUnlock: Unlock KeePass 2 Databases with Windows Hello

Latest release GitHub issues Github All Releases License

This plugin for KeePass 2 password manager is intended to conveniently Unlock your database using biometrics with Windows Hello technology.

This plugin is heavily based on KeePassWinHello and KeePassQuickUnlock. I am not a programmer, so I copied most of the code from them, but implemented a different way of storing the MasterKey data to allow plugin functionality, even after rebooting your computer, using Password Vault, Password Credentials and Key Credentials from Windows UWP APIs.

Disclaimer

I tried my best to not compromise security! Please, take a look at the code and tell me what could be better. Having said that, we know nothing about Windows Hello internals, and how secure it actually is. By using this plugin, you are putting your trust in my implementation of Windows Hello technology (that you can check on the code), and Windows Hello robustness itself (that you cannot check).

Usage

With this plugin you may:

Unlock your database using Biometric via Windows Hello. Even after completely closing KeePass or rebooting your PC.

Systems Requirements

This plugin relies on Windows Hello API and its requirements.

Tested on HP Spectre x360 with KeePass 2.50

How to Install

Place WinHelloUnlock.dll into Plugins folder in your KeePass installation (by default is C:\Program Files (x86)\KeePass Password Safe 2).

Build from Source

I've worked on this project on Microsoft Visual Studio. If you plan to clone and build yourself, I suggest you use the same. It's just easier to build a class library. After clonning the repo, open the .sln file and fix the keepass reference:

  • Download latest portable keepass build and unzip it in a folder of your choice
  • In the Solution Explorer in Visual Studio open References
  • Click KeePass and in its properties, change the path to the path of the portable KeePass you downloaded

You would also probably need to add the following NuGet packages:

  • Microsoft.Windows.SDK.Contracts
  • System.Runtime.WindowsRuntime
  • System.Runtime.WindowsRuntime.UI.Xaml

Setup

After installation, open your database and unlock it using your composite key. Unlocking with any combination of Password/KeyFile/WindowsUserAccount is supported. Secure Desktop is supported.

When your database is unlocked, you will be asked if you want to set up WinHelloUnlock. If you cancel this dialog, the plugin will disable itself for this database and you will need to manually enable it in the options menu.

A Windows Hello prompt will be shown to cryptographically sign and encrypt your Master Key data.

You should receive a confirmation after a successful set up.

Options

The plugin integrates itself into the KeePass settings dialog.

Available settings:

  • Enable or disable the plugin for this particular database. If you disable it, you will not be asked to set WinHelloUnlock every time you unlock your database.
  • Re-lock databases after unlocking them to perform an AutoType.
  • Create or delete WinHelloUnlock data for this particular database.

Notes

No sensitive information including master passwords for databases are stored by the plugin in a plain text. A database key is encrypted and decrypted using Windows Hello API in order to unlock the database. KeePass Composite Key data is Encrypted with a Cryptographic Key signed with a Windows Hello Key Credential and saved as a Password Credential to a Password Vault. To decrypt this data, you need to:

  • Have access to the Password Vault
  • Have access to the Cryptographic Key
  • Be able to Cryptographically sign the Cryptographic Key with Windows Hello

So basically, you need to have access to the data, the hardware and the biometrics (or pin).

As I said, I'm not a programmer, so any criticism will be well received. Feel free to commit any change or PR.

Credits

WinHelloUnlock vs KeePassWinHello

By the time this plugin was created, KeePassWinHello did not have to option to remain active after Keepass is completly closed, so that was the main reason for it to be crated in the first place. I think they were working on that option, but I could not help them beacuse I did not understand most of their code (Way too advanced implementation for a beginner like me). I think they save the MasterKey info in memory, but WinHelloUnlock saves it encrypted to a Windows Password Credential.

WinHelloUnlock does not implement a way for the credential to expire (like KeePassWinHello do), but implements a way for the credential to be deleted by the user.

Donations?

Donations

winhellounlock's People

Contributors

angelelz avatar lazou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

winhellounlock's Issues

Implement ability to use the same database on multiple PCs with each PC's Windows Hello credentials

Describe the bug

Currently, if you sync the same database omnidirectionally among multiple PCs, each successive WinHelloUnlock setup on an additional PC will break the plugin's functionality on the other PCs.

This appears to be due to WinHelloUnlock saving some kind of marker that matches a single PC's Windows Hello credentials within the database itself.

I therefore propose that this marker either be stored locally on each PC outside the database OR that all such markers are stored within the database and WinHelloUnlock retrieves the one matching the PC it's currently on.

I know this is possible because KeePass2Android allows biometric unlocking of the same database across multiple devices. Also, browsers that use Windows Hello are able to access the same account using each machine's Windows Hello credentials without breaking the other machines' access to the account.

To Reproduce
Steps to reproduce the behavior:

  1. Set up WinHelloUnlock (WHU) on PC1
  2. Sync PC1's KeePass database to PC2 using your preferred backend, e.g. Google Drive
  3. Set up WHU on PC2
  4. Sync PC2's KeePass database back to PC1 (most sync backends do this automatically)
  5. Attempt to use WHU on PC1

You'll get a CRC error message.

Expected behavior

WHU should work on both PCs after setting up PC2.

Screenshots

N/A

Additional context

So far, I haven't been able to find a way around this. If you experience the error, your only choice is to:

  1. Delete the Windows Hello config on the database on all of the PCs
  2. Uninstall WHU from all the PCs except the 1 you need to use it with
  3. Set up WHU from scratch again on the PC you want to use it with

Missing correct version number on WinHelloUnlock.dll

Version v0.99.2 doesn't contain 0.99.2 on the DLL, but contains 0.99.0 as version number, which means KeePass believes there is a newer version, even if using the DLL from 0.99.2 release.

Image of update check

Thanks for a great addon.

WinHelloUnlock always asking if you want to save biometic data

Hello,

WinHelloUnlock works as it should. But it always asks if i want to save credentials / biometric data for the main database, but i already saved data here.
You should know that i have one primary database - this one, i unlock with biometric data (WinHello). This database has no critical data in it; it is simply here to unlock 3 other databases via KeeAutoExec. i have enabled WinHelloUnlock for this main database and disabled for the other three. But from time to time WinHelloUnlock asks again and again if i want to activate it for this database, even if i already activated it. It works fine even if i click no, but it always asks if i want to save data. It seems somehow it happens when i open some other database, but i have no real clue when it happens.

Greetings

Build instructions not in README, fresh clone fails with "type or namespace name 'KeePass' could not be found"

Describe the bug
The repository is not buildable when the repository is first cloned, Visual Studio fails with many errors:
Error CS0246 The type or namespace name 'KeePass' could not be found (are you missing a using directive or an assembly reference?) KeePassWinHello L:\projects\3rd_party\KeePassWinHello\src\KeePassWinHelloExt.cs 6 Active

If this project requires additional dependencies and configuration, it would be great if they were documented in the README so users can build successfully.
To Reproduce
Steps to reproduce the behavior:

  1. Clone repository in Visual Studio
  2. Select "Build Solution" from Visual Studio "Build" menu
  3. See error

Additional context
This is a newly installed instance of Visual Studio 2019, and a fresh clone of the WinHelloUnlock repository.

Plugin incompatible with the current KeePass version (v2.51.1)

Describe the bug
KeePass unable to use WinHelloUnlock.dll, giving an incompatibility message instead.

To Reproduce
Steps to reproduce the behavior:

  1. Place WinHelloUnlock.dll into C:\Program Files (x86)\KeePass Password Safe 2\Plugins
  2. Start KeePass

Expected behavior
Prompt to use biometric security

Screenshots
image

Additional context
This worked for me on another computer without a hitch. This computer is an ASUS X510UQ laptop (64 bit) running Windows 10 Pro (mine runs Windows 10 Home).

Hellow bug

Simple bug installed the DLL

Window HELLO comes up. Facial ID or Finger ID, but I get an error message.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
Screenshot 2023-01-25 153608

If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

Error with Keyprovider/Yubikey and composite key

Hi,
I'm using the WinHelloUnlock Plugin now for a long time without any problem.

Recently we ordered some Yubikeys (Yubikey 5 NFC) to have a MFA for our KP-Database.
Now, when i set the yubikey as an additional factor (KeeChallenge_1.5, keyprovider, Yubikey challenge-response) the WinHelloUnlock doesn't work anymore. I can only unlock the db with the master password and the Yubikey.

When i try to re-"create WinHelloUnlock data for this Database" i always get this error:

image

translated:
"Error saving the composite key: The value should not be NULL. Parametername: a"

To Reproduce
Steps to reproduce the behavior:

  1. Install KeeChallenge Keyprovider for Yubikey
  2. Open (existing) KP-DB with working WinHelloUnlock
  3. File -> Change Master Key
  4. Type (new) Master Password
  5. Tick Expert-Options, Key-File and Yubikey challenge-response
  6. Paste the Secret Key
  7. Save DB
  8. WinHelloUnlock wants to save the new "password"
  9. Fails with above error

(And like i said, recreate the WinHelloUnlock data in the options fails again with the same error)

Win10 21H2
KeePass 2.50 (64bit) - installed Plugins: WinHelloUnlock 1.6.1, KeeChallenge 1.5.0.0, KeePassRPC 1.14.0.0

Cancelling Fingerprint Prompt causes errors

Describe the bug
WinHelloUnlock Prompt shows errors when cancelled by Esc button.

To Reproduce
Steps to reproduce the behavior:

  1. Open KeePass. See WinHelloUnlock Fingerprint prompt appears.
  2. Press Esc to cancel WinHelloUnlock fingerprint entry and instead access default Password Entry prompt.
  3. WinHelloUnlock prompt doesn't close right away, thus exposing default Password Prompt, but gives a sequence of errors.

Expected behavior
On pressing Esc, WiinHelloUnlock prompt closes without any errors or questions, while exposing default Password Prompt

autotype option?

Thanks for the useful addon. Would it be possible for a new feature to trigger autotype when scanning fingerprint? I've been searching for a while on how to autotype with fingerprint but haven't found a solution.

WinHelloUnlock Prompt Popup position is not remembered

Describe the bug
WinHelloUnlock Prompt Popup position is not remembered after moved by a user. Next time it still appears in original place in the middle of monitor screen.

To Reproduce
Steps to reproduce the behavior:

  1. Open KeePass. WinHelloUnlock Popup appears.
  2. Move the popup window and login by fingerprint
  3. Exit KeePass or Lock the DB.
  4. Re-activate KeePass to relogin.
  5. WinHelloUnlock Popup appears again in the middle of screen

Expected behavior
The Popup should remember its last position, when fingerprint scan resulted in entry to KeePass DB.

In addition, the plugin's file has DLL extension instead of PLGX.

Creating WinHelloUnlock data for a database leads to error

Hey!

Even though the Windows Hello unlock for my user profile on my laptop itself (not KeePass) is working flawlessly, it does not for the KeePass plugin WinHelloUnlock. The only message it says is "Something went wrong. Please try again." (as shown in yellow in German).

grafik

The other plugin KeePassWinHello has about the same problem after the successful setup although I just need to try it a second time to unlock the database (instead of not working at all with WinHelloUnlock).

I have a ZenBook UX433FN with Windows 10 Pro on version 19042.

Is there a way to fix this issue?

Thank you in advance,
Gabriel

WinHelloUnlock stops working when update is available

Describe the bug
When KeePass shows a plugin & package Update Prompt at launch, and user closes it, WinHelloUnlock doesn't show Scan Prompt after that and fails to work

To Reproduce
Steps to reproduce the behavior:

  1. Open KeePass
  2. KeePass Prompt appears "Updates available" if there are any
  3. You can't close the prompt and scan your finger anymore until the update is installed, and KeePass restarted, if KeePass update notifications remain On

Expected behavior
WinHelloUnlock should show Scan Prompt and allow user to scan fingerprint and enter KeePass once KeePass Update Prompt is closed by the user.

Work fine, but need some enhancement

Thanks for the complement. In general terms it works quite well and I missed such a complement, but I think it would be possible to improve it quite a bit with 2-3 adjustments

First of all, it suffers from the most common problem when playing with Windows Hello, and that is that the authentication windows appears behind, in the background, instead of in the foreground, so sometimes there is even to "search" for Windows Hello screen.

On the other hand, it would be much more "clean" (as does KeePassWinHello), only show the screen of traditional authentication (composite passwords) in case of aborting Windows Hello authentication, actually, both Windows are present

WinHelloUnlock integration in GUI

Hello,

why is WinHelloUnlock integrated in the Options-Dialog of KeePass? It is not really conclusive, because it seems to be more practical in "File -> Database Settings", because in the dialog are no global options of WinHelloUnlock, but only database specific options.

Greetings

Windows Hello prompt won't appear in specific condition

Describe the bug
A clear and concise description of what the bug is.
Windows Hello prompt won't appear.

To Reproduce
Steps to reproduce the behavior:
1)Make sure KeePass is closed;
2)Open the database with Windows Hello setup;
3)Click Cancel, a warning "The request was cancelled by the user" should appear;
4)Click OK, the standard unlock prompt should appear;
5)Click Cancel, then open the database with the same window (File - Open Recent);
6)You'll see that Windows Hello prompt won't appear, instead the standard prompt appears;
7)Then click Cancel, and open database again (File - Open Recent);
8)You'll see nothing appears.

Expected behavior
A clear and concise description of what you expected to happen.

  1. Windows Hello prompt should appear before standard prompt in 6);
  2. Windows Hello prompt should appear in 8), and should ask for standard prompt when refused to use Windows Hello.

multipel users / multipel biometric keys

Describe the bug
This is less an issue as a question/request. We have a shared keepass DB on a network share, currently multiple users are unlocking the DB with a master password. Is it possible to use WinHelloUnlock with biometric data for each user or is only the data of the first user valid that is opening keepass after enabling the plugin? I didn't try it with multiple users, but I can't see any option to store data for multiple users.

Unhandled Excheption has occurred.

Describe the bug
Any time I enable WinHelloUnlock on Keepass it starts crashing. Tried removing the plugin and re-adding but it doesn't help.

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Exception: The wait operation timed out. (Exception from HRESULT: 0x80070102)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at WinHelloUnlock.UWPLibrary.<CreateCredential>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at WinHelloUnlock.UWPLibrary.<CreateHelloData>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at WinHelloUnlock.OptionsPanel.<CreateButton_Click>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4515.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
KeePass
    Assembly Version: 2.48.1.16933
    Win32 Version: 2.48.1.0
    CodeBase: file:///C:/Apps/KeePass2/KeePass.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4515.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4488.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
WinHelloUnlock
    Assembly Version: 1.6.0.0
    Win32 Version: 1.6
    CodeBase: file:///C:/Apps/KeePass2/Plugins/WinHelloUnlock.dll
----------------------------------------
KeeAnywhere
    Assembly Version: 2.0.3.0
    Win32 Version: 2.0.3.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/A5arXRbF2L6v6D6Iksqd/KeeAnywhere.dll
----------------------------------------
System.Net.Http.Primitives
    Assembly Version: 4.2.29.0
    Win32 Version: 4.2.29.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/A5arXRbF2L6v6D6Iksqd/System.Net.Http.Primitives.DLL
----------------------------------------
Newtonsoft.Json
    Assembly Version: 12.0.0.0
    Win32 Version: 12.0.3.23909
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/A5arXRbF2L6v6D6Iksqd/Newtonsoft.Json.DLL
----------------------------------------
Microsoft.Graph.Core
    Assembly Version: 1.3.1.0
    Win32 Version: 1.3.1.0
    CodeBase: file:///C:/Apps/KeePass2/Microsoft.Graph.Core.DLL
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4515.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Numerics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
System.Runtime.Serialization
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4455.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.Data
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4455.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Security
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4261.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Security/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Security.dll
----------------------------------------
KeePassNatMsg
    Assembly Version: 2.0.14.0
    Win32 Version: 2.0.14.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/tVfDrcgFb8RMd1eYrTNd/KeePassNatMsg.dll
----------------------------------------
Newtonsoft.Json
    Assembly Version: 10.0.0.0
    Win32 Version: 10.0.3.21018
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/tVfDrcgFb8RMd1eYrTNd/Newtonsoft.Json.DLL
----------------------------------------
KeePassReadablePassphrase
    Assembly Version: 1.2.1.0
    Win32 Version: 1.2.1.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/2sIT6mEUm6MDdsVKLfoi/KeePassReadablePassphrase.dll
----------------------------------------
KeePass.XmlSerializers
    Assembly Version: 2.48.1.16933
    Win32 Version: 2.48.1.16933
    CodeBase: file:///C:/Apps/KeePass2/KeePass.XmlSerializers.DLL
----------------------------------------
Windows.Security
    Assembly Version: 255.255.255.255
    Win32 Version: 10.0.10011.16384
    CodeBase: file:///C:/WINDOWS/system32/WinMetadata/Windows.Security.winmd
----------------------------------------
Windows.Foundation
    Assembly Version: 255.255.255.255
    Win32 Version: 10.0.10011.16384
    CodeBase: file:///C:/WINDOWS/system32/WinMetadata/Windows.Foundation.winmd
----------------------------------------
System.Runtime.WindowsRuntime
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.WindowsRuntime/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.WindowsRuntime.dll
----------------------------------------
System.Runtime
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Runtime.dll
----------------------------------------
Google.Apis.Drive.v3
    Assembly Version: 1.49.0.2201
    Win32 Version: 1.49.0.2201
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/A5arXRbF2L6v6D6Iksqd/Google.Apis.Drive.v3.DLL
----------------------------------------
Google.Apis
    Assembly Version: 1.49.0.0
    Win32 Version: 1.49.0.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/A5arXRbF2L6v6D6Iksqd/Google.Apis.DLL
----------------------------------------
Google.Apis.Core
    Assembly Version: 1.49.0.0
    Win32 Version: 1.49.0.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/A5arXRbF2L6v6D6Iksqd/Google.Apis.Core.DLL
----------------------------------------
Google.Apis.Auth
    Assembly Version: 1.49.0.0
    Win32 Version: 1.49.0.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/A5arXRbF2L6v6D6Iksqd/Google.Apis.Auth.DLL
----------------------------------------
System.Net.Http
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll
----------------------------------------
ReadablePassphrase.Core
    Assembly Version: 1.2.1.0
    Win32 Version: 1.2.1.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/2sIT6mEUm6MDdsVKLfoi/ReadablePassphrase.Core.DLL
----------------------------------------
ReadablePassphrase.Words
    Assembly Version: 1.2.0.0
    Win32 Version: 1.2.0.0
    CodeBase: file:///C:/Users/nascent/AppData/Local/KeePass/PluginCache/2sIT6mEUm6MDdsVKLfoi/ReadablePassphrase.Words.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



To Reproduce
Enable WinHellUnlock
See error

Expected behavior
Only started happening in the last few weeks

Screenshots
winhellounlock net

Additional context
This issue only started in the last few weeks.

Microsoft .NET exception

Describe the bug
During the first configuration I've got an exception, just after I've scan my fingerprfint in "Hello".

Screenshots
If applicable, add screenshots to help explain your problem.
image

Additional context
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at WinHelloUnlock.Library.GetKeys(PwDatabase db)
at WinHelloUnlock.UWPLibrary.d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at WinHelloUnlock.WinHelloUnlockExt.d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4075.0 built by: NET48REL1LAST
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

KeePass
Assembly Version: 2.44.0.19625
Win32 Version: 2.44.0.0
CodeBase: file:///C:/Program%20Files%20(x86)/KeePass%20Password%20Safe%202/KeePass.exe

System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4001.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4042.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4110.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

WinHelloUnlock
Assembly Version: 1.5.0.0
Win32 Version: 1.5
CodeBase: file:///C:/Program%20Files%20(x86)/KeePass%20Password%20Safe%202/Plugins/WinHelloUnlock.dll

Windows.Security
Assembly Version: 255.255.255.255
Win32 Version: 10.0.10011.16384
CodeBase: file:///C:/windows/system32/WinMetadata/Windows.Security.winmd

Windows.Storage
Assembly Version: 255.255.255.255
Win32 Version: 10.0.10011.16384
CodeBase: file:///C:/windows/system32/WinMetadata/Windows.Storage.winmd

Windows.Foundation
Assembly Version: 255.255.255.255
Win32 Version: 10.0.10011.16384
CodeBase: file:///C:/windows/system32/WinMetadata/Windows.Foundation.winmd

System.Runtime.WindowsRuntime
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.WindowsRuntime/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.WindowsRuntime.dll

KeeCloud
Assembly Version: 1.2.1.11
Win32 Version: 1.2.1.11
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/FNo8l5jIHUo0FXXbvDeh/KeeCloud.dll

KeePassRPC
Assembly Version: 2.0.34.27662
Win32 Version: 1.10.0.0
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/oyh8tdDgPdCetiZ74KmP/KeePassRPC.dll

Fleck2
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/oyh8tdDgPdCetiZ74KmP/Fleck2.DLL

DomainPublicSuffix
Assembly Version: 2.0.1.0
Win32 Version: 2.0.1.0
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/oyh8tdDgPdCetiZ74KmP/DomainPublicSuffix.DLL

Jayrock
Assembly Version: 0.9.12915.0
Win32 Version: 0.9.11214.1056
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/oyh8tdDgPdCetiZ74KmP/Jayrock.DLL

KeePass.XmlSerializers
Assembly Version: 2.44.0.19625
Win32 Version: 2.44.0.19625
CodeBase: file:///C:/Program%20Files%20(x86)/KeePass%20Password%20Safe%202/KeePass.XmlSerializers.DLL

Jayrock.Json
Assembly Version: 0.9.12915.0
Win32 Version: 0.9.13422.2206
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/oyh8tdDgPdCetiZ74KmP/Jayrock.Json.DLL

System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll

System.Security
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Security/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Security.dll

Microsoft.GeneratedCode
Assembly Version: 1.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll

Dropbox.Api
Assembly Version: 4.0.0.0
Win32 Version: 4.0.6472
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/FNo8l5jIHUo0FXXbvDeh/Dropbox.Api.DLL

System.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll

System.Net.Http.WebRequest
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http.WebRequest/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.WebRequest.dll

System.Threading.Tasks
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Threading.Tasks/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Threading.Tasks.dll

Microsoft.Threading.Tasks
Assembly Version: 1.0.12.0
Win32 Version: 1.0.168.0
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/FNo8l5jIHUo0FXXbvDeh/Microsoft.Threading.Tasks.DLL

Newtonsoft.Json
Assembly Version: 7.0.0.0
Win32 Version: 7.0.1.18622
CodeBase: file:///C:/Users/b6c/AppData/Local/KeePass/PluginCache/FNo8l5jIHUo0FXXbvDeh/Newtonsoft.Json.DLL

System.Net
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Net/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.dll

Hi - This is not an issue, but requesting if you can add a future.

Hi,
Thank you for adding bio-metric login.
The bio metric prompts only first time when we open the application.
But is it possible to add a future where the bio-metric prompts each time when even opening an entry with in the application, which will be more secured.

KeePass 2.xy portable support

First of all, thanks for the great plugin!
WinHelloUnlock doesn't support KeePass 2.xy portable. can you fix it?

best regards

Default Windows Hello Authtentificator?

Hi again @Angelelz

I don't know if its related to Windows Hello API...

Windows Hello support multiple authenticators, like Pin, Fingerprint, Face recognition or security keys (through FIDO2). In some environments, we have more than one authtentificator. Sometimes fingerprint is preferred for me, but others i prefer Face Recognition, is faster and more accuracy. Of course, you always can choose what authentificator to use, but by default one is chosen, and a couple of clicks are necessary to select a different one.

I do not know if it is configuration policy, if when multiple systems are present, you can choose a system always prevails over the other, or if it is possible to configure that the last one used is the one that is by default. Or perhaps, as I say, the API does not have any power over it and it is Windows who establishes one or the other as the principal.

In my case, the ideal would be to be able to use facial identification for KeePass by default, it would be even faster. I can remove my fingerprint or disable it on Windows Hello, but I don't want to remove it from the system. Similarly, for example, when I log in to Windows, it remembers the last system used, and it is the one that shows me the next time, which would really be ideal.

Using WinHelloUnlock on 2 different devices (same db)

Describe the bug
Using WinHelloUnlock on 2 different devices (device A and B) both with Windows Hello logins (A: fingerprint, B: Facial recognition) on the same db. After setting WinHelloUnlock up on device A, it works without problems in A. Then I set it up on B, which also works on B. Going back to A -> WinHelloUnlock does not work anymore. DB is synched via OneDrive.

To Reproduce
Steps to reproduce the behavior:

  1. Sync DB via OneDrive or other means
  2. Set up WinHelloUnlock on A
  3. Set up WinHelloUnlock on B
  4. WinHelloUnlock only works on B (the last machine it was setup), not on A

Expected behavior
WinHelloUnlock works on both devices

Error first time setting up

After confirming I want to set WindowsHelloUnlock, I enter my PIN and receive this message:

Error saving the composite Key: Value cannot be Null
Parameter name:a

I use Windows 10 version 1909
I uses a master password along with a key file on a secure desktop to open my database.

EDIT: Solved the issue by going to Tools/Options/Security and add a tick mark beside "remember master password (in encrypted form)..."

Now the plugin works beautifully. Thanks!

My database is stored on ICloud but I tested with a copy on my desktop and got same result.

[Enhancement] release Releases on Repository of Chocolatey packages

(Yeah I've just copied another issue)
Is your feature request related to a problem? Please describe.
Hello, this is not an issue in itself. No. I'm always frustrated when to find & download and upgrade plgx and manually compare its integrity for security reasons.
Describe the solution you'd like
Just an suggestion.
Would be nice to have a auto update feature for this primary security applications plugin from trusted source. The sha256 hash of PLRGX can be verified by installation automatically optionally if specified. For the lazy ones :) and to fix incompatibility issue with future of keepass version updates with plugin by getting all in one place for example.
I don't know if you have the spare time to maintain in parallel the "packages". Which basically would contains a script to URL of github latest release asset.
Additional context
If you may want to take a look here if you don't know already:
keepass plugins packages
(There are many plugins and packages count is growing. )

sirAndros/KeePassWinHello#22

Ask for two Hello authentications

I am not sure this is a bug, just an oversight perhaps. I have plugin KeeAutoExec installed to automatically open a second database. I recently installed KeePassUnlock and it correctly opens Keepass but it seems to want a second authentication for the second database which is already open by KeeAutoExec. A cancel allows to proceed.

It would be nice not to have to cancel.

To Reproduce
have two keepass db
Install KeeAutoExec
configure it to open the 2nd dB in a new tab
Install KeePassWinUnlock

Desktop (please complete the following information):
Edition Windows 10 Pro
Version 21H1
OS build 19043.1110
Experience Windows Feature Experience Pack 120.2212.3530.0

  • KeePass Version 2.47
  • Plugin Version 1.6
  • Hardware info Desktop i7, 16GB

KeePass settings and environment

  • Is secure desktop enabled
  • Is KeePass running under Administrator: yes
  • Installed plugins (if any) AutoTypeSplitter V1.2 KeyAutoExec V2.4

Error saving the composite key

Hi,
I am using this plugin for almost 2 years, but biometrics does not work in last days.
Remove and re-install plugin DLL gave me below message

---------------------------
KeePass
---------------------------
Error saving the composite key: The system cannot find the path specified.
Cannot add credential to Vault
---------------------------
OK   
---------------------------

The above message appearing after first install sequence and first wizard popup and Windows Security acceptation (finger or pin)

---------------------------
HelloUnlock
---------------------------
Do You want to set WinHelloUnlock for ........kdbx now?
---------------------------
Yes   No   
---------------------------

Also I cleared Plugin Data under Database Maintenance option, without luck.
I also tried some previous DLL versions of WinHelloUnlock, same behavior when click 'Enable WinHelloUnlock for this Database' (option menu)

anyone with same issue?

Win10 21H1
KeePass 2.50(64bit) [installed plugins: KeePassRPC-1.14.0.0 / KeeTheme-0.9.4.0]

Before install

Hi,
not being able to send a message to the developer I wish to ask two questions before I install this plugin.

1. is this KeePass Plugins fully working or do I have to expect some problems?
I ask this question as do not want to start having random issues. I run Windows 11 and KeePass ver. 2.54

2. after having installed this plugin will the master password remain the same? I ask this question because I use to have the same copy of KeeyPass database I use on my PC also on my smartphone. So, I must be able to use the same master password on both devices while on my PC I can also use biometrics.

Please let me know. Many thanks

Login window not visible when database without Hello-Access is detected

Describe the bug
When there is no Windows Hello access set up for the current database then the login window of KeePass2 is not visible.

To Reproduce
Steps to reproduce the behavior:

  1. Database exists and is set up, but does not have WinHelloUnlock configured.
  2. place the plugin dll in the directory
  3. startup KeePass
  4. Login window for Keepass is only visible in the Windows Taskbar but not on the screen (as if the pop would be minimized). Hovering the mouse cursor shows the thumbnail of the login window including the animated blinking cursor. You can type your password and hit enter and it will login but you don't see this on the screen. Also in the taskswitcher Keepass is shown twice.

Expected behavior
The login window should be visible.

Additional context
Windows 10 1903 - 18362.418
Windows color settings: transparency enabled, accent colors enabled (see screenshot) {don't know if relevant}
Nvidia Graphics Card (1070ti)
Keepass Version 2.43

Loaded Plugin:
CertKeyProviderPlugin 2.0.8.3
KeePassHttp 1.8.4.2
KeePassRPC 1.9.0.0
WinHelloUnlock 1.4
windows color settings
taskswitcher

[Feature Request] If windows hello is not available, avoid popups

I run keepass on 2 computers, one with hello face unlock and one without it. On the one with Hello face unlock, I received a message asking me if I want to set up the Hello face unlock, I did, everything worked fine. On the other computer, I don't have a camera at all, I open Keepass, I get a popup msgbox with the question if I want to set up face unlock, If I say yes, it tells me that Hello isn't available on this computer. If you'd just reverse the order in the logics here, and first check if Hello is even available, then we could avoid these annoying popups every time keepass is opened.

WinHello not available

I'm using an USB-fingeprint Reader on my Win 10 v1909 machine. I've activated WinHello via fingerprint in the settings of my account. When I try to use WinHelloUnlock, there is no popup after unlocking the database. When I try to activate WinHello via the plugins interface, it says "WinHello not available".

Any idea why the plugin doesn't recognize the fingerprint reader when the OS itself does recognize it?

Windows Secuirty pop-up usually isn't focused when prompted for login

Describe the bug
Windows Security pop-up usually loses focus when prompted.

To Reproduce
Steps to reproduce the behavior:
Open any database with windows hello setup, you'll notice that Windows Security is behind of KeePass.

Expected behavior
A clear and concise description of what you expected to happen.
Windows Security pop-up should be on top.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Additional context
Add any other context about the problem here.
There's a bug (or not) in Windows where you fail the Windows Hello Face (Not PIN) when Windows Security pop-up isn't focused. Combining with this issue makes unlocking rather frustrating as you fail over and over and over again. Maybe it's a Windows issue but simpler solution would be fixing the non-focus issue on your end.
image

The whole database is corrupted after choosing "delete key" in WinUnlock prompt!!!

Describe the bug
The whole database is corrupted after choosing "delete key" in WinUnlock prompt!!!
One day everything is fine, but the plugin prompt out a window suggesting deleting the key, I don't know why it suggested.
But After click, the database is broken and cannot be opened!

To Reproduce
Steps to reproduce the behavior:

  1. create a database
  2. Login the database using password.
  3. This plugin suggests setting the key into the database.
  4. One day the plugin suggests to delete it
  5. Then, the database cannot be opened

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Additional context
Add any other context about the problem here.

WinHelloUnlock can't be re-added ones removed from DB

WinHelloUnlock can't be re-added ones you remove it from DB Options. Its Tab disappears from Options, and its impossible to re-add the plugin to the same database ever again. Plugin reinstall doesn't fix the issue. No prompts to setup the plugin again, or reselect it in options, or enter fingerprint again.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Tools-Options-WinHelloUnlock'
  2. Deselect "Enable WinHelloUnlock for this DB" - OK to close Options
  3. Exit and launch KeePass 2.42.1 again
  4. There is no prompt to setup the plugin again after KeePass start
  5. Go to 'Tools-Options'. There is no Tab anymore "WinHelloUnlock", so you can't re-enable the plugin.

Expected Behavior
WinHelloPlugin Tab remains visible after "Enable WinHelloUnlock for this DB" is deselected in Options, including when KeePass is exited and re-launched.

Plugin not compatible with KeeAnywhere

Describe the bug
A clear and concise description of what the bug is.
This plugin won't work when KeeAnywhere is installed.
(https://chocolatey.org/packages/keepass-plugin-keeanywhere)
(https://github.com/Kyrodan/KeeAnywhere)

To Reproduce
Steps to reproduce the behavior:
1)Install KeeAnywhere;
2)Open database from cloud drive;
3)You'll see this plugin stops working.

Expected behavior
A clear and concise description of what you expected to happen.
This plugin should work with KeeAnywhere.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Additional context
Add any other context about the problem here.
KeeAnywhere reads database from cloud drive, the way WinHelloUnlock handles composite key is by remembering the database location, and it doesn't work well with KeeAnywhere since the database isn't at a local drive.

Log file: https://pastebin.com/crFDJyVY

Error using WinHello with database saved in Google Drive locally synced folder

Describe the bug
This just started happening today. I have been using WinHello with KeePass on a Windows 10 machine to use my WinX Hello PIN to log into my database, which has an extremely long and complicated Master PW only. I just updated KeePass (portable) from 2.43 to 2.44 and WinHello is breaking on that same database. If I export the database to another folder (not synchronized to Google Drive) WinHello works with KeePass 2.44 and that database with no issues. If I revert to KP 2.43, it works perfectly fine with the database in my Google Drive synced folder.

To Reproduce
Steps to reproduce the behavior:

  1. Open KP 2.44 (portable), open database in Google Drive folder
  2. Enter WinX Hello PIN
  3. See error (screenshot below)

Expected behavior
Obviously, I expect it to open my database as it always has.

Screenshot of error

KeePass WinHello plugin error #1

Additional context
I had a brainstorm to see if it would work from another folder, and v 2.44 + WinHello works as expected from another folder and an exported database, as well as a "save as" database to another location. I also noticed that reverting to KP 2.43 works with the original database that is saved in my Google Drive locally synced folder.

List of all plugins in KP:

KeePass WinHello plugin error #2
KeePass WinHello plugin error #3
KeePass WinHello plugin error #4

Windows 10 Version 1909 (OS Build 18363.592)

[Suggestion] Improve unlock mechanism when changing master key

Change master key after setting up Windows Hello, then lock and unlock the database, you'll see that this plugin fails unlocking the database.
image
1)It should prompt for standard unlock when failed unlocking with stored key;
2)It should check if composite key is still unlockable after unlocking database with standard unlock prompt;
3)It should ask for setting up Windows Hello again after changing the master key.

Undesired error message upon fingerprint unlock cancellation

Describe the bug
When a fingerprint unlock attempt is canceled, there's an error message popping out (in its own dialog), accompanied by a bell sound: "error decrypting the data: the request was canceled by the user"

In my view this error message is undesired and annoying. The cancellation was initiated by myself (the user), hence the cancellation is not an error, but rather the desired behavior. I'd much prefer that after cancelling the fingerprint unlock, I'd return to the KeePass database unlock dialog (which anyway appears after I click the "OK" button in the error dialog).

To Reproduce

  1. Open a KeePass database file and wait for the fingerprint unlock screen.
  2. Cancel by either clicking the "Cancel" button, the "X" button at the top right, or just hit the "Esc" key.
  3. Observe the error message pops up.

Expected behavior
After cancelling the fingerprint unlock, I'd return to the KeePass database unlock dialog.

Screenshots
image

Additional context
KeePass v2.45
WinHelloUnlock 1.5

New day first login error (Credential not retrieved: TPM 2.0 (0x8028008B))

Describe the bug
When starting the application the next day, after logging in with a fingerprint, it ends up with an error

To Reproduce
Steps to reproduce the behavior:

  1. run the application (picture 1)
  2. fingerprint attached
  3. ended with an error (0x8028008B) (picture 2)
  4. After the restart of the application, the registration process will take place correctly.

Screenshots
image
picture 2

Additional context
Please fix or advice. Thank you
(Dell Latitude 5520, Service Tag: JM86HL3,Integrated fingerprint reader in the keyboard (power button) Win10 (fully updated))

Autofill unlocks, but does not fill

CTRL + ALT + A (and CTRL+ALT+SHIFT+A) ... just unlocks.

  • it does not autofill
  • it does not cloase the DB again (if it was locked)

What it should do:

  • unlock
  • trigger the default autofill
  • lock again.

Help building the project in Visual Studio

I would very much like to try this however I am getting a lot of compile errors, no doubt my fault here.

I am running VS 2015.

Unzipped your code and tried to Build.

Example - type or namespace name OptionsForm could not be found.

Is there anything special I need to take into account ?

error setting hello for new db

Describe the bug
after doing the initial finger scan, an error window pops up:
"Error saving the composite key: The System can not find the designated file. Safe could not be opened"
actually it is in german:
"Error saving the composite key: Das System kann die angegebene Datei nicht finden. Tresor kann nicht geöffnet werden."

Unbenannt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.