Commit Graph

367 Commits

Author SHA1 Message Date
Jonathan White
f2aa32c7b0 Add direct write save option
* Closes #6335
* Modify application settings presentation to  allow for alternative saving strategies
* Transition Database::save calls to using flags to control saving behavior. Reduces boolean flags on function call.
* Made direct write save option a local setting to prevent unintentional carry over between platforms.
2021-10-09 11:12:25 -04:00
Aetf
60cfba8e46
FdoSecrets: Improve client executable path handling (#6915)
* Fixes #6459 

Improves the overall handling of FdoSecrets showing client executable paths to the user. It does the following:

* Check executable file existence as described in [RFC] fdosecrets: add optional confirmation to secret access (#4733)
* Show application PID and dbus address in the client list
* When the executable file is inaccessible, depending on where the client name is shown:
    * when shown inline, e.g. in notification text, where space is limited, clearly say that the path is invalid
    * when shown in auth dialog, show warning and print detailed info about the client
    * when shown in the client list, draw a warning icon

Co-authored-by: Jonathan White <support@dmapps.us>
2021-10-01 18:22:15 -04:00
Toni Spets
860fcfd78d SSH Agent: Add support for OpenSSH 8.2 FIDO/U2F keys
Closes #4334
2021-10-01 16:25:14 -04:00
Christoph Honal
6d1fc31e96
Implement support for Yubikeys and potential other tokens via wireless NFC using smartcard readers (Rebase) (#6895)
* Support NFC readers for hardware tokens using PC/SC

This requires a new library dependency: PCSC.
The PCSC library provides methods to access smartcards. On Linux, the third-party pcsc-lite package is used. On Windows, the native Windows API (Winscard.dll) is used. On Mac OSX, the native OSX API (framework-PCSC) is used.

* Split hardware key access into multiple classes to handle different methods of communicating with the keys.

* Since the Yubikey can now be a wireless token as well, the verb "plug in" was replaced with a more
generic "interface with". This shall indicate that the user has to present their token to the reader, or plug it in via USB.

* Add PC/SC interface for YubiKey challenge-response

This new interface uses the PC/SC protocol and API
instead of the USB protocol via ykpers. Many YubiKeys expose their functionality as a CCID device, which can be interfaced with using PC/SC. This is especially useful for NFC-only or NFC-capable Yubikeys, when they are used together with a PC/SC compliant NFC reader device.

Although many (not all) Yubikeys expose their CCID functionality over their own USB connection as well, the HMAC-SHA1 functionality is often locked in this mode, as it requires eg. a touch on the gold button. When accessing the CCID functionality wirelessly via NFC (like this code can do using a reader), then the user interaction is to present the key to the reader.

This implementation has been tested on Linux using pcsc-lite, Windows using the native Winscard.dll library, and Mac OSX using the native PCSC-framework library.

* Remove PC/SC ATR whitelist, instead scan for AIDs

Before, a whitelist of ATR codes (answer to reset, hardware-specific)
was used to scan for compatible (Yubi)Keys.
Now, every connected smartcard is scanned for AIDs (applet identifier),
which are known to implement the HMAC-SHA1 protocol.

This enables the support of currently unknown or unreleased hardware.

Co-authored-by: Jonathan White <support@dmapps.us>
2021-10-01 10:39:07 -04:00
transifex-integration[bot]
c90ab2b9cb Apply translations in zh_CN
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'zh_CN' language.
2021-09-29 08:52:41 +02:00
transifex-integration[bot]
e8a32cc6a8 Apply translations in es
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'es' language.
2021-09-29 02:15:37 +02:00
transifex-integration[bot]
9c2ae81f19 Apply translations in pt_PT
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'pt_PT' language.
2021-09-28 23:35:02 +02:00
transifex-integration[bot]
10b4854915 Apply translations in de
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'de' language.
2021-09-28 21:42:46 +02:00
transifex-integration[bot]
626a4910ca Apply translations in it
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'it' language.
2021-09-28 19:19:36 +02:00
transifex-integration[bot]
8cbc327f90 Apply translations in pt_BR
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'pt_BR' language.
2021-09-28 19:16:01 +02:00
transifex-integration[bot]
fd2992913e Apply translations in pl
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'pl' language.
2021-09-28 19:07:12 +02:00
transifex-integration[bot]
1c529cbd20 Apply translations in el
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'el' language.
2021-09-28 17:27:35 +02:00
transifex-integration[bot]
c766f9c77d Apply translations in hu
translation completed for the source file '/share/translations/keepassxc_en.ts'
on the 'hu' language.
2021-09-28 16:46:01 +02:00
Janek Bevendorff
62ec2e8331 Update translations 2021-09-28 15:50:27 +02:00
Janek Bevendorff
9735e43ecb Update source language file 2021-09-28 15:50:27 +02:00
Janek Bevendorff
3a0ec33c56 Update TX config and merge update.sh into release-tool 2021-09-28 15:50:27 +02:00
Janek Bevendorff
d375ad14d7 Rename translation files 2021-09-28 15:50:27 +02:00
transifex-integration[bot]
973557a9f9
Translate /share/translations/keepassx_en.ts in uk (#6984)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'uk' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:05:40 +02:00
transifex-integration[bot]
3cb4ac37ba
Translate /share/translations/keepassx_en.ts in tr (#6983)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'tr' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:05:29 +02:00
transifex-integration[bot]
6d79d2ffc4
Translate /share/translations/keepassx_en.ts in th (#6982)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'th' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:05:07 +02:00
transifex-integration[bot]
2ed2b7118f
Translate /share/translations/keepassx_en.ts in sv (#6981)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'sv' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:05:00 +02:00
transifex-integration[bot]
59ebb360e2
Translate /share/translations/keepassx_en.ts in es (#6980)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'es' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:53 +02:00
transifex-integration[bot]
18183ebac0
Translate /share/translations/keepassx_en.ts in sk (#6979)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'sk' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:46 +02:00
transifex-integration[bot]
fac4d4c85c
Translate /share/translations/keepassx_en.ts in sr (#6978)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'sr' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:40 +02:00
transifex-integration[bot]
b0821c0435
Translate /share/translations/keepassx_en.ts in ru (#6977)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'ru' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:33 +02:00
transifex-integration[bot]
2776758f14
Translate /share/translations/keepassx_en.ts in ro (#6976)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'ro' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:26 +02:00
transifex-integration[bot]
163fffe8f4
Apply translations in pt_PT (#6975)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'pt_PT' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:19 +02:00
transifex-integration[bot]
8bf0c8f800
Apply translations in pt_BR (#6974)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'pt_BR' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:13 +02:00
transifex-integration[bot]
3fe4ff93e1
Translate /share/translations/keepassx_en.ts in pl (#6973)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'pl' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:04:06 +02:00
transifex-integration[bot]
16bf725dc4
Translate /share/translations/keepassx_en.ts in ko (#6972)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'ko' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:57 +02:00
transifex-integration[bot]
afa58b79a9
Translate /share/translations/keepassx_en.ts in ja (#6971)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'ja' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:50 +02:00
transifex-integration[bot]
5ba0639f47
Translate /share/translations/keepassx_en.ts in it (#6970)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'it' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:44 +02:00
transifex-integration[bot]
a8b65741ea
Translate /share/translations/keepassx_en.ts in id (#6969)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'id' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:36 +02:00
transifex-integration[bot]
7c9109d973
Translate /share/translations/keepassx_en.ts in hu (#6968)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'hu' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:29 +02:00
transifex-integration[bot]
064893830d
Translate /share/translations/keepassx_en.ts in he (#6967)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'he' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:21 +02:00
transifex-integration[bot]
6760a7f5ca
Translate /share/translations/keepassx_en.ts in el (#6966)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'el' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:14 +02:00
transifex-integration[bot]
da2d86789e
Translate /share/translations/keepassx_en.ts in de (#6965)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'de' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:03:05 +02:00
transifex-integration[bot]
e2b4900541
Apply translations in fr_CA (#6964)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'fr_CA' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:57 +02:00
transifex-integration[bot]
8bc75c1840
Translate /share/translations/keepassx_en.ts in fr (#6963)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'fr' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:51 +02:00
transifex-integration[bot]
2c63f2f8c5
Translate /share/translations/keepassx_en.ts in fi (#6962)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'fi' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:43 +02:00
transifex-integration[bot]
9a669cc17f
Translate /share/translations/keepassx_en.ts in et (#6961)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'et' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:36 +02:00
transifex-integration[bot]
2d64592d85
Apply translations in en_US (#6960)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'en_US' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:28 +02:00
transifex-integration[bot]
a03fa1c9bc
Apply translations in nl_NL (#6959)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'nl_NL' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:21 +02:00
transifex-integration[bot]
a59fd43cc0
Translate /share/translations/keepassx_en.ts in cs (#6958)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'cs' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:14 +02:00
transifex-integration[bot]
635abaee51
Apply translations in zh_TW (#6957)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'zh_TW' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:02:04 +02:00
transifex-integration[bot]
c331cbc8ab
Apply translations in zh_CN (#6956)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'zh_CN' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:01:57 +02:00
transifex-integration[bot]
85f70c29bd
Translate /share/translations/keepassx_en.ts in bg (#6955)
at least 80% translated for the source file '/share/translations/keepassx_en.ts'
on the 'bg' language.

 Manual sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2021-09-28 10:01:42 +02:00
a1346054
e3c7b570ae
Minor documentation and script cleanups (#6868)
* Remove mention of no longer used IRC network

Channels exist on matrix, and on libera.chat now.

* Correctly match only files with .png extension

The current search would match files such as 'createpng'.

* Fix comparison in script

The result was always false, due to comparing a literal string instead of a variable.

* Use correct license files from upstream

Correct license files obtained from:
https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
https://www.gnu.org/licenses/gpl-3.0.txt
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
https://www.gnu.org/licenses/lgpl-3.0.txt

* Refresh several shell scripts

This fixes several shellcheck warnings, as well as makes the code more
robust and have consistent codestyle between all the files.

* Trim excess whitespace
2021-09-21 00:17:46 -04:00
smlu
0c6587b5b7 Add support for Microsoft Visual Studio buildchain
* Use C++17 when using MSVC compiler
* Remove unneeded header files and macros
* Removed unnecessary Yubikey cmake file
* Enhance release tool
* Updated INSTALL.md
2021-09-19 17:16:45 -04:00
elitejake
24a23ce66e
Remove offensive words (#6914) 2021-09-15 08:51:52 +02:00
Janek Bevendorff
93f0fef1e1 Improve and secure attachment handling (fixes #2400).
Externally opened attachments are now lifecycle-managed properly.

The temporary files are created with stricter permissions and entirely
random names (except for the file extension) to prevent meta data leakage.

When the database is closed, the files are overwritten with random
data and are also more reliably deleted than before.

Changes to the temporary files are monitored and the user is asked
if they want to save the changes back to the database (fixes #3130).

KeePassXC does not keep a lock on any of the temporary files, resolving
long-standing issues with applications such as Adobe Acrobat on Windows
(fixes #5950, fixes #5839).

Internally, attachments are copied less. The EntryAttachmentsWidget
now only references EntryAttachments instead of owning a separate copy
(which used to not be cleared properly under certain circumstances).
2021-08-22 17:09:21 -04:00
Stuzer05
304cb44d0d Add group clone action
Close #3796
2021-08-08 16:54:10 -04:00
osx user
0921bf2d61 Remove explicit fonts from SVG's
* Fix #6758 - prevent slow load times when font is not available
2021-08-01 18:37:46 -04:00
Carlo Teubner
8753347f69
CHANGELOG.md: backfill recent releases (#6733)
Co-authored-by: Carlo Teubner <carlo@cteubner.net>
2021-07-31 06:14:19 -04:00
Jonathan White
724f691e15 Multiple fixes for MSI installer
* Fix #6242 - pinned taskbar shortcuts are not removed on upgrade or uninstall. Icons will be preserved between upgrades.

* Fix #6627 - properly set checkboxes for desktop shortcut and autostart of login based on current settings during install

* Add documentation shortcuts to the start menu
* Auto-accept license if upgrading application
2021-06-14 17:41:59 -04:00
Jonathan White
80809ace67 Replace all crypto libraries with Botan
Selected the [Botan crypto library](https://github.com/randombit/botan) due to its feature list, maintainer support, availability across all deployment platforms, and ease of use. Also evaluated Crypto++ as a viable candidate, but the additional features of Botan (PKCS#11, TPM, etc) won out.

The random number generator received a backend upgrade. Botan prefers hardware-based RNG's and will provide one if available. This is transparent to KeePassXC and a significant improvement over gcrypt.

Replaced Argon2 library with built-in Botan implementation that supports i, d, and id. This requires Botan 2.11.0 or higher. Also simplified the parameter test across KDF's.

Aligned SymmetricCipher parameters with available modes. All encrypt and decrypt operations are done in-place instead of returning new objects. This allows use of secure vectors in the future with no additional overhead.

Took this opportunity to decouple KeeShare from SSH Agent. Removed leftover code from OpenSSHKey and consolidated the SSH Agent code into the same directory. Removed bcrypt and blowfish inserts since they are provided by Botan.

Additionally simplified KeeShare settings interface by removing raw certificate byte data from the user interface. KeeShare will be further refactored in a future PR.

NOTE: This PR breaks backwards compatibility with KeeShare certificates due to different RSA key storage with Botan. As a result, new "own" certificates will need to be generated and trust re-established.

Removed YKChallengeResponseKeyCLI in favor of just using the original implementation with signal/slots.

Removed TestRandom stub since it was just faking random numbers and not actually using the backend. TestRandomGenerator now uses the actual RNG.

Greatly simplified Secret Service plugin's use of crypto functions with Botan.
2021-04-05 22:56:03 -04:00
Bernhard Kirchen
4e8b00da34 Add custom icon purging and bulk deletion
This change adds a new database settings widget 
named "maintenance", using a wrench icon. This widget is designated to be the home for database related maintenance tasks. 

Initially, managing custom icons is now possible from that new tab. The feature includes bulk removing of
any number of selected custom icons and automatic purging of unused custom icons by the click of a button.

Fixes #2110
2021-02-27 08:13:05 -05:00
Ojas Anand
022154462e Add entry view column for password strength
* Closes #4216

Reduced to three-tiered rating system and fixed column implementation. Hide password strength indicator in entry view if excluded from reports.

Introduce password health caching to prevent unnecessary calculations.
2021-02-26 22:10:04 -05:00
Jonathan White
3ccd4f9b14 Allow setting MSI properties in unattended install 2021-02-24 23:10:33 -05:00
Jonathan White
61b85183f9
Merge branch 'master' into develop 2021-01-31 17:04:38 -05:00
Janek Bevendorff
86278311d2
Merge branch 'master' into develop 2021-01-12 18:24:59 +01:00
Janek Bevendorff
835d51c59f
Update translations 2021-01-12 17:49:13 +01:00
Jonathan White
38bf2ceb78 Version bump to 2.6.3 2021-01-12 17:47:01 +01:00
Janek Bevendorff
618c1166ce Backport macOS Big Sur icon 2021-01-07 22:02:43 -05:00
Janek Bevendorff
80c1b9be6a Improve macOS platform integration.
- Allow switching between themes without restart (except classic)
- Rework icon loading and recolouring logic to react to theme changes
- Automatically react to light/dark theme change
- Remove explicit selection of monochrome tray icon variant (selected
  automatically now)
- Update theme background colours for Big Sur
- Update application icon to match Big Sur HIG

The tray icon doesn't respond perfectly to theme changes yet on Big Sur,
since we need different icons for dark and light theme and cannot simply
let the OS recolour the icon for us (we do that, too, but only as an
additional fallback). At the moment, there is no signal to listen to
that would allow this.

This patch adds a few generic methods to OSUtils for detecting and
communicating theme changes, which are only stubs for Windows and Linux at
the moment and need to be implemented in future commits.

Fixes #4933
Fixes #5349
2021-01-07 15:22:48 +01:00
Janek Bevendorff
cd519e1bf3
Merge branch 'master' into develop 2020-10-21 22:49:02 +02:00
Janek Bevendorff
4f61f57c14
Update translations 2020-10-21 22:46:55 +02:00
Janek Bevendorff
1c88b6339c
Update changelog and bump version 2020-10-21 22:41:55 +02:00
Jonathan White
0c5dd1556a
Merge branch 'release/2.6.2' into develop 2020-10-15 00:13:14 -04:00
Jonathan White
b0e038e789 Improve default Qt widget icons
* Include new icons for toolbar overflow to ensure they are tinted correctly and fit in with the rest of the UI.
* Replace custom code for clearing line edits by including a proper icon for the default action.
2020-10-14 23:55:01 -04:00
Carlos E. Salazar
fa546c440e
Feature/toggle groups panel option (#5247)
* Closes #5243
2020-10-08 22:52:30 -04:00
Wolfram Rösler
34b44e7496 Add fuzz test support
Describe how to invoke the AFL fuzz tester on the KeePassXC
CLI tool. As suggested in #2729.

Fuzz test build of keepassxc-cli takes database password from
environment variable instead of requiring it to be empty.
Provide two empty kdbx files as initial fuzzer input, one
kdbx 3 and one kdbx 4, both with minimal number of decryption
rounds to speed up the test.
2020-10-08 22:49:34 -04:00
Janek Bevendorff
b09d3eb855
Update translations 2020-08-19 22:49:30 +02:00
Janek Bevendorff
71f9ef30f5
Update changelog and bump version to 2.6.1 2020-08-19 21:22:25 +02:00
mihkel-t
a52b0c5439 Add available translations for GenericName
Taken from the .ts files, specifically the translations of phrases "Password Manager" and "KeePassXC - cross-platform password manager" (translations of the latter then appropriately cropped, with some help from Google Translate for the scripts I can't read).

Also add Estonian translation for Comment.
2020-07-20 21:19:07 -04:00
AsavarTzeth
02f6a59c10 Fix appdata screenshots
Update url filenames to reflect updates at keepassxc.org
2020-07-18 09:16:22 -04:00
AsavarTzeth
2631ae682d Add OARS metadata
It is usable by both Gnome Software, KDE Discover and web frontends,
such as Flathub which now enforces OARS.

By using OARS 1.0 all distributions should be supported. Version 1.1
should work almost everywhere, but there are a few notable distributions
that still lack GNOME Software >= 3.27.3.

In this case it should not matter, because the OARS data is the same for
both versions (nothing 1.1 specific is used).

You can generate and verify these changes using:
https://odrs.gnome.org/oars
2020-07-18 09:16:00 -04:00
Jonathan White
cf95f5e72e
Update translations 2020-07-06 21:13:22 -04:00
Jonathan White
44f2d3a3c2
Remove old translation files before pull 2020-07-06 19:20:06 -04:00
Shun Sakai
9dde9314e8 Change to generate man page from AsciiDoc 2020-07-05 14:54:31 -04:00
Jonathan White
124739fde2 Switch to Asciidoctor based documentation 2020-07-05 14:54:31 -04:00
Jonathan White
05a0df799e Fix auto-start settings on Windows 2020-06-28 16:25:26 -04:00
Jonathan White
e5b0219e3f
Update Translations 2020-06-07 21:53:35 -04:00
Jonathan White
b7104be689 Prevent overwriting of portable config on update
* Move portable configuration files into a config subfolder from the executable. This prevents overwriting the stored config when the application is updated in-place.
* Use .portable file to signal a portable app
* Fix #4751
2020-06-04 10:03:40 -04:00
Jonathan White
6f5e13815c Fix resolving resources when running from build directory
* Copy wordlists to build dir share folder
* Change resource path resolution to only test the provided directory, not finding a specific file
2020-06-04 10:03:40 -04:00
Janek Bevendorff
3095e29507 Optimise KeePassXC logo icons and improve compatibility.
- Reduce SVG complexity and clean up unnecessary paths
- Recreate monochrome icons for better rendering at low resolutions
- Export as minified SVG Basic 1.1 without style elements
- Recreate 256x256 PNG from optimised SVG
2020-06-01 14:42:28 +02:00
Janek Bevendorff
4f75432fc6 Add option for monochrome tray icon 2020-05-31 00:26:14 +02:00
Janek Bevendorff
9d2e066aca Clean up various parts of the UI and rearrange settings
- Unify widget layouts and margins
- Fix tab order on a bunch of widgets
- Fix broken entry/group edit form layout and replace with grid layout
- Rearrange some settings for better logical grouping
- Fix some settings checkboxes not being enabled/disabled on load
- Fix "General" settings tab scrolling
- Rename "Root" group to "Passwords"
- Update demo.kdbx accordingly and redownload favicons
- Change entry path display to use slash separators
- Reduce Medium and Large icon sizes slightly
2020-05-30 10:45:00 +02:00
Janek Bevendorff
4de99cfe8e
Extract highest resolution from downloaded ICO files 2020-05-29 10:00:32 -04:00
Jonathan White
b5554e05d8
Improve application icons
* Add icons for Database Import, Database Export, and Recent Databases
* Change app exit icon to be distinct from export icon
* Updated and ran makeappicons.sh
2020-05-29 10:00:32 -04:00
Jonathan White
90d5372813
Replace database icons with SVG's
Original source of icons is the icon8 library (http://icons8.com/c/flat-color-icons) and Paomedia (https://github.com/paomedia/small-n-flat). All icons used are licensed MIT or CC0; annotated in COPYING.

* Closes #4071

* Increase default size of database icons to 24px and entry preview panel to 48px
* Add shell script to assemble the database icons

* Use QIcon to seamlessly support High DPI displays and pixmap caching
* Add badge support for KeeShare groups and expired entries.
* Guard against use of QPixmap::fromImage without a GUI

* Add SVG minify and improve `make icons`

Co-authored-by: Wolfram Rösler <wolfram@roesler-ac.de>
2020-05-29 10:00:32 -04:00
Holger Böhnke
eb198271ac Add natural sort of entry list
Introduce a third unsorted status that shows entries in the order they occur in the KDBX file.

* Add keyboard shortcut Ctrl+Alt+Up/Down to move entries up and down in sort order
* Add entry context menu icons to achieve movement up/down
* Only show menu icons when in natural sort order
* Add Material Design icons for moving up/down

* Add feature to track non-data changes and force a save on exit to ensure they are not lost when locking a database. This allows users to make entry movements and group expand/collapse operations and not lose that state.

Remove saveas
2020-05-22 12:13:20 -04:00
Andrew Meyer
45848c3f61 Implement 'Save Database Backup' option
Add an option in the 'Database' menu to save a backup of the current database.

Add unit test for saving database copy

* Open a test database, mark it as modified, and save a copy
* Fail if the copy is not a valid database
* Fail if the original database is saved
* Fail if the original database is no longer marked as modified
2020-05-16 11:00:27 -04:00
Wolfram Rösler
3c19fdd193 Reports: Add "Known Bad" flag for entries
* Fixes #4168

* Introduce a custom data element stored with an entry to indicate that it is a "Known Bad" entry. This flag causes database reports to skip these entries.
* The current number of known bad entries is displayed in the statistics report.
* Add context menu to reports to easily exclude entries.
2020-05-08 20:51:11 -04:00
Jonathan White
071cc856da Improve MSI Installer
* Include checkboxes to install a desktop shortcut (default no) and start on login (default yes)
* Fix closing KeePassXC.exe and keepassxc-proxy.exe before installation starts
* Improve styling of launch after exit checkbox
2020-05-06 10:44:53 +02:00
Jonathan White
7168bcdbe5 Add clipboard-text and refresh icons to resources 2020-04-28 23:35:03 +02:00
Janek Bevendorff
d189f9132e
Merge branch 'master' into develop 2020-04-09 18:27:40 +02:00
Janek Bevendorff
db2cfd424b
Update translations 2020-04-09 18:24:15 +02:00
Janek Bevendorff
770b09cc23
Bump version to 2.5.4 2020-04-09 18:22:52 +02:00
Jonathan White
e54f24e303 Only use bare minimum settings for portable version
* Fixes #4103

* This ini file ensures the portable distribution populates with the default settings from the code and not from outdated ini file.
2020-04-09 18:15:27 +02:00