250 Commits

Author SHA1 Message Date
Jonathan White
2364e4cd4a
Fix renaming extension key name in Database Settings 2025-01-03 18:17:07 -05:00
Sami Vänttinen
da606923e9
Browser: Fix cancel with database unlock dialog (#11435) 2024-12-21 23:39:58 -05:00
Sami Vänttinen
383c6d05d1
Support passkeys with Bitwarden import (#11401) 2024-12-21 23:25:15 -05:00
Jonathan White
aeee40048c
Add support for group selection when creating a passkey 2024-10-07 17:45:34 -04:00
varjolintu
292046ff7f
Allow deleting extension plugin data from Browser Statistics 2024-09-13 22:48:51 -04:00
varjolintu
41de1dff2d
Browser: Resolve references in Access Confirm dialog 2024-08-13 22:35:34 -04:00
Jonathan White
3d66618818
Refactor browser Access Control Dialog (#9607) 2024-08-13 22:35:16 -04:00
Peter Mescalchin
bfa64aa8f0
Update URLs to Chrome Web Store page for KeePassXC-Browser extension 2024-06-30 22:23:56 -04:00
James Carroll
ee08ef421d
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:50:52 -04:00
varjolintu
e7f9d58541
Passkeys: Fix incorrect username fill 2024-06-16 17:10:17 -04:00
varjolintu
8bdc7c4702
Passkeys: Return authenticatorData and publicKeyAlgorithm to extension 2024-06-16 17:10:00 -04:00
Carlo Teubner
018686afeb
Cleanup compiler warnings on all platforms (#10847)
Fixes #10730.

Co-authored-by: Christoph Reiter <reiter.christoph@gmail.com>
2024-06-16 17:09:48 -04:00
Carlo Teubner
e26dbc5608
Botan: don't call deprecated functions (#10826)
* Botan: use raw_private_key_bits() if available

Botan 3.x introduces raw_private_key_bits() as an alias for
get_private_key(), and deprecates the latter.

* Botan: use Cipher_Dir::Encryption

Botan 3.x introduces Cipher_Dir::Encryption as an alias for
Cipher_Dir::ENCRYPTION, and deprecates the latter. Likewise for
Decryption/DECRYPTION.
2024-06-02 07:38:50 -04:00
Jonathan White
6fbab25478
Add action item for removing a passkey from entry (#10777) 2024-06-02 07:38:03 -04:00
Jonathan White
1bdf1bbbed
Fix portable mode detection for native messaging files
* Fixes #10755
2024-06-02 07:34:29 -04:00
Jonathan White
c9d71e7781
Passkeys: Register to an existing entry 2024-05-05 16:07:00 -04:00
Jonathan White
485c446013
Fix password generator close button for good
* Avoids using QDialog which breaks the standalone password generator

Revert "Fix password dialog close button"

This reverts commit 5b47190fcc4b2f51fb11849cef7f53346e8fe439.
2024-04-29 07:37:35 -04:00
Sami Vänttinen
8f03f2f59e
Passkeys: Pass extension JSON data to browser (#10615) 2024-04-27 23:35:07 -04:00
varjolintu
dbc7f020fd
Passkeys: Position the confirm dialog with the parent window 2024-04-27 23:35:07 -04:00
varjolintu
50eec240b4
Passkeys: Fix duplicate database selection 2024-04-27 23:35:07 -04:00
varjolintu
bd5984ca82
Passkeys: Fix RP ID validation 2024-04-27 23:20:43 -04:00
varjolintu
969d3f9b23
Passkeys: Do not ask update with a new user handle 2024-04-27 23:20:38 -04:00
Sami Vänttinen
305fd24a8e
Passkeys: Fix compatibility with StrongBox (#10420) 2024-04-27 23:20:28 -04:00
varjolintu
97cf35c993
Passkeys: Allow nfc and usb transports 2024-04-27 23:20:18 -04:00
Jonathan White
b7a1c620e4 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-09 15:21:46 -05:00
varjolintu
cb5d3ed21d Fix raising Update Entry messagebox 2024-01-30 18:26:45 -05:00
Jonathan White
4bd9fdd7a4 Passkeys: UI adjustments 2024-01-30 18:26:45 -05:00
varjolintu
fe739578ab Passkeys: Create AAGUID for KeePassXC 2024-01-30 18:26:45 -05:00
varjolintu
3f77678b5c Passkeys: Fix default timeout on authentication 2024-01-30 18:26:45 -05:00
Jonathan White
c477f43c40 Passkeys: Add support for importing Passkey to entry (#9987)
---------
Co-authored-by: Jonathan White <support@dmapps.us>
2024-01-30 18:26:45 -05:00
varjolintu
7371589955 Rename userId to credentialId 2024-01-30 18:26:45 -05:00
Jonathan White
1cbbcff259 Create new UrlTools class
Includes "Fix ifdefs with UrlTools"
2024-01-30 18:26:45 -05:00
Jonathan White
416581b179 Add basic support for WebAuthn (Passkeys) (#8825)
---------

Co-authored-by: varjolintu <sami.vanttinen@protonmail.com>
Co-authored-by: droidmonkey <support@dmapps.us>
2024-01-30 18:26:45 -05:00
Jonathan White
82c1bf4ddb Fix support for referenced URL fields 2024-01-30 18:26:45 -05:00
Sami Vänttinen
7f33868d14 Fix crash on database open from browser (#9939) 2024-01-30 18:26:45 -05:00
Jonathan White
c5312d63f2 Fix various bugs when returning credentials (#9136)
Co-authored-by: Sami Vänttinen <sami.vanttinen@protonmail.com>
2024-01-30 18:26:45 -05:00
Jonathan White
e401e8f4bc Browser Integration code cleanup (#8489)
Co-authored-by: varjolintu <sami.vanttinen@protonmail.com>
2024-01-30 18:26:45 -05:00
Jonathan White
742a4f8980
Exclude Flatpak and Snap from proxy detection warning 2023-08-15 07:28:11 -04:00
Sami Vänttinen
eee4ca9a26
Improve duplicate URL warning (#9635)
Co-authored-by: varjolintu <sami.vanttinen@protonmail.com>
2023-08-14 07:04:48 -04:00
Jonathan White
663d4d99ae
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:20:45 -04:00
Jonathan White
55ca5ca34c
Pass parent to browser popups 2023-08-05 07:31:05 -04:00
varjolintu
e9ea5b43ec
Enable Update native messaging manifest files checkbox with Flatpak 2023-07-15 15:30:48 -04:00
varjolintu
fa73f100f7
Handle expired credentials normally 2023-07-15 15:28:07 -04:00
Jonathan White
ebc0b3ff5f
Add support for Botan3 (#8994)
Fix Botan 3 build (#9388)

* SymmetricCipher: Fix Botan 3 build

Botan commit 819cf8fe6278a19b8266f449228f02fc28a4f784 changed Botan::Cipher_Dir to be a scoped enumeration, so the users must be adapted.

This change causes no issues with Botan 2 because normal enumeration values can also be referred to the same way scoped enumeration values are accessed.

* Auto detect Botan3

* AsyncTask: Do not use `std::result_of`

`std::result_of` was deprecated in C++17 and then it was subsequently removed in C++20. One could use `std::invoke_result_t`, but let Qt figure out the return type instead.

* Collapse Botan2 and Botan3 find package into one

* Update COPYING
2023-05-07 23:19:18 -04:00
Sami Vänttinen
c3bd31c51b
Fix Native Messaging script path with BSDs (#8835)
Fixes https://github.com/keepassxreboot/keepassxc/issues/8830
2023-02-18 13:59:55 -08:00
Jonathan White
9b5b1d6dce
Browser: second fix for linked socket path
* Fix #8702
2022-10-29 14:12:16 -04:00
Sami Vänttinen
4f07a6592c Revert async Access Confirm Dialog 2022-10-29 12:45:17 -04:00
varjolintu
3ad205f733 Fix deleting existing socket file before making a new symbolic link 2022-10-29 12:45:17 -04:00
varjolintu
87cd9c6fb9 Browser: Asynchronous Access Confirm dialog 2022-09-22 06:49:07 -04:00
varjolintu
f95019964e Do not allow expired credentials automatically 2022-09-22 06:49:07 -04:00