Commit Graph

463 Commits

Author SHA1 Message Date
Jonathan White
a5af525936
Refactor: Move to simple default builds
* Remove individual feature flags in favor of a single `KPXC_MINIMAL` flag that removes advanced features from the build. Basic features are no longer guarded by feature flags.
* Basic features: Auto-Type, Yubikey, KeeShare
* Advanced features include: Browser (and passkeys), SSH Agent, and Secret Service
* Networking, Documentation, and Update Checking remain as feature flags to accommodate various distro requirements.

This change also cleans up the main CMakeLists.txt by re-arranging some content and placing macros into a dedicated include file. The minimum CMake version was bumped to 3.16.0 to conform to our minimum Ubuntu support of Focal (20.04). This also allows us to default to C++20, we fall back to C++17 for Qt versions less than 5.15.0 due to lack of support.

Lastly this change removes the KEEPASSXC_BUILD_TYPE="PreRelease" which is never used. We only support "Snapshot" and "Release" now.
2024-07-28 18:27:12 -04:00
StoyanDimitrov
afe634d4f2 Fix typos in tooltips from EditEntryWidgetBrowser.ui 2024-07-02 06:52:37 -04:00
Sami Vänttinen
fbdd97b1be
Refactor Database Settings (#9485)
Includes following changes:

* Encryption Settings now has a similar key with the new database wizard for switching between Advanced and Simple Settings
* The extra UI layer DatabaseSettingsDialog.ui has been removed. DatabaseSettingsDialog class now inherits EditWidget instead of DialogyWidget (just like Application Settings).
* Extra classes for separate page settings (DatabaseSettingsPageFdoSecrets, DatabaseSettingsPageKeeShare) have been removed. Instead the widgets are used directly in DatabaseSettingsDialog. Same could be done later to Application 

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-22 07:25:32 -04:00
Carlo Teubner
07f565aa49 Require Qt >= 5.12
Bump the minimum required Qt version up to 5.12, as per
https://github.com/keepassxreboot/keepassxc/issues/10859#issuecomment-2148477826.
Previously, the minimum version was 5.2.0 based on the CMakeLists.txt
check, though it's unclear if such old versions would actually work.

With this, we are able to remove a whole bunch of #ifdef'd code.
2024-06-22 00:01:23 -04:00
AgostonSzepessy
1f9c25cc91
Show character count in password generator dialog (#10940)
Displays the number of characters in the password field in the password generator dialog. This fixes #10858.
2024-06-21 23:53:18 -04:00
James Carroll
5f2ee86d72
Snap: Improve Web-browser Native Messaging host functionality (#10906)
* Snap: Improve Web-browser Native Messaging host functionality

This commit allows for the snap distribution of KeepassXC to self-manage native messaging manifests
This is done by making the binary aware of the snapd environment changes that currently prevent this.
Furthermore, the snap sandbox is expanded to the bare minimum needed to access these privileged files.

Please note if running a self-compiled / untrusted KeepassXC snap build (I.E, installed with --dangerous)
that you must manually run `sudo snap connect keepassxc:browser-native-messaging` to grant permissions.

This will work on all distributions that expose `/snap/bin/` - such as Ubuntu, Debian, etc.
For systems which don't provide `/snap/`, such as Fedora, follow instructions for enabling "Classic" snaps.
e.g., `sudo ln -s /var/lib/snapd/snap /snap`

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-19 15:49:30 -04:00
Jonathan White
2c0844807e Improve overall database settings behavior
* Fixes #10723 - only display password strength warning when actively editing the password
* Also improve behavior of minimum quality warning
* Improve behavior and handling of password changes with the database settings dialog
* Prevents loss of newly entered password when toggling between elements in the settings page
* On error, switch to tab that prevents saving database settings for easier correction
2024-06-16 08:43:09 -04:00
Jonathan White
f80e79f71a Improve CSV import when title field isn't specified
* Fixes #10433
2024-06-16 07:51:13 -04:00
Jonathan White
28e6887aa4 Improve handling of encrypted Bitwarden json
* Fixes #10785
2024-06-16 07:47:10 -04:00
varjolintu
647272e9c5 Fix typos in DatabaseSettingsWidgetRemote 2024-06-13 16:19:05 -04:00
sforst
1ca607792d
Support remote database access using external tools (#7222)
* Provide remote database sync capability

Allow arbitrary commands to be defined and executed for syncing databases with remote services. This includes sftp, scp, rsync, etc. 

Remote commands are stored per-database and sync operations are manually triggered by the user from the Database -> Remote Sync menu. 

---------

Co-authored-by: Stefan Forstenlechner <t-h-e@users.noreply.github.com>
Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-13 06:23:41 -04:00
Alexander Wilms
e72cc7dd73 Add keywords to .desktop file
Taken from Github topics
2024-06-08 08:39:50 -04:00
Carlo Teubner
ecdebd71c1 Fix file permissions for some files
Ensure that files that shouldn't be executable aren't.
2024-06-06 17:35:49 -04:00
Sami Vänttinen
5de669eb7b
Add action item for removing a passkey from entry (#10777) 2024-05-27 16:50:35 -04:00
Alexandre Petit
8cd45f57b7
Fix SSH Agent broken decrypt button (#10638)
* SSH Agent: Fix broken decrypt button (Fixes #10637)

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-05-27 14:48:33 -04:00
Jonathan White
b56c5cbde8
Update changelog 2024-05-05 17:14:30 -04:00
varjolintu
92b30ae7ec Passkeys: Register to an existing entry 2024-05-05 13:53:43 -04:00
Jonathan White
1896883382 Bitwarden and 1PUX importer improvements
* Fixes #10400
  - Support TOTP entries with bare secrets instead of otpauth urls for Bitwarden. Vice-versa for 1PUX.
  - Support Bitwarden Argon2id encryption scheme

* Fixes #10380 - Support Bitwarden organization collections
2024-04-29 08:51:01 -04:00
Jonathan White
19d4f7334c Correct minor issues in translations 2024-04-28 18:16:10 -04:00
Mikko Saarinki
a542ded97c
QMenubar option to show/hide itself (#10341)
--------

Co-authored-by: Mikko Saarinki <mikko.saarinki@michaelkingston.fi>
Co-authored-by: Jonathan White <support@dmapps.us>
2024-04-27 22:09:38 -04:00
Jonathan White
7ae65dd656 Remove password repeat application setting
* This removes the application setting to require typing the password in again even though it is visible.
* Removed automatic password repeat when the password is made visible on changing.
2024-04-27 09:49:38 -04:00
Sami Vänttinen
e70777061c
Passkeys: Add warning on export (#10411) 2024-03-31 16:12:15 -04:00
Jonathan White
e700195f0a Add 1Password 1PUX and Bitwarden JSON Importers
* Closes #7545 - Support 1Password 1PUX import format based on https://support.1password.com/1pux-format/

* Closes #8367 - Support Bitwarden JSON import format (both unencrypted and encrypted) based on https://bitwarden.com/help/encrypted-export/

* Fixes #9577 - OPVault import when fields have the same name or type

* Introduce the import wizard to handle all import tasks (CSV, KDBX1, OPVault, 1PUX, JSON)

* Clean up CSV parser code to make it much more efficient and easier to read

* Combine all importer tests (except CSV) into one test file
2024-03-09 10:44:54 -05:00
Janek Bevendorff
6a273363c4 Automatically detect USB device changes 2024-03-08 10:55:22 -05:00
Sami Vänttinen
ac2b445db6
Passkeys improvements (#10318)
Refactors the Passkey implementation to include more checks and a structure that is more aligned with the official specification.
Notable changes:
- _BrowserService_ no longer does the checks by itself. A new class _BrowserPasskeysClient_ constructs the relevant objects, acting as a client. _BrowserService_ only acts as a bridge between the client and _BrowserPasskeys_ (authenticator) and calls the relevant popups for user interaction.
- A new helper class _PasskeyUtils_ includes the actual checks and parses the objects.
- _BrowserPasskeys_ is pretty much intact, but some functions have been moved to PasskeyUtils.
- Fixes Ed25519 encoding in _BrowserCBOR_.
- Adds new error messages.
- User confirmation for Passkey retrieval is also asked even if `discouraged` is used. This goes against the specification, but currently there's no other way to verify the user.
- `cross-platform` is also accepted for compatibility. This could be removed if there's a potential issue with it.
- Extension data is now handled correctly during Authentication.
- Allowed and excluded credentials are now handled correctly.
- `KPEX_PASSKEY_GENERATED_USER_ID` is renamed to `KPEX_PASSKEY_CREDENTIAL_ID`
- Adds a new option "Allow localhost with Passkeys" to Browser Integration -> Advanced tab. By default it's not allowed to access HTTP sites, but `http://localhost` can be allowed for debugging and testing purposes for local servers.
- Add tag `Passkey` to a Passkey entry, or an entry with an imported Passkey.

Fixes #10287.
2024-03-06 07:42:01 -05:00
Jonathan White
dff2f186ce
Fix translations 2024-03-01 23:29:49 -05:00
Waqar Ahmed
a472ef8a93
Allow configuring keyboard shortcuts (#9643)
Closes #2689

The design of the respective code is loosely based on KDE's KActionCollection. The ActionCollection manages all actions that can be shortcut configured. These actions are then exposed in the config and a user can assign a different shortcut.

Actions inside the MainWindow have been added to the ActionCollection.

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-02-04 06:29:04 -05:00
Michael Duersch
884386c924 Allow groups to restrict by browser integration key (#6437) 2024-01-14 07:43:48 -05:00
wise0n
07232f04c0 Fix menu location in alert 2024-01-06 16:53:33 -05:00
egglessness
d44486ce94
Add configurable password strength check on database password (#9782)
* Set default value of DatabasePasswordMinimumQuality to 3 (do not accept a master password that is less than Good)

* Add custom message box button "Continue with weak password"
2024-01-06 13:53:18 -05:00
varjolintu
b2e6dc5fda Passkeys: Add Resident Key error 2024-01-06 13:47:22 -05:00
varjolintu
6d19ab8894 Passkeys: UI adjustments 2024-01-06 13:47:12 -05:00
spaette
9e119230d4
Fix minor typos (#10124) 2023-12-22 15:12:07 -05:00
louib
e355ac54b8 refactor: remove unused merge function
This function in unused since we removed the all the unused merge modes
in f7fd3881e3
2023-12-16 12:51:22 -05:00
louib
f7fd3881e3 refactor: remove unused merge methods 2023-12-10 08:19:08 -05:00
Sami Vänttinen
13c88e1013
Passkeys: Add support for importing Passkey to entry (#9987)
---------
Co-authored-by: Jonathan White <support@dmapps.us>
2023-11-22 23:11:25 -05:00
Jonathan White
49f2924532
Update translations from Transifex
* Also update Transifex config file to latest format
2023-11-04 14:52:08 -04:00
Sami Vänttinen
6f2354c0e9
Add basic support for WebAuthn (Passkeys) (#8825)
---------

Co-authored-by: varjolintu <sami.vanttinen@protonmail.com>
Co-authored-by: droidmonkey <support@dmapps.us>
2023-10-25 10:12:55 -04:00
Sami Vänttinen
029b4c25ac
Fix terminating KeePassXC processes with MSI installer (#9822) 2023-10-23 23:23:20 -04:00
Thomas Hobson
f93adaa854 Add Polkit Quick Unlock Support
Closes #5991
Closes #3337 - Support fingerprint readers on Linux

Polkit allows for authentication of many means, including fingerprint scanning. Furthermore, a common interface for Quick Unlocking has been implemented, and has been replaced throughout to make implementing other quick unlock strategies easier.

Refactor QuickUnlock to use UUID stored in headers. This is a new feature using the KDBX 4 standard to store a randomly generated UUID in the public headers of the database. This enables identification of KDBX file without relying on path or filename and will eventually support persistent Quick Unlock.
2023-10-23 23:07:27 -04:00
Felix Nüsse
27c5c5d464 Show Row-Backgroundcolor in a column
Fixes #6553

Allow users to choose to show the entry background color as a column instead of changing the background of the entire row.
2023-09-16 09:00:03 -04:00
Jonathan White
1919c23c09
Backport 2.7.6 changelog and release-tool updates 2023-08-26 07:23:02 -04:00
Jonathan White
0eded87dd3
Improve colorful lock icon for system tray (#9632)
* Fix #9432
* Simplify tray icon selection code
* Update all icons with latest export
* Fix MIME type icon appearance on KDE
---------
Co-authored-by: Janek Bevendorff <janek@keepassxc.org>
2023-08-14 21:39:50 -04:00
Jonathan White
eee25a1c35
Fix several issues with Quick Unlock (#9697)
* Fix #7892 - Pressing escape when the quick unlock prompt is shown will now go back to the main unlock dialog view.
* Fix #9030 - Quick unlock will be automatically invoked in the unlock dialog upon being shown.
* Fix #9554 - Quick unlock application setting will be updated every time the settings widget is shown instead of just on first launch.

* Show warning that quick unlock is not enabled if user cancels Windows Hello prompt. This should limit people thinking there is a security issue. Also improve documentation describing this behavior.

* Disable quick unlock in gui tests
2023-08-10 08:21:08 -04:00
Jonathan White
a7f857d32c Copy TOTP on preview panel on double click
* Closes #9545
2023-08-06 15:26:33 -04:00
Jonathan White
15b8b5d92f Significantly improve visual when dragging entries to copy/move
* Fixes #6079
2023-08-06 15:26:04 -04:00
Blessio
1b12c958c5
Improve error message when browser proxy cannot be found (#9385)
Co-authored-by: Blessio <blessio.blog@blessio.com>
Co-authored-by: Jonathan White <support@dmapps.us>
2023-08-05 21:15:22 -04:00
Jonathan White
8199bf0869
Linux: Fix warning message about --allow-screencapture (#9638)
* Fixes #9420
2023-07-19 16:12:25 -04:00
Sami Vänttinen
9214ab2038
Add warning for duplicate URLs with Additional URLs list (#9588) 2023-07-15 15:33:05 -04:00
Jonathan White
3cf14971f2 Improve database encryption settings UX
Fixes #6190

Remove the advanced settings checkbox and replace with a dedicated tab widget interface to toggle between basic and advanced encryption settings.
2023-07-09 12:29:56 -07:00