Commit Graph

4601 Commits

Author SHA1 Message Date
Jonathan White
35af1c6695 Fix focus loss when using Auto-Type from locked database
* Fixes #10439
2024-04-23 20:56:31 -04:00
varjolintu
cb1ae44a3b Passkeys: Position the confirm dialog with the parent window 2024-04-21 12:23:37 -04:00
varjolintu
41d00135af Passkeys: Fix duplicate database selection 2024-04-21 07:19:16 -04:00
Jonathan White
6f11422604 Prevent SSH Agent from using entries in the recycle bin
* Fixes #10516
* Also cleanup Group::isRecycled() code a little
2024-04-20 12:54:40 -04:00
Jonathan White
e657cbf43b Fix crash when deleting history items
* Fixes #10386
2024-04-20 12:53:39 -04:00
Jonathan White
6481ecccd7 Fix crash on screen lock or computer sleep
* Fixes #10455
* Fixes #10432
* Fixes #10415

Prevent setting critical key components to nullptr when database data is cleared. This can result in a crash due to race condition between threads.

Added a bunch of asserts to detect this problem and if guards to prevent actual crashes.
2024-04-13 07:54:18 -04:00
Jonathan White
f60601fa67 Fix CSV import skipping over single-name groups
* Fixes #10574
2024-04-13 07:53:12 -04:00
Jonathan White
194409abd6 Remove various undefined/unused functions 2024-03-31 17:19:35 -04:00
varjolintu
5883f49f37 Passkeys: Fix RP ID validation 2024-03-31 17:19:22 -04:00
varjolintu
8a4787278d Passkeys: Do not ask update with a new user handle 2024-03-31 17:19:09 -04:00
varjolintu
9329df2b48 Passkeys: Enable Import Passkey entry menu item only if a single entry is selected 2024-03-31 16:13:04 -04:00
Sami Vänttinen
c34098546d
Passkeys: Fix compatibility with StrongBox (#10420) 2024-03-31 16:12:33 -04:00
Sami Vänttinen
e70777061c
Passkeys: Add warning on export (#10411) 2024-03-31 16:12:15 -04:00
varjolintu
d5e6f394b7 Passkeys: Allow nfc and usb transports 2024-03-31 16:11:53 -04:00
Joachim Breuer
35fdcfa28d Do not override fixed font size
This allows properly configuring a readable/desired fixed font in system settings, keepassxcrc etc.
2024-03-31 14:51:06 -04:00
Drwsburah
812bb606c7
Implemented database file hidden attribute preservation on Windows (#10343)
* Implemented database file hidden attribute preservation on Windows

Implemented database file hidden attribute preservation on Windows by modifying the save function to check the hidden attribute of the original database before saving and then reapply it post-saving if running on Windows so that users can easily store their database in a hidden file without having to re-hide it every time it's modified.

Updated the TestDatabase::testSaveAs() unit test to first verify after the initial save that the database file is not hidden before hiding it then saving again and verifying that it is now hidden.

Signed-off-by: Drwsburah <Drwsburah@yahoo.com>
Co-authored-by: Jonathan White <support@dmapps.us>
2024-03-31 14:48:57 -04:00
Jonathan White
db0b659a53 Fix Message Box button size on macOS and Linux
* Fixes #10381
2024-03-31 14:48:06 -04:00
Jonathan White
9521f63b3a Fix focusing search after database unlock
* Fixes #10405
2024-03-31 14:47:50 -04:00
Jonathan White
32f38cc6ed
Fix placement of variable in codecov.yaml 2024-03-31 13:51:40 -04:00
Jonathan White
6cd2de35fc
Improve codecov integration 2024-03-31 08:58:54 -04:00
Chris
b916b76713 Fix Indonesian language descriptor
Bahasa is simply means language in Indonesian.
Therefore, referring Indonesian language as "bahasa" is incorrect.
2024-03-31 08:06:44 -04:00
Jonathan White
5513ff5c1f Fix TestCli and TestGui entropy tests across platforms
* zxcvbn wordlists can vary between platforms depending on packager adjustments (ie, zxcvbn-c vs Ubuntu Focal)
2024-03-31 07:56:23 -04:00
Jonathan White
60908d4b9b Fix parsing stat file for polkit 2024-03-29 06:29:30 -04:00
at5hk
514afebcc7 updates the Install.md documentation from qt5 to qt@5 2024-03-15 23:18:33 -04:00
Jonathan White
267928d6de
Update release-tool.ps1 for manifest builds 2024-03-09 18:00:36 -05:00
varjolintu
7293dd1fb7 Add basic documentation for Passkeys 2024-03-09 13:55:38 -05:00
Jonathan White
3fb3659cc9
Revert "Add missing Q_OBJECT to ShortcutSettingsWidget"
This reverts commit 254ec73940.
2024-03-09 13:14:37 -05:00
Jonathan White
254ec73940
Add missing Q_OBJECT to ShortcutSettingsWidget
* Fix previous broken commit
2024-03-09 13:11:38 -05:00
Jonathan White
72fc00695c Prevent byte-by-byte and attachment inference side channel attacks
Attack - KeeShare attachments can be inferred because of attachment de-duplication.

Solution - Prevent de-duplication of normal database entry attachments with those entry attachments synchronized/associated with a KeeShare database. This is done using the KeeShare database UUID injected into the hash calculation of the attachment prior to de-dupe. The attachments themselves are not modified in any way.

--------

Attack - Side channel byte-by-byte inference due to compression de-duplication of data between a KeeShare database and it's parent.

Solution - Generate a random array between 64 and 512 bytes, convert to hex, and store in the database custom data.

--------

Attack vector assumptions:
1. Compression is enabled
2. The attacker has access to a KeeShare database actively syncing with the victim's database
3. The victim's database is unlocked and syncing
4. The attacker can see the exact size of the victim's database after saving, and syncing, the KeeShare database

Thank you to Andrés Fábrega from Cornell University for theorizing and informing us of this attack vector.
2024-03-09 12:39:00 -05:00
Jonathan White
14e8bc58f3
Add missing Q_OBJECT to ShortcutSettingsPage 2024-03-09 12:38:39 -05: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
Jonathan White
a02bceabd2 Minor changes to Group API to make it more explicit
* Include check for group as recycle bin directly into the Group::isRecycled() function

* Return the original root group from Database::setRootGroup(...) to force memory management transfer
2024-03-09 10:44:54 -05:00
Jonathan White
b4ff1fa36c Fix spacing of QGroupBox's
* Previously our base style sheet added roughly 20px of margin to the top and bottom of all QGroupBox. This caused visual errors where that margin was not needed/desired. 
* Transferred padding to the specific layouts instead where it belongs.
2024-03-09 10:44:54 -05:00
Janek Bevendorff
0acb15de0f Set test locale to C 2024-03-08 10:55:22 -05:00
Janek Bevendorff
aace1dc913 Fix TouchID not being shown after lid close
Fixes #8945
Fixes #10315
2024-03-08 10:55:22 -05:00
Janek Bevendorff
6a273363c4 Automatically detect USB device changes 2024-03-08 10:55:22 -05:00
Sami Vänttinen
79ca00604a
Skip a few Passkeys tests with Botan <= 2.14 (#10360)
Botan version less than 2.14.0 miscalculates ECDSA signatures. 

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-03-08 08:43:06 -05:00
Janek Bevendorff
d2e7d4a5ad Add vcpkg manifest with build dependencies
Also bump minimum CMake release
2024-03-07 19:03:13 -05:00
Konrad Gräfe
d2a4ccbc16 ssh-agent: keygen: Fix negative numbers in RSA key
The private exponent d may be negative in which case an additional pad
byte is needed. Otherwise ssh-agent fails to load the key.

Signed-off-by: Konrad Gräfe <kgraefe@paktolos.net>
2024-03-06 08:00:57 -05:00
varjolintu
2086e4c7d1 Fix macOS crash on Accent Color change 2024-03-06 07:58:15 -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
hcwf
d03f5e4977 Fix broken Yubikey docs link from issue #10228 2024-02-03 08:41:21 -05:00
2014
eb892791f0 Update DownloadInstall.adoc
typo
2024-02-02 16:50:02 -05:00
lapse
442d65a497
Fix Visual Studio install detection in release-tool.ps1 (#10101)
* Update release-tool.ps1

`Get-CimInstance MSFT_VSInstance` does not always work as it uses the default namespace root/cimv2. Specifying `Get-CimInstance MSFT_VSInstance -Namespace root/cimv2/vs` allows it to work.

Co-authored-by: Jonathan White <support@dmapps.us>
2024-01-27 08:49:28 -05:00
Michael Duersch
884386c924 Allow groups to restrict by browser integration key (#6437) 2024-01-14 07:43:48 -05:00
qycyfjy
7bfe9065cf Fix removing entry from history and improve logic of history tab showing 2024-01-06 18:23:43 -05:00
StableAgOH
6b3eaa7f3e Fix logging for no clipping program worked 2024-01-06 17:47:34 -05:00
ycwan9
b77eb4b905 Fix QT-based system theme detection 2024-01-06 17:05:44 -05:00