Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2021-12-09Add db statistic output to CLI db-info command.Geert Ijewski
Closes #6920
2021-12-08Add -i/--include option to "generate" CLI command. (#7112)Patrick Klein
2021-11-25Fix syntax issue & add a missing header (#7160)tenzap
* Fix syntax to prevent compilation issue Fix build failure with AppleClang 7 & 8. Error was: src/core/CustomData.cpp:30:41: error: default initialization of an object of const type 'const CustomData::CustomDataItem' without a user-provided default constructor static const CustomData::CustomDataItem NULL_ITEM; ^ {} src/core/Metadata.cpp:32:39: error: default initialization of an object of const type 'const Metadata::CustomIconData' without a user-provided default constructor static const Metadata::CustomIconData NULL_ICON; ^ src/core/Metadata.cpp:32:48: note: add an explicit initializer to initialize 'NULL_ICON' static const Metadata::CustomIconData NULL_ICON; ^ {} * Add missing QUuid header Fixes this compilation issue with LLVM clang 9, possibly also due to an old QT5 tests/TestTools.cpp:96:39: error: incomplete type 'QUuid' named in nested name specifier auto validUuid = Tools::uuidToHex(QUuid::createUuid()); ^~~~~~~ /opt/local/libexec/qt5/lib/QtCore.framework/Headers/qmetatype.h:1887:1: note: forward declaration of 'QUuid' QT_FOR_EACH_STATIC_CORE_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER) ^ /opt/local/libexec/qt5/lib/QtCore.framework/Headers/qmetatype.h:108:18: note: expanded from macro 'QT_FOR_EACH_STATIC_CORE_CLASS' F(QUuid, 30, QUuid) \ ^ tests/TestTools.cpp:101:40: error: incomplete type 'QUuid' named in nested name specifier auto nonHexUuid = Tools::uuidToHex(QUuid::createUuid()).replace(0, 1, 'p'); ^~~~~~~ /opt/local/libexec/qt5/lib/QtCore.framework/Headers/qmetatype.h:1887:1: note: forward declaration of 'QUuid' QT_FOR_EACH_STATIC_CORE_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER) ^ /opt/local/libexec/qt5/lib/QtCore.framework/Headers/qmetatype.h:108:18: note: expanded from macro 'QT_FOR_EACH_STATIC_CORE_CLASS' F(QUuid, 30, QUuid) \ ^
2021-11-25Fix compilation on macOS when clang < 9 or Qt < 5.12 (#7117)tenzap
* fix compilation on Qt not having QOperatingSystemVersion::MacOSBigSur The code uses 'QOperatingSystemVersion::MacOSBigSur' which doesn't exist in all Qt versions (it has been backported to Qt 5.12.10+ & 5.15.1+ only). On older macos systems like El Capitan the last supported version of Qt is 5.11 This will fix compilation issue on such older systems and on systems running with Qt not supporting QOperatingSystemVersion::MacOSBigSur Compilation error was: error: no member named 'MacOSBigSur' in 'QOperatingSystemVersion' * Fix compilation when osx <= 10.9 * AppKitImpl.mm: button property is new in 10.10. It is used for a feature of KeePassXC that is only available from 10.17 onwards. So we don't need it when compiling on <= 10.9 error: property 'button' not found on object of type 'NSStatusItem *' NSString* appearance = [dummy.button.effectiveAppearance.name lowercaseString]; ^ * The code uses @available syntax which is supported by AppleClang >= 9 or LLVM >= 5. We check __clang_major__ to allow compilation on older versions of macOS that don't have a recent clang. For example on El Capitan. * Fix compilation when osx <= 10.8 * AppKitImpl.mm: AXIsProcessTrustedWithOptions exists from 10.9 onwards error: use of undeclared identifier 'kAXTrustedCheckOptionPrompt' error: use of undeclared identifier 'AXIsProcessTrustedWithOptions' * Fix compilation when osx <= 10.7 * MacUtils.cpp: CoreGraphics exists from 10.8 onwards only, capslock detection feature would have to be implemented on OSX <= 10.7 * AppKitImpl.mm: CGDisplayStreamRef exists from 10.8 onwards only. It is used for a feature of KeePassXC that is only available from 10.15 onwards. So we don't need it when compiling on <= 10.7 error: unknown type name 'CGDisplayStreamRef' * AppKitImpl.mm: Syntax is not understood by 10.7, update it to be understandable by <= 10.7 error: expected method to read dictionary element not found on object of type 'NSDictionary *' NSRunningApplication* app = userInfo[NSWorkspaceApplicationKey]; ^ * The code uses @available syntax which is supported by AppleClang >= 9 or LLVM >= 5. We check __clang_major__ to allow compilation on older versions of macOS that don't have a recent clang. * Fix compilation error on OS X 10.11 src/core/Alloc.cpp:44:10: error: no type named 'free' in namespace 'std' std::free(ptr); ~~~~~^ This is a regression, since it was fixed in [1] Per [2], std::free() needs #include <cstdlib>. That file is included indirectly on newer systems. [1] https://github.com/keepassxreboot/keepassxc/commit/7c6c027d33b06eb706f93e3d178a2305d7bcfd56 [2] https://en.cppreference.com/w/cpp/memory/c/free * fix compilation when macos SDK <= 10.14 These methods are only available from macOS 10.15 - kSecAccessControlWatch - LAPolicy.deviceOwnerAuthenticationWithBiometricsOrWatch The code uses @available syntax which is supported by AppleClang >= 9 or LLVM >= 5. We check __clang_major__ to allow compilation on older versions of macOS that don't have a recent clang.
2021-11-22Correctly set KDBX envelope versionJanek Bevendorff
Shows a warning when trying to open with a newer minor version than what is currently supported. We always try to save with the lowest KDBX version possible for maximum compatibility.
2021-11-22Implement KDBX 4.1 CustomData modification dateJanek Bevendorff
We keep the old merging behaviour for now, since deleting a CustomData entry does not create DeletedObject.
2021-11-22Implement KDBX 4.1 extended custom iconsJanek Bevendorff
2021-11-22Add "Restore Entries" featureJanek Bevendorff
2021-11-22Implement KDBX 4.1 group tagsJanek Bevendorff
2021-11-22Implement KDBX 4.1 PreviousParentGroup flagJanek Bevendorff
2021-11-22Implement KDBX 4.1 PasswordQuality flagJanek Bevendorff
2021-11-12Removing QWidget dependency from src/core.louib
2021-11-08Allow specifing database backup paths. (#7035)Patrick Klein
- Default backupFilePath is '{DB_FILENAME}.old.kdbx' to conform to existing standards - Implement backupPathPattern tests. - Show tooltip on how to format database backup location text field.
2021-11-05Support for wordlists in user configuration directory (#6799)snipfoo
This commit allows users to put alternative wordlists in a `wordlists` subdirectory below their KeePassXC directory (e.g., under Linux, `~/.config/keepassxc/wordlists`). These wordlists will then appear in the dropdown menu in the *Password Generator* widget. In order to differentiate between lists shipped with KeePassXC and user-provided lists, the former appears with a (SYSTEM) prefix.
2021-10-17FdoSecrets: Implement unlock before searchAetf
Fixes #6942 and fixes #4443 - Return number of deleted entries - Fix minor memory leak - FdoSecrets: make all prompt truly async per spec and update tests * the waited signal may already be emitted before calling spy.wait(), causing the test to fail. This commit checks the count before waiting. * check unlock result after waiting for signal - FdoSecrets: implement unlockBeforeSearch option - FdoSecrets: make search always work regardless of entry group searching settings, fixes #6942 - FdoSecrets: cleanup gracefully even if some test failed - FdoSecrets: make it safe to call prompts concurrently - FdoSecrets: make sure in unit test we click on the correct dialog Note on the unit tests: objects are not deleted (due to deleteLater event not handled). So there may be multiple AccessControlDialog. But only one of it is visible and is the correctly one to click on. Before this change, a random one may be clicked on, causing the completed signal never be sent.
2021-10-11Add Browser Integration to Group Edit pagevarjolintu
Closes #1789 and closes #3998
2021-10-09Fix broken browser integration since #6899 (#7030)Chih-Hsuan Yen
2021-10-09Add direct write save optionJonathan White
* 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-09Fix infinite save bug when saving failsJonathan White
* Introduced in #6438, modified signal is not blocked at the Database level when emitting is blocked. This causes infinite saving to occur when Always Save After Every Change is enabled.
2021-10-02Place the 'Recycle Bin' at the bottom of the list when groups are sorted. ↵Gaurav Pruthi
(#7004) Co-authored-by: Gaurav Pruthi <gaurav.pruthi@oracle.com>
2021-10-02Add support for Diceware wordlists in numbered and/or PGP-signed formats (#6791)snipfoo
This allows one to directly use Diceware-compatible wordlists without having to convert the file to the plain wordlist format. The accepted formats are described in the Diceware documentation: https://diceware.readthedocs.io/en/stable/wordlists.html
2021-10-01SSH Agent: Add support for OpenSSH 8.2 FIDO/U2F keysToni Spets
Closes #4334
2021-09-28Rename translation filesJanek Bevendorff
2021-09-21Add delete-entry command to Browser Integration APIvarjolintu
2021-08-23CLI: Replace locate command with searchRobin Ebert
* Introduce search CLI command to replace locate command. Search can provide the same functionality but in a more fine-grained fashion * Replace use of Group::locate in code: Use EntrySearcher in clip cli command best-match option. This removes the matching against group hierarchy of an entry which is kind of nonsense as clip expects exactly one match. Matching against groups can be done using search command. * Remove obsolete Group::locate method
2021-08-23Moving CsvParser to format/louib
2021-08-23Add option to use both Pageant and OpenSSH agent on WindowsHongmou Zhang
2021-08-23Improve and secure attachment handling (fixes #2400).Janek Bevendorff
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-22Enhance last used directory settingsosx user
* Use hash based storage for last used directories instead of a key/value for each type * Explicitly declare certain operations as sensitive and follow the "Remember Last Database" setting for those. * Introduce database backup directory location (close #6619)
2021-08-08Add group clone actionStuzer05
Close #3796
2021-07-14Removed / Consolidated unnecessary header filesJonathan White
2021-07-14Optimize includes across code basepeter
2021-06-01Retain file creation time when saving database (#6576)Jonathan White
* Fix #6028
2021-05-29Make "Always on top" a local settingJonathan White
2021-05-28Properly block modified signal during Database destruction (#6438)Aetf
fixes #6393
2021-05-15Fix unreachable setting of file permissions (#6514)Xavier Valls
Fixes #6080
2021-04-24Introduce security option to enable copy on doubleclick (#6433)Xavier Valls
* Fix #1575 - option is disabled by default
2021-04-06Replace all crypto libraries with BotanJonathan White
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-01Remove credential sorting from Browser Integration (#6353)Sami Vänttinen
2021-03-07Persist Always on Top settingmantlabs
2021-02-27Add entry view column for password strengthOjas Anand
* 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-26Exclude additional lookalike characters (6G8B)Brandon Atkinson
* Fix #6075
2021-02-22Overhaul Auto-Type Action HandlingJonathan White
* Close #2603 - Add support for modifier syntax (+, ^, and %) * Fix #2633 - Allow reference syntax {REF:...} in Auto-Type sequences * Close #5334 - Tell the user which part of the Auto-Type sequence is invalid for easy correction * Fix #2401 - Select the right window on macOS prior to starting Auto-Type * Allow for nested placeholders
2021-02-22Improve Auto-Type Select DialogJonathan White
Significant improvements to the Auto-Type select dialog. Reduce stale and unnecessary code paths. * Close select dialog when databases are locked. * Close open modal dialogs prior to showing the Auto-Type select dialog to prevent interference. * Never perform Auto-Type on the KeePassXC window. * Only filter match list based on Group, Title, and Username column data (ie, ignore sequence column) * Always show the sequence column (revert feature) * Show selection dialog if there are no matches to allow for a database search * Close #3630 - Allow typing {USERNAME} and {PASSWORD} from selection dialog (right-click menu). * Close #429 - Ability to search open databases for an entry from the Auto-Type selection dialog. * Fix #5361 - Default size of selection dialog doesn't cut off matches
2021-02-20Address translation feedback from TransifexJonathan White
2021-02-05FdoSecrets: Major Refactor and Code Consolidation (#5747)Aetf
* Fixes #3837 * Change objects to use DBusMgr rather than separate adaptors - Update all DBus invokable methods to new parameter order - Change all usage of DBusReturn to simpler DBusResult - Use DBusMgr to handle path and service registration - Remove adaptor/* - Set path in DBusObject - Unregister service when service is destroyed - Restore handling of invalid QVariant in prompt complete signal - Clean up meta type registration - Move dbus related file together - Convert to QSharedPointer as much as possible - Fix mapping of the Delete method - Handle dbus property get all * Add per-client states - Move cipher negotiation to DBusClient - Show list of clients instead of sessions in the settings page - Add settings for confirmation of accessing items - Fix infinite recursion when client disconnected - Use optional explicit DBusClient parameter instead. This makes accessing the client info in an async context explicit, and thus prevent accidental assertions in prompts. * Improve User Interface - Add per-item access confirmation (if enabled) - Remove the "disable for site" button for the access control dialog - Improve the text on the settings page to be more consistent - Fix disconnect buttons in settings page not working - Make the unlock prompt method nonblocking * Fix and cleanup unit tests - Use QTRY_COMPARE when checking signal spies, as dbus signals are threaded - Fixes in meta type registration and type conversion - Remove QStringLiteral in COMPARE macros, making diff output readable - Add testing for remembering auth decision
2021-01-12Merge branch 'master' into developJanek Bevendorff
2020-12-21Copy history when drag/drop entries and groupsJonathan White
* Fix #5809
2020-12-12Redo 'delete entries no confirm' functionality & unit-tests (#5812)Bernhard Berg
* Fixes #5232
2020-12-11Revert "Add "move to recycle bin without confirmation" setting"Janek Bevendorff
This reverts commit de44764efa42fa08d7191d08d07a8f16f7b33380.