keepassxc/src/keys
Janek Bevendorff 13eb1c0bbd Improve resilience against memory attacks
To reduce residual fragments of secret data in memory after
deallocation, this patch replaces the global delete operator with a
version that zeros out previously allocated memory. It makes use of
the new C++14 sized deallocation, but provides an unsized fallback
with platform-specific size deductions.

This change is only a minor mitigation and cannot protect against
buffer reallocations by the operating system or non-C++ libraries.
Thus, we still cannot guarantee all memory to be wiped after free.

As a further improvement, this patch uses libgcrypt and libsodium
to write long-lived master key component hashes into a secure
memory area and wipe it afterwards.

The patch also fixes compiler flags not being set properly on macOS.
2019-04-21 09:39:28 -04:00
..
drivers fix(YubiKey): call yk_release on errors 2019-03-06 21:45:10 -05:00
ChallengeResponseKey.h Restore correct formatting 2018-11-28 18:29:15 -05:00
CompositeKey.cpp Restore correct formatting 2018-11-28 18:29:15 -05:00
CompositeKey.h Restore correct formatting 2018-11-28 18:29:15 -05:00
FileKey.cpp Improve resilience against memory attacks 2019-04-21 09:39:28 -04:00
FileKey.h Improve resilience against memory attacks 2019-04-21 09:39:28 -04:00
Key.h Restore correct formatting 2018-11-28 18:29:15 -05:00
PasswordKey.cpp Improve resilience against memory attacks 2019-04-21 09:39:28 -04:00
PasswordKey.h Improve resilience against memory attacks 2019-04-21 09:39:28 -04:00
YkChallengeResponseKey.cpp Improve resilience against memory attacks 2019-04-21 09:39:28 -04:00
YkChallengeResponseKey.h Improve resilience against memory attacks 2019-04-21 09:39:28 -04:00