0
0
mirror of https://github.com/keepassxreboot/keepassxc.git synced 2024-09-19 20:02:18 +02:00
keepassxc/tests
Carlo Teubner da8874ded6
Improve Entry placeholder resolution (#10846)
* Entry placeholder resolution: don't overdo it

After resolving placeholders, previously the code would do it all over again if anything had changed, multiple times up to the recursion limit. This would have the effect of applying a much greater recursion limit, which is confusing and unnecessary, and probably undesired.

* Entry tweaks and minor refactoring

- Entry::size(): when computing tag size, use same delimiter set as in other places in the code
- Factor tag delimiter set regex out into global constant
- Placeholder resolution: remove unnecessary special casing for self-referential placeholders (these are taken care of by existing recursion depth limit)
- Placeholder resolution: less wasteful string building loop
- Move some constants from being public static data members of Entry to being local to Entry.cpp (in anonymous namespace)
- Migrate some QRegEx instances to QRegularExpression, the modern alternative
- Miscellanous minor code cleanups

* Entry: fix hitting recursion limit with {braces}

When encountering a {brace-enclosed} substring, the placeholder resolution logic would previously keep recursing until it hit the recursion depth limit (currently 10). This would lead to "Maximum depth of replacement has been reached" messages, and was also wasting CPU cycles.

Fixes #1741

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-16 10:47:27 -04:00
..
data Support remote database access using external tools (#7222) 2024-06-13 06:23:41 -04:00
gui Improve overall database settings behavior 2024-06-16 08:43:09 -04:00
mock Support remote database access using external tools (#7222) 2024-06-13 06:23:41 -04:00
util Optimize includes across code base 2021-07-13 22:08:33 -04:00
CMakeLists.txt Fix broken build when using system zxcvbn (#10717) 2024-05-27 15:11:34 -04:00
config-keepassx-tests.h.cmake Remove KeePassHttp plugin and qhttp (#1752) 2018-03-31 11:36:18 -04:00
FailDevice.cpp Formatting the code. 2018-03-31 16:01:30 -04:00
FailDevice.h Make C++11 mandatory. 2015-09-12 13:55:50 +02:00
modeltest.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
modeltest.h Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
TestAutoType.cpp Minor changes to Group API to make it more explicit 2024-03-09 10:44:54 -05:00
TestAutoType.h Auto-Type support for T-CONV, T-REPLACE-RX, and Comments 2021-02-22 07:41:23 -05:00
TestBase32.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestBase32.h Add new Base32 implementation 2017-10-21 13:15:02 +02:00
TestBrowser.cpp Allow groups to restrict by browser integration key (#6437) 2024-01-14 07:43:48 -05:00
TestBrowser.h Allow groups to restrict by browser integration key (#6437) 2024-01-14 07:43:48 -05:00
TestCli.cpp Fix broken build when using system zxcvbn (#10717) 2024-05-27 15:11:34 -04:00
TestCli.h CLI: Add Unicode support on Windows (#8618) 2022-10-29 08:07:31 -04:00
TestConfig.cpp Remove password repeat application setting 2024-04-27 09:49:38 -04:00
TestConfig.h Change settings checkbox texts to positive phrasing (#4715) 2020-05-10 21:35:08 -04:00
TestCryptoHash.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestCryptoHash.h Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
TestCsvExporter.cpp Fix multiple TOTP issues 2024-01-06 15:17:13 -05:00
TestCsvExporter.h Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestCsvParser.cpp Add braces around single line statements 2020-02-02 08:46:18 -05:00
TestCsvParser.h Remove various undefined/unused functions 2024-03-31 17:19:35 -04:00
TestDatabase.cpp Cleanup compiler warnings on all platforms (#10847) 2024-06-12 21:25:15 -04:00
TestDatabase.h Fix db history when adding new db (#9022) 2023-01-29 09:24:10 -05:00
TestDeletedObjects.cpp clang-tidy: use auto 2022-05-01 16:02:02 -04:00
TestDeletedObjects.h Implement KDBX 4.1 extended custom icons 2021-11-22 12:58:04 +01:00
TestEntry.cpp Improve Entry placeholder resolution (#10846) 2024-06-16 10:47:27 -04:00
TestEntry.h Implement KDBX 4.1 PreviousParentGroup flag 2021-11-22 12:58:04 +01:00
TestEntryModel.cpp Show Row-Backgroundcolor in a column 2023-09-16 09:00:03 -04:00
TestEntryModel.h Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
TestEntrySearcher.cpp Fix minor typos (#10124) 2023-12-22 15:12:07 -05:00
TestEntrySearcher.h Add uuid search (#9571) 2023-07-04 07:24:10 -04:00
TestFdoSecrets.cpp Fix various typos (#8748) 2023-01-29 09:38:44 -05:00
TestFdoSecrets.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestGroup.cpp Disable entry level Auto-Type 2023-07-30 09:56:09 -04:00
TestGroup.h Disable entry level Auto-Type 2023-07-30 09:56:09 -04:00
TestGroupModel.cpp clang-tidy: use auto 2022-05-01 16:02:02 -04:00
TestGroupModel.h Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
TestHashedBlockStream.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestHashedBlockStream.h Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
TestHibp.cpp clang-tidy: use auto 2022-05-01 16:02:02 -04:00
TestHibp.h CLI: add 'analyze' subcommand for offline HIBP breach checks 2019-06-25 15:37:40 -04:00
TestIconDownloader.cpp Add a URL that preserves the URL path when trying to resolve favicons. (#8565) 2022-10-19 20:50:17 -04:00
TestIconDownloader.h Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestImports.cpp Bitwarden and 1PUX importer improvements 2024-04-29 08:51:01 -04:00
TestImports.h Add 1Password 1PUX and Bitwarden JSON Importers 2024-03-09 10:44:54 -05:00
TestKdbx2.cpp Correctly set KDBX envelope version 2021-11-22 12:58:04 +01:00
TestKdbx2.h Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestKdbx3.cpp Prevent byte-by-byte and attachment inference side channel attacks 2024-03-09 12:39:00 -05:00
TestKdbx3.h Prevent byte-by-byte and attachment inference side channel attacks 2024-03-09 12:39:00 -05:00
TestKdbx4.cpp Prevent byte-by-byte and attachment inference side channel attacks 2024-03-09 12:39:00 -05:00
TestKdbx4.h Prevent byte-by-byte and attachment inference side channel attacks 2024-03-09 12:39:00 -05:00
TestKeePass1Reader.cpp clang-tidy: use braced init list (#7998) 2023-01-29 10:05:44 -05:00
TestKeePass1Reader.h Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestKeePass2Format.cpp Fix crash on screen lock or computer sleep 2024-04-13 07:54:18 -04:00
TestKeePass2Format.h Correctly set KDBX envelope version 2021-11-22 12:58:04 +01:00
TestKeePass2RandomStream.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestKeePass2RandomStream.h Replace Q_EMIT, Q_SIGNALS and Q_SLOTS macros with MOC keywords 2017-03-10 16:12:02 +01:00
TestKeys.cpp Add key serialization to support Quick Unlock 2022-02-22 17:53:50 -05:00
TestKeys.h Add MockChallengeResponseKey and additional composite key component test 2018-03-01 19:26:18 -05:00
TestMerge.cpp Prevent KeeShare from merging database custom data 2024-04-29 08:50:46 -04:00
TestMerge.h Prevent KeeShare from merging database custom data 2024-04-29 08:50:46 -04:00
TestModified.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestModified.h Properly block modified signal during Database destruction (#6438) 2021-05-27 21:50:15 -04:00
TestOpenSSHKey.cpp SSH Agent: Add support for generating SSH keys 2023-02-01 23:32:56 -05:00
TestOpenSSHKey.h SSH Agent: Add support for OpenSSH 8.2 FIDO/U2F keys 2021-10-01 16:25:14 -04:00
TestPasskeys.cpp Passkeys: Pass extension JSON data to browser (#10615) 2024-04-25 06:29:51 -04:00
TestPasskeys.h Skip a few Passkeys tests with Botan <= 2.14 (#10360) 2024-03-08 08:43:06 -05:00
TestPassphraseGenerator.cpp Fix passphrase generator test (#10890) 2024-06-12 17:21:53 -04:00
TestPassphraseGenerator.h Add word case option to passphrase generator (#3172) 2019-05-24 18:23:19 -04:00
TestPasswordGenerator.cpp Add -i/--include option to "generate" CLI command. (#7112) 2021-12-07 23:40:09 -05:00
TestPasswordGenerator.h Add -i/--include option to "generate" CLI command. (#7112) 2021-12-07 23:40:09 -05:00
TestPasswordHealth.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestPasswordHealth.h Implement Password Health Report 2020-02-01 09:30:12 -05:00
TestRandomGenerator.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestRandomGenerator.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestSharing.cpp KeeShare: Remove checking signed container 2021-12-14 23:23:23 -05:00
TestSharing.h KeeShare: Remove checking signed container 2021-12-14 23:23:23 -05:00
TestSSHAgent.cpp SSH Agent: Add support for generating SSH keys 2023-02-01 23:32:56 -05:00
TestSSHAgent.h SSH Agent: Add support for generating SSH keys 2023-02-01 23:32:56 -05:00
TestSymmetricCipher.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestSymmetricCipher.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestTools.cpp Fix display of bytes without decimals (#10595) 2024-04-24 18:20:58 -04:00
TestTools.h Passkeys improvements (#10318) 2024-03-06 07:42:01 -05:00
TestTotp.cpp Remove zero-width space character from comments 2024-06-02 07:44:00 -04:00
TestTotp.h Remove zero-width space character from comments 2024-06-02 07:44:00 -04:00
TestUpdateCheck.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
TestUpdateCheck.h Ran make format 2019-03-19 18:56:17 -04:00
TestUrlTools.cpp Passkeys improvements (#10318) 2024-03-06 07:42:01 -05:00
TestUrlTools.h Passkeys improvements (#10318) 2024-03-06 07:42:01 -05:00
TestYkChallengeResponseKey.cpp Automatically detect USB device changes 2024-03-08 10:55:22 -05:00
TestYkChallengeResponseKey.h Significantly enhance hardware key robustness 2020-05-14 20:19:56 -04:00