Janek Bevendorff d612cad09a
Refactor Database and Database widgets (#2491)
The Database, DatabaseWidget, and DatabaseTabWidget classes share many responsibilities in inconsistent ways resulting in impenetrable and unmaintainable code and a diverse set of bugs and architecture restrictions. This patch reworks the architecture, responsibilities of, and dependencies between these classes.

The core changes are:

* Move loading and saving logic from widgets into the Database class
* Get rid of the DatabaseManagerStruct and move all the information contained in it into the Database
* Let database objects keep track of modifications and dirty/clean state instead of handing this to external widgets
* Move GUI interactions for loading and saving from the DatabaseTabWidget into the DatabaseWidget (resolves #2494 as a side-effect)
* Heavily clean up DatabaseTabWidget and degrade it to a slightly glorified QTabWidget
* Use QSharedPointers for all Database objects
* Remove the modifiedImmediate signal and replace it with a markAsModified() method
* Implement proper tabName() method instead of reading back titles from GUI widgets (resolves #1389 and its duplicates #2146 #855)
* Fix unwanted AES-KDF downgrade if database uses Argon2 and has CustomData
* Improve code

This patch is also the first major step towards solving issues #476 and #2322.
2018-11-22 11:47:31 +01:00
2018-03-31 12:15:09 -04:00
2016-11-11 16:30:57 -05:00
2018-10-19 22:16:44 +02:00
2018-11-17 09:04:15 -05:00
2017-10-21 10:12:28 -06:00
2018-03-31 12:15:09 -04:00
2018-10-19 22:16:44 +02:00
2018-09-18 22:45:44 -04:00
2013-03-23 21:50:23 +01:00
2013-03-24 14:16:34 +01:00
2018-11-17 08:28:23 -05:00

KeePassXC

TeamCity Build Status codecov

About KeePassXC

KeePassXC is a cross-platform community fork of KeePassX. Our goal is to extend and improve it with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager.

Installation

The KeePassXC QuickStart gets you started using KeePassXC on your Windows, Mac, or Linux computer using pre-compiled binaries from the downloads page.

Additionally, individual Linux distributions may ship their own versions, so please check out your distribution's package list to see if KeePassXC is available.

Additional features compared to KeePassX

For a full list of features and changes, read the CHANGELOG document.

Building KeePassXC

Detailed instructions are available in the Build and Install page or on the Wiki page.

Contributing

We are always looking for suggestions how to improve our application. If you find any bugs or have an idea for a new feature, please let us know by opening a report in our issue tracker on GitHub or join us on IRC on freenode channels #keepassxc or #keepassxc-dev.

You can of course also directly contribute your own code. We are happy to accept your pull requests.

Please read the CONTRIBUTING document for further information.

Note about KeePassHTTP

The KeePassHTTP protocol is not a highly secure protocol. It has a certain flaw which could allow an attacker to decrypt your passwords should they manage to impersonate the web browser extension from a remote address.

(See here and here).

To minimize the risk, KeePassXC strictly limits communication between itself and the browser plugin to your local computer (localhost). This makes your passwords quite safe, but as with all open source software, use it at your own risk!

Description
KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
Readme 86 MiB
Languages
C++ 97.3%
CMake 1.2%
Shell 0.8%
PowerShell 0.3%
Objective-C++ 0.3%