JanisEst / KeePassQuickUnlock

KeePass 2.x plugin which lets you unlock databases quickly.
MIT License
134 stars 11 forks source link

Unhandled ArgumentNullException #43

Open HikariWS opened 2 years ago

HikariWS commented 2 years ago

Hello, tnx a lot for this plugin.

I installed it and wish to used it, but it seems it's conflicting with some plugin. My guess is SmartCertificateKeyProviderPlugin.dll, I use it to use smartcard certificate as a keyfile.

The exception happens when I try to open a db after having closed it. I open KeePass normally, unlock the database, then minimize it. This makes the db be locked. When I bring KeePass back and it automatically opens the Open Database dialog, the exception dialog pops.

************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: type
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at KeePassQuickUnlock.QuickUnlockPromptForm..ctor(Boolean isOnSecureDesktop)
   at KeePassQuickUnlock.QuickUnlockProvider.GetKey(KeyProviderQueryContext ctx)
   at KeePassLib.Keys.KeyProviderPool.GetKey(String strProviderName, KeyProviderQueryContext ctx, Boolean& bPerformHash)
   at KeePass.Forms.KeyPromptForm.CreateCompositeKey()
   at KeePass.Forms.KeyPromptForm.OnBtnOK(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.PerformClick()
   at KeePassQuickUnlock.KeePassQuickUnlockExt.<>c__DisplayClass8.<WindowAddedHandler>b__4(Object sender2, EventArgs e2)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnShown(EventArgs e)
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
KeePass
    Assembly Version: 2.49.0.17016
    Win32 Version: 2.49.0.0
    CodeBase: file:///D:/KeePass2/KeePass2.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4270.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.4300.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.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.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.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4320.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.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
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3752.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
KeeChallenge
    Assembly Version: 1.5.0.0
    Win32 Version: 1.5.0.0
    CodeBase: file:///D:/KeePass2/KeeChallenge.DLL
----------------------------------------
SmartCertificateKeyProviderPlugin
    Assembly Version: 2.0.1.0
    Win32 Version: 2.0.1.0
    CodeBase: file:///D:/KeePass2/Plugins/SmartCertificateKeyProviderPlugin.dll
----------------------------------------
KeeOtp2
    Assembly Version: 1.5.7.0
    Win32 Version: 1.5.7.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/INJXfzcOpe4l87Wj0pMR/KeeOtp2.dll
----------------------------------------
NHotkey
    Assembly Version: 2.0.0.0
    Win32 Version: 2.1.0.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/INJXfzcOpe4l87Wj0pMR/NHotkey.DLL
----------------------------------------
Yort.Ntp
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.0.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/INJXfzcOpe4l87Wj0pMR/Yort.Ntp.DLL
----------------------------------------
NHotkey.WindowsForms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.1.0.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/INJXfzcOpe4l87Wj0pMR/NHotkey.WindowsForms.DLL
----------------------------------------
KeePassQuickUnlock
    Assembly Version: 2.4.0.0
    Win32 Version: 2.4.0.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/uautPLEpIFGCZGd06dnd/KeePassQuickUnlock.dll
----------------------------------------
KeePassRPC
    Assembly Version: 2.0.34.34283
    Win32 Version: 1.14.0.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/hKZ7e9RVxYgMx7De50KJ/KeePassRPC.dll
----------------------------------------
Fleck2
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/hKZ7e9RVxYgMx7De50KJ/Fleck2.DLL
----------------------------------------
DomainPublicSuffix
    Assembly Version: 2.0.1.0
    Win32 Version: 2.0.1.0
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/hKZ7e9RVxYgMx7De50KJ/DomainPublicSuffix.DLL
----------------------------------------
Jayrock
    Assembly Version: 0.9.12915.0
    Win32 Version: 0.9.11214.1056
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/hKZ7e9RVxYgMx7De50KJ/Jayrock.DLL
----------------------------------------
Jayrock.Json
    Assembly Version: 0.9.12915.0
    Win32 Version: 0.9.13422.2206
    CodeBase: file:///C:/Users/Jack/AppData/Local/KeePass/PluginCache/hKZ7e9RVxYgMx7De50KJ/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.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
----------------------------------------
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.4270.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
----------------------------------------
KeePass.XmlSerializers
    Assembly Version: 2.49.0.17016
    Win32 Version: 2.49.0.17016
    CodeBase: file:///D:/KeePass2/KeePass.XmlSerializers.DLL
----------------------------------------
JanisEst commented 2 years ago

Does it occur without the other plugin too? From the stacktrace I have no clue where the Activator.CreateInstance should happen. The Form constructor should never call this method?!

HikariWS commented 2 years ago

So, is it being called by another plugin and that one is conflicting with yours?

I haven't tried disabling other plugins because I need them and would need to create a new db to test. I ended up trying LockAssist and quick lock feature worked on it, so I just used it instead :/