keepassxc/tests
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
..
data FdoSecrets: Major Refactor and Code Consolidation (#5747) 2021-02-05 15:07:59 -05:00
gui Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
mock Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
util FdoSecrets: Major Refactor and Code Consolidation (#5747) 2021-02-05 15:07:59 -05:00
CMakeLists.txt Replace all crypto libraries with Botan 2021-04-05 22:56:03 -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 🐛 Fix building with Qt 5.9 (closes #528) 2017-06-01 17:05:07 -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 Additional Auto-Type improvements based on PR feedback 2021-02-22 07:41:23 -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 Move useful QTest template specializations to global header file 2018-01-24 13:32:37 +01:00
TestBase32.h Add new Base32 implementation 2017-10-21 13:15:02 +02:00
TestBrowser.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestBrowser.h Remove credential sorting from Browser Integration (#6353) 2021-03-31 23:14:29 -04:00
TestCli.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestCli.h Move global shortcut handling into OSUtils (#5566) 2020-12-13 23:23:25 -05:00
TestConfig.cpp Fixup saving non-data changes on database lock 2020-08-08 15:40:00 -04:00
TestConfig.h Change settings checkbox texts to positive phrasing (#4715) 2020-05-10 21:35:08 -04:00
TestCryptoHash.cpp Restore correct formatting 2018-11-28 18:29:15 -05: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 Improve CSV export and import capability 2020-12-06 11:16:49 -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 Formatting the code. 2018-03-31 16:01:30 -04:00
TestDatabase.cpp Improve Database and CLI tests 2019-10-20 18:56:41 -04:00
TestDatabase.h Improve Database and CLI tests 2019-10-20 18:56:41 -04:00
TestDeletedObjects.cpp Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestDeletedObjects.h Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestEntry.cpp Add natural sort of entry list 2020-05-22 12:13:20 -04:00
TestEntry.h Add natural sort of entry list 2020-05-22 12:13:20 -04:00
TestEntryModel.cpp Add entry view column for password strength 2021-02-26 22:10:04 -05: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 Add an option to EntrySearcher to skip protected attributes 2020-05-27 22:07:25 -04:00
TestEntrySearcher.h Add an option to EntrySearcher to skip protected attributes 2020-05-27 22:07:25 -04:00
TestFdoSecrets.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestFdoSecrets.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestGlobal.h Restore correct formatting 2018-11-28 18:29:15 -05:00
TestGroup.cpp Replace database icons with SVG's 2020-05-29 10:00:32 -04:00
TestGroup.h Add natural sort of entry list 2020-05-22 12:13:20 -04:00
TestGroupModel.cpp Formatting the code. 2018-03-31 16:01:30 -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 Move useful QTest template specializations to global header file 2018-01-24 13:32:37 +01: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 CLI: add 'analyze' subcommand for offline HIBP breach checks 2019-06-25 15:37:40 -04:00
TestHibp.h CLI: add 'analyze' subcommand for offline HIBP breach checks 2019-06-25 15:37:40 -04:00
TestIconDownloader.cpp Fix favicon download from URL with non-standard port. 2021-03-01 21:42:19 -05:00
TestIconDownloader.h Fix favicon download from URL with non-standard port. 2021-03-01 21:42:19 -05:00
TestKdbx2.cpp Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestKdbx2.h Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestKdbx3.cpp Ensure challenge-response key buffer is properly cleared. 2020-01-11 11:16:03 +01:00
TestKdbx3.h Performed project-wide code formatting 2019-01-28 22:38:59 -05:00
TestKdbx4.cpp Add Argon2id KDF (backport of #5726) 2020-12-04 15:11:28 +01:00
TestKdbx4.h Ensure challenge-response key buffer is properly cleared. 2020-01-11 11:16:03 +01:00
TestKeePass1Reader.cpp Replace database icons with SVG's 2020-05-29 10:00:32 -04:00
TestKeePass1Reader.h Refactor Database and Database widgets (#2491) 2018-11-22 11:47:31 +01:00
TestKeePass2Format.cpp Add Argon2id KDF (backport of #5726) 2020-12-04 15:11:28 +01:00
TestKeePass2Format.h Ensure challenge-response key buffer is properly cleared. 2020-01-11 11:16:03 +01:00
TestKeePass2RandomStream.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -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 support for version 2 XML key files. 2021-01-07 22:02:43 -05:00
TestKeys.h Add MockChallengeResponseKey and additional composite key component test 2018-03-01 19:26:18 -05:00
TestMerge.cpp Replace database icons with SVG's 2020-05-29 10:00:32 -04:00
TestMerge.h Merge custom data only when necessary (#3475) 2019-09-16 14:01:13 -04:00
TestModified.cpp Removing QColor (from Qt::Widgets) from core modules. (#4247) 2020-01-26 21:38:43 -05:00
TestModified.h Introduce synchronize merge method 2018-09-30 09:36:39 -04:00
TestOpenSSHKey.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestOpenSSHKey.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestOpVaultReader.cpp OPVault: Use Text instead of Name for attribute and section names 2021-04-01 22:59:44 -04:00
TestOpVaultReader.h Improve OPVault handling and replace test opvault 2020-05-14 15:17:28 -04:00
TestPassphraseGenerator.cpp Add word case option to passphrase generator (#3172) 2019-05-24 18:23:19 -04:00
TestPassphraseGenerator.h Add word case option to passphrase generator (#3172) 2019-05-24 18:23:19 -04:00
TestPasswordGenerator.cpp Exclude additional lookalike characters (6G8B) 2021-02-25 21:36:30 -05:00
TestPasswordGenerator.h Allow defining additional characters for the password generator 2020-03-09 23:35:55 -04:00
TestPasswordHealth.cpp Implement Password Health Report 2020-02-01 09:30:12 -05:00
TestPasswordHealth.h Implement Password Health Report 2020-02-01 09:30:12 -05:00
TestRandomGenerator.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestRandomGenerator.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestSharing.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestSharing.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestSignature.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestSignature.h Add sharing of groups between databases 2018-10-01 10:39:37 -04:00
TestSSHAgent.cpp SSH Agent: Track which database owns a key for remove-on-lock 2020-05-19 09:23:41 -04:00
TestSSHAgent.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestSymmetricCipher.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestSymmetricCipher.h Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestTools.cpp Substitute tilde with USERPROFILE on Windows 2020-07-18 09:24:22 -04:00
TestTools.h Implement SSH key file path env substitution 2020-01-27 22:57:31 -05:00
TestTotp.cpp Correct issues with TOTP Setup 2019-10-20 17:57:51 -04:00
TestTotp.h Complete refactor of TOTP integration 2018-09-15 12:10:26 -04:00
TestUpdateCheck.cpp Enhance update checker 2019-04-11 08:52:51 -04:00
TestUpdateCheck.h Ran make format 2019-03-19 18:56:17 -04:00
TestYkChallengeResponseKey.cpp Replace all crypto libraries with Botan 2021-04-05 22:56:03 -04:00
TestYkChallengeResponseKey.h Significantly enhance hardware key robustness 2020-05-14 20:19:56 -04:00