mihaifm / HIBPOfflineCheck

Keepass plugin that performs offline and online checks against HaveIBeenPwned passwords
Other
317 stars 17 forks source link

Cannot load version 1.4.0 on Ubuntu 18.10 #27

Closed dusscloud closed 5 years ago

dusscloud commented 5 years ago

Hello

I want to use the HIBPOfflineCheck plugin on my existing keepass 2.41 on top of ubuntu 18.10 (up to date). Unfortunately, when launching keepass its says : "/usr/lib/keepass2/Plugins/HIBPOfflineCheck.plgx The plugin cannot be loaded. A newer .NET Framework is required"

What should I do ?

mihaifm commented 5 years ago

Do any of the older releases of the plugin work? The last version requires .NET 4.5, not sure which version is bundled with Ubuntu.

dusscloud commented 5 years ago

Indeed it works with HIBPOfflineCheck 1.3.2 but not 1.4.0 Regarding .NET, this is brought by mono. Accoding to wikipedia it supports some of .NET 4.5. Do you know what exactlty requires the 1.4.0 version of the plugin?

jscheffl1 commented 5 years ago

same for me... I tried to fix it but finally found this reference. Version 1.3.1 is working, 1.4.0 hits the same error for me. Unfortuanetely I am tooo new to .NET/Mono in Ubuntu 18.04 such that I am (currently) not able to build it on my machine :-( jscheffl@:~/Programmieren/DOT.NET/HIBPOfflineCheck$ mono --version Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1ubuntu1) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen

mihaifm commented 5 years ago

The only .NET 4.5 feature used is the async processing to keep the GUI responsive when checking a lot of passwords. This is most likely supported by Mono. It may be just a version string check by KeePass when compiling the .plgx after I added this flag

https://github.com/mihaifm/HIBPOfflineCheck/blob/8a6340d3198e974a6bdef598c061c3830eccc588/Util/build_plgx.bat#L21

I will try to build the .plgx without this flag and check it on Ubuntu.

jscheffl1 commented 5 years ago

Thanks, I am a newbie on Mono but if anybody can give me a hint, I could try building this on my Ubuntu myself as a test as well :-) At the moment I fail in: jscheffl@hp840g1:~/Programmieren/DOT.NET/HIBPOfflineCheck$ xbuild HIBPOfflineCheck.csproj XBuild Engine Version 14.0 Mono, Version 4.6.2.0 Copyright (C) 2005-2013 Various Mono authors

Build started 2/18/2019 9:35:17 PM.


Project "/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/HIBPOfflineCheck.csproj" (default target(s)): Target PrepareForBuild: Configuration: Debug Platform: AnyCPU Target ResolveAssemblyReferences: /usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets: warning : Reference 'KeePassLib' not resolved For searchpath {CandidateAssemblyFiles} Warning: {CandidateAssemblyFiles} not supported currently For searchpath {HintPathFromItem} Considered '/home/jscheffl/Programmieren/DOT.NET/KeePass-2.38-bin/KeePassLibC32.dll' as a file, but it is an invalid assembly For searchpath {TargetFrameworkDirectory} Considered target framework dir /usr/lib/mono/4.5/, assembly named 'KeePassLib' not found. Considered target framework dir /usr/lib/mono/4.5//Facades/, assembly named 'KeePassLib' not found. For searchpath {PkgConfig} Considered KeePassLib, but could not find in any pkg-config files. For searchpath {GAC} Considered KeePassLib, but could not find in the GAC. For searchpath {RawFileName} Considered 'KeePassLib' as a file, but the file does not exist For searchpath bin/Debug/ Considered '/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/bin/Debug/KeePassLib' as a file, but the file does not exist Considered '/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/bin/Debug/KeePassLib.exe' as a file, but the file does not exist Considered '/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/bin/Debug/KeePassLib.dll' as a file, but the file does not exist Target GenerateSatelliteAssemblies: No input files were specified for target GenerateSatelliteAssemblies, skipping. Target _GenerateTargetFrameworkMonikerAttribute: Skipping target "_GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date. Target CoreCompile: Tool /usr/lib/mono/4.5/mcs.exe execution started with arguments: /noconfig /debug:full /debug+ /optimize- /out:obj/Debug/HIBPOfflineCheck.dll /resource:obj/Debug/HIBPOfflineCheck.HIBPOfflineCheckOptions.resources /resource:obj/Debug/HIBPOfflineCheck.ProgressDisplay.resources /resource:obj/Debug/HIBPOfflineCheck.Properties.Resources.resources HIBPOfflineCheckExt.cs HIBPOfflineCheckOptions.cs HIBPOfflineCheckOptions.Designer.cs HIBPOfflineColumnProv.cs Options.cs ProgressDisplay.cs ProgressDisplay.Designer.cs Properties/AssemblyInfo.cs Properties/Resources.Designer.cs obj/Debug/.NETFramework,Version=v4.5.2.AssemblyAttribute.cs /target:library /define:"DEBUG;TRACE" /nostdlib /reference:/usr/lib/keepass2/KeePass.exe /reference:/usr/lib/mono/4.5/System.dll /reference:/usr/lib/mono/4.5/System.DirectoryServices.dll /reference:/usr/lib/mono/4.5/System.Drawing.dll /reference:/usr/lib/mono/4.5/System.Windows.Forms.dll /reference:/usr/lib/mono/4.5/System.Data.dll /reference:/usr/lib/mono/4.5/System.Xml.dll /reference:/usr/lib/mono/4.5/System.Core.dll /reference:/usr/lib/mono/4.5//mscorlib.dll /warn:4 HIBPOfflineCheckExt.cs(33,55): error CS0246: The type or namespace name `PluginMenuType' could not be found. Are you missing an assembly reference? Task "Csc" execution -- FAILED Done building target "CoreCompile" in project "/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/HIBPOfflineCheck.csproj".-- FAILED Done building project "/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/HIBPOfflineCheck.csproj".-- FAILED

Build FAILED.

Warnings:

/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/HIBPOfflineCheck.csproj (default targets) -> /usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets (ResolveAssemblyReferences target) ->

/usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:  warning : Reference 'KeePassLib' not resolved

Errors:

/home/jscheffl/Programmieren/DOT.NET/HIBPOfflineCheck/HIBPOfflineCheck.csproj (default targets) -> /usr/lib/mono/xbuild/14.0/bin/Microsoft.CSharp.targets (CoreCompile target) ->

HIBPOfflineCheckExt.cs(33,55): error CS0246: The type or namespace name `PluginMenuType' could not be found. Are you missing an assembly reference?

 1 Warning(s)
 1 Error(s)

Time Elapsed 00:00:00.7797220

mihaifm commented 5 years ago

Removing the --plgx-prereq-net flag solved the problem. I published a new release that should work with Mono.

Please note that it requires KeePass 2.41.

@jscheffl I believe this is the reason you're getting the error, you're running the older version of KeePass.

I noticed that apt get install keepass2 still installs KeePass 2.38, so I had to update my /etc/sources.list to get 2.41

Let me know if you manage to verify this release. Thanks

dusscloud commented 5 years ago

Let me know if you manage to verify this release. Thanks

Keepass successfully loads, great. Nevertheless, I tried to use online mode then and I have "HIBP API error" as a result.. not sure this is linked to the original issue though

mihaifm commented 5 years ago

@dusscloud let's open another issue for that. See if you can access this url from your browser first: https://api.pwnedpasswords.com/range/ABCDE

jscheffl1 commented 5 years ago

Thanks for the patch and the test. Sorry for the delayed response - I was a bit busy the last weeks. All runs fine now after upgrading to KP2.41 and HIBP 1.4.1