Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into develop
Browse files Browse the repository at this point in the history
* upstream/develop: (57 commits)
  Fix typos in tooltips from EditEntryWidgetBrowser.ui
  Refactor: separate GUI sources from core sources
  Database key settings: fix UI bug
  tests: gui: Fix NULL dereference in GUI tests
  Docs: explain how to generate passwords with the browser extension (#9242)
  Fix a couple more Qt 5.15 deprecation warnings (#10953)
  Update URLs to Chrome Web Store page for `KeePassXC-Browser` extension
  Update browser extension icon states in documentation (#10875)
  Fix сentering icon and text on buttons
  Fix backup file path substitution
  Verify USB listener callback handle
  Refactor Database Settings (#9485)
  Fix all Qt 5.15 deprecation warnings (#7783)
  Passkey importer: fix file picker parent
  Require Qt >= 5.12
  Passkeys: Fix showing correct username in the reports
  Show character count in password generator dialog (#10940)
  Increase the time interval for window show workaround
  Snap: Remove $HOME access from keepassxc-proxy
  Correct libusb usage on FreeBSD (#10736)
  ...

# Conflicts:
#	src/CMakeLists.txt
#	src/core/Database.cpp
#	src/core/Database.h
  • Loading branch information
BryanJacobs committed Jul 26, 2024
2 parents ba62a3e + afe634d commit f43c526
Show file tree
Hide file tree
Showing 255 changed files with 3,504 additions and 1,583 deletions.
18 changes: 9 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ if (MSVC)
if(MSVC_TOOLSET_VERSION LESS 141)
message(FATAL_ERROR "Only Microsoft Visual Studio 17 and newer are supported!")
endif()
add_compile_options(/permissive- /utf-8)
add_compile_options(/permissive- /utf-8 /MP)
if(IS_DEBUG_BUILD)
add_compile_options(/Zf)
if(MSVC_TOOLSET_VERSION GREATER 141)
Expand Down Expand Up @@ -467,7 +467,7 @@ if(WITH_COVERAGE)
append_coverage_compiler_flags()

set(COVERAGE_EXCLUDES
"'^(.+/)?(thirdparty|zxcvbn)/.*'"
"'^(.+/)?thirdparty/.*'"
"'^(.+/)?main\\.cpp$$'"
"'^(.+/)?cli/keepassxc-cli\\.cpp$$'"
"'^(.+/)?proxy/keepassxc-proxy\\.cpp$$'")
Expand Down Expand Up @@ -512,14 +512,8 @@ else()
find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED)
endif()

if(Qt5Core_VERSION VERSION_LESS "5.2.0")
message(FATAL_ERROR "Qt version 5.2.0 or higher is required")
endif()

# CBOR for Passkeys requires Qt 5.12
if(Qt5Core_VERSION VERSION_LESS "5.12.0")
message(STATUS "Qt version 5.12.0 or higher is required for Passkeys support")
set(WITH_XC_BROWSER_PASSKEYS OFF)
message(FATAL_ERROR "Qt version 5.12.0 or higher is required")
endif()

get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH)
Expand Down Expand Up @@ -613,6 +607,12 @@ endif()

include_directories(SYSTEM ${ZLIB_INCLUDE_DIR})

find_library(ZXCVBN_LIBRARIES zxcvbn)
if(NOT ZXCVBN_LIBRARIES)
add_subdirectory(src/thirdparty/zxcvbn)
set(ZXCVBN_LIBRARIES zxcvbn)
endif(NOT ZXCVBN_LIBRARIES)

add_subdirectory(src)
add_subdirectory(share)
if(WITH_TESTS)
Expand Down
3 changes: 2 additions & 1 deletion COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ Files: share/icons/application/scalable/actions/application-exit.svg
share/icons/application/scalable/actions/password-show-on.svg
share/icons/application/scalable/actions/qrcode.svg
share/icons/application/scalable/actions/refresh.svg
share/icons/application/scalable/actions/remote-sync.svg
share/icons/application/scalable/actions/reports.svg
share/icons/application/scalable/actions/reports-exclude.svg
share/icons/application/scalable/actions/sort-alphabetical-ascending.svg
Expand Down Expand Up @@ -249,7 +250,7 @@ Files: src/streams/qtiocompressor.*
Copyright: 2009-2012, Nokia Corporation and/or its subsidiary(-ies)
License: LGPL-2.1 or GPL-3

Files: src/zxcvbn/zxcvbn.*
Files: src/thirdparty/zxcvbn/zxcvbn.*
Copyright: 2015-2017, Tony Evans
License: MIT

Expand Down
1 change: 0 additions & 1 deletion cmake/CLangFormat.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
set(EXCLUDED_DIRS
# third-party directories
src/thirdparty
src/zxcvbn
# objective-c directories
src/quickunlock/touchid
src/autotype/mac
Expand Down
1 change: 0 additions & 1 deletion codecov.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,5 @@ fixes:
ignore:
- "src/gui/styles/**"
- "src/thirdparty/**"
- "src/zxcvbn/**"
comment:
require_changes: true
Binary file modified docs/images/browser_extension_icons.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/sync_remote_settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 19 additions & 4 deletions docs/topics/BrowserPlugin.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The KeePassXC-Browser extension is available on the following web browsers:
You can download the KeePassXC-Browser extension from your web browser. To download the KeePassXC-Browser extension, perform the following steps:

1. Click the link corresponding to your browser:
* https://chrome.google.com/webstore/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk[Chrome, Chromium, Vivaldi, and Brave]
* https://chromewebstore.google.com/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk[Chrome, Chromium, Vivaldi, and Brave]
* https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser[Mozilla Firefox and Tor-Browser]
* https://microsoftedge.microsoft.com/addons/detail/keepassxcbrowser/pdffhmdngciaglkoonimfcmckehcpafo[Microsoft Edge]

Expand Down Expand Up @@ -66,9 +66,10 @@ The KeePassXC-Browser extension lets you automatically populate the entries from

2. Open your web browser. The KeePassXC-Browser extension icon in your browser window will change based on its connection state. The figure below shows the different states.
+
*(A)* KeePassXC is not running or is disconnected +
*(B)* Connected to KeePassXC, but database is locked +
*\(C)* Connected to KeePassXC and ready to use
*(A)* KeePassXC is not running or is disconnected. +
*(B)* KeePassXC is running, but KeePassXC Browser Extension is not connected to the current database. +
*\(C)* Connected to KeePassXC, but database is locked. +
*(D)* Connected to KeePassXC and ready to use. If the icon is shown with a number, it indicates the number of credentials found for the current site.
+
.Extension Icon States
image::browser_extension_icons.png[,70%]
Expand All @@ -90,6 +91,20 @@ image::browser_confirm_access_dialog.png[,80%]
.Fill Credentials
image::browser_fill_credentials.png[,80%]

=== Generate Passwords

The KeePassXC-Browser Extension also lets you generate passwords directly in your browser.
This feature can be used for websites with existing credentials as well as for new websites.
You can then choose to update/add the credentials to your KeePassXC database directly from the Browser.

1. Ensure your database is unlocked and configured to use the Browser extension as shown above.

2. Right click on a password field and from the KeePassXC sub-menu choose _Show Password Generater_. The standard KeePassXC password generator will appear.

3. Configure the password generation options and click _Apply Password_ when done. The generated password will be filled into the previously selected field.

4. When you have succussfully submitted the password on the website, a popup will appear asking you to either udpate an existing entry or add a new one.

// tag::advanced[]
=== Browser statistics
You can see a cross-section of all browser-related settings applied to entries within a database through the Browser Statistics report. To access these, use the _Database_ -> _Database reports..._ menu option then click on _Browser Statistics_ on the left-hand menu. From here you can see all entries with URLs applied to them, explicitly allowed and denied URLs, and any entries with custom browser settings.
Expand Down
18 changes: 18 additions & 0 deletions docs/topics/DatabaseOperations.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,24 @@ You will be asked to enter the HMAC key you created earlier, copy/paste they key

== Command Line Tool
KeePassXC comes with the command line tool *keepassxc-cli* to access, view, and manipulate your database directly from a terminal window. The tool is documented through a separate man page, which can be shown using `man keepassxc-cli`, or through the on-demand help using `keepassxc-cli [command] -h`. An online version of the man page is /~https://github.com/keepassxreboot/keepassxc/blob/master/docs/man/keepassxc-cli.1.adoc[available on GitHub].

== Remote database support
KeePassXC provides support for syncing database files that reside in a remote location. If you can download/upload the database file via a commandline tool (e.g. rsync, ssh, scp etc.) KeePassXC offers easy to use functionality to sync the remote database.

=== Sync with remote database
Open the remote sync settings via _Database > Database Settings… > Remote_ to create commands to sync a local database or a temporary local copy of a remote database.

Define a name for your sync command and specify a download *(A)* as well as an upload command *(B)*. The command and/or input need a `{TEMP_DATABASE}` placeholder specified where the remote database is temporarily stored. Do not forget to save the command settings with the save button *\(C)*. Remote settings are added as menu entries below the _Remote Sync…_ menu for quick access.

WARNING: If your download or upload command require a password prompt, the command will most likely not succeed. In case of an SSH connection (e.g. sftp), it is recommended to use <<KeePassXC – SSH Agent integration,SSH agent>> so that no password prompt is needed.

.Remote sync settings
image::sync_remote_settings.png[]

Select the remote sync command from the _Database > Remote Sync…_ menu to start the syncing process and a progress bar will show up in the lower right corner.

WARNING: In case the remote database is changed by another user/process after the downloading command finishes and before uploading again, those changes will be overwritten. Syncing is not an atomic operation.

// end::advanced[]

== Storing a Database File
Expand Down
2 changes: 1 addition & 1 deletion docs/topics/KeyboardShortcuts.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ NOTE: On macOS please substitute `Ctrl` with `Cmd` (aka `⌘`).
|New Entry | Ctrl + N
|Edit Entry | Enter ; Ctrl + E
|Delete Entry | Delete
|Clone Entry | Ctrl + K
|Clone Entry | Ctrl + D
|Copy Username | Ctrl + B
|Copy Password | Ctrl + C
|Copy URL | Ctrl + U
Expand Down
1 change: 1 addition & 0 deletions share/icons/application/scalable/actions/remote-sync.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions share/icons/icons.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
<file>application/scalable/actions/password-show-on.svg</file>
<file>application/scalable/actions/qrcode.svg</file>
<file>application/scalable/actions/refresh.svg</file>
<file>application/scalable/actions/remote-sync.svg</file>
<file>application/scalable/actions/reports.svg</file>
<file>application/scalable/actions/reports-exclude.svg</file>
<file>application/scalable/actions/sort-alphabetical-ascending.svg</file>
Expand Down
2 changes: 2 additions & 0 deletions share/linux/org.keepassxc.KeePassXC.desktop.in
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,5 @@ Categories=Utility;Security;Qt;
MimeType=application/x-keepass2;
SingleMainWindow=true
X-GNOME-SingleWindow=true
Keywords=security;privacy;password-manager;yubikey;password;keepass;
Keywords[de]=sicherheit;privatsphäre;passwort-manager;yubikey;passwort;keepass;
Empty file modified share/macosx/keepassxc.iconset/icon_128x128.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_128x128@2x.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_16x16.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_16x16@2x.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_256x256.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_256x256@2x.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_32x32.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_32x32@2x.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_512x512.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified share/macosx/keepassxc.iconset/icon_512x512@2x.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit f43c526

Please sign in to comment.