sirAndros / KeePassWinHello

Quick unlock KeePass 2 database using biometrics with Windows Hello
MIT License
318 stars 23 forks source link

Handle "Windows Hello is not available" #1

Closed rjt closed 6 years ago

rjt commented 6 years ago

Looking forward to using my fingerprint to unlock keepass and more. Thank You. On one of my systems, KeePass basically crashes upon startup and close or exit. If i choose "Continue", it does not continue gracefully, i have to force quit. Would be nice if the KeePassWinHello plugin handled the absence of "Windows Hello" exception gracefully.

Win10 1803 (OS Build 17134.228)
KeePass 2.39.1
Windows Hello is not available
KeePassWinHello
   at KeePassWinHello.WinHello.Encrypt(Byte[] data)
   at KeePassWinHello.WinHelloProvider.Encrypt(ProtectedBinary composedKey)
   at KeePassWinHello.WinHelloProvider.CacheKeyForDB(String databasePath, CompositeKey keys)
   at KeePassWinHello.KeePassWinHelloExt.FileClosingPreHandler(Object sender, FileClosingEventArgs e)
   at KeePass.Forms.MainForm.CloseDocument(PwDocument dsToClose, Boolean bLocking, Boolean bExiting, Boolean bEcas, Boolean bUpdateUI)
   at KeePass.Forms.MainForm.CloseAllDocuments(Boolean bExiting)
   at KeePass.Forms.MainForm.OnFormClosing(Object sender, FormClosingEventArgs e)
   at System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
   at System.Windows.Forms.Form.RaiseFormClosingOnAppExit()
   at System.Windows.Forms.Application.ExitInternal()
   at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
   at System.Windows.Forms.Control.WndProcException(Exception e)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at KeePass.Program.MainPriv(String[] args)
Byte[] Encrypt(Byte[])
shuffle-c commented 6 years ago

Thank you for your feedback!

We've fixed the issue in the recent release v1.0.1

Best wishes, Sasha Sitnikov