Louis-Bertrand Varin
8324d03f0a
Formatting the code.
2018-03-31 16:01:30 -04:00
Janek Bevendorff
2f821af0a0
Raise error if challenge-response failed during KDBX4 key transformation, resolves #1656
2018-03-06 22:08:09 +01:00
Janek Bevendorff
e6c19fdcb1
Add MockChallengeResponseKey and additional composite key component test
2018-03-01 19:26:18 -05:00
Janek Bevendorff
871332ecf0
Add warning when using legacy key file formats.
2018-01-14 18:26:28 -05:00
Janek Bevendorff
b04c8c2b6e
Explicitly support AES-KDF in KDBX4 and don't convert KDBX4 files with AES-KDF back to KDBX3 when saving
2018-01-13 14:25:00 -05:00
Janek Bevendorff
df728083cc
Add challenge response to key before transformation, resolves #1060
...
* Re-implement KDBX4 challenge-response key assembly with transform
seed instead of master seed
2018-01-13 14:24:59 -05:00
Janek Bevendorff
15648991fc
Refactor Kdf class, remove fields concept
2018-01-13 14:23:28 -05:00
angelsl
2e19af5032
Pull out KDFs into their own class hierarchy
...
In preparation for multiple KDFs in KDBX 4
2018-01-13 14:23:20 -05:00
Janek Bevendorff
901bf62213
Generate random 128-byte stream instead of legacy XML format when creating key files
...
Add API documentation for FileKey class
Resolves #1325
2017-12-26 22:37:45 +01:00
Janek Bevendorff
ab21f718ba
Merge branch 'release/2.2.2' into develop
2017-10-12 14:10:20 +02:00
Jonathan White
3bc8a79b9b
Both slots on Yubikey are now polled for challenge/response
2017-10-09 09:39:47 -04:00
Jonathan White
14e3d9d576
Merge remote-tracking branch 'origin/master' into develop
...
# Conflicts:
# src/core/Group.cpp
2017-10-01 11:10:10 -04:00
Jonathan White
8e7fa3d3d6
Corrected multiple Yubikey bugs ( #880 )
...
* Fixed database not showing modified after failed save
* Fixed Yubikey not being redetected after replug
* Fixed single shot challenge resulting in failed saves
2017-09-23 11:45:20 -04:00
louib
1d30283514
Feature : --key-file option for CLI ( #816 )
...
* removing readFromLine
* Removing gui-prompt
* execute uses an arg list.
* Testing with key-file
* Fixing the -a option in EntropyMeter.
2017-07-25 13:41:52 -04:00
thez3ro
a53b111182
Update and fix copyright headers
2017-06-14 15:54:43 +02:00
seatedscribe
06bbd6e066
Get rid of Q_{EMIT,SLOTS,SIGNALS}
2017-03-16 21:46:53 +01:00
Janek Bevendorff
429bef6830
Remove unused debug function
2017-03-10 18:06:22 +01:00
Janek Bevendorff
44206cf088
Fix stub compilation
2017-02-25 17:04:00 +01:00
Janek Bevendorff
9a94c6d85e
Remove debug output to reduce console spam when running in debug mode
2017-02-24 20:50:06 +01:00
Janek Bevendorff
46942413db
Fix unit test crash
2017-02-24 19:47:03 +01:00
Janek Bevendorff
18844d096a
Make other YubiKey driver methods thread-safe
2017-02-24 17:50:19 +01:00
Janek Bevendorff
b10cb1c83c
Show YubiKey message from MainWindow to ensure it's always shown when a challenge is generated
2017-02-24 17:27:27 +01:00
Janek Bevendorff
d6c48a5cf1
Show message when user needs to touch their YubiKey (still buggy when using multiple databases)
2017-02-24 03:25:08 +01:00
Janek Bevendorff
44ac7d152b
Use better variable names
2017-02-24 01:09:24 +01:00
Janek Bevendorff
70816f90b2
Make challenge() member thread-safe
2017-02-24 01:05:31 +01:00
Janek Bevendorff
093fe5c7ef
Use QSharedPointer instead of cloning YkChallengeResponseKey and make it a QObject to allow emitting signals
2017-02-23 23:52:36 +01:00
Janek Bevendorff
b2650c5a96
Hide UI elements when KeePassXC was compiled without -DWITH_XC_YUBIKEY
2017-02-21 01:06:32 +01:00
Janek Bevendorff
8d3e0687a0
Restructure doc comments and make hard-coded strings translatable
2017-02-21 00:28:01 +01:00
Janek Bevendorff
eb23dda99b
Remember if challenge-response was used for each database and allow to re-detect Yubikeys without closing the database first
2017-02-20 22:07:01 +01:00
Janek Bevendorff
e17576a6f7
Merge branch 'develop' into feature/yubikey
2017-01-15 03:20:21 +02:00
Janek Bevendorff
6fd7427cae
Merge branch 'develop' into feature/updateKdbxExtract
2017-01-14 22:21:41 +02:00
Louis-Bertrand Varin
798041fe11
Extract readKeyFromLine.
2017-01-14 13:25:30 -05:00
Josh Soref
53e0893b51
spelling: correct
2017-01-14 17:31:38 +01:00
Kyle Manna
ef06165ea2
keys: CompositeKey: Change Q_FOREACH to C++11 for()
...
* Use the C++11 range based loop as recommended from
https://github.com/keepassxreboot/keepassxc/pull/119
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 18:47:54 -08:00
Pedro Alves
d398d367c1
Allow a previously yubikey protected database to be saved without the yubikey challenge-response code.
2017-01-08 16:48:12 -08:00
Kyle Manna
62190d79be
YubiKey: Whitespace clean-up
...
* This was bugging me. Oops.
* No functional changes.
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:43:30 -08:00
Kyle Manna
f7ee528d41
YubiKey: Retry to recover hotplugging
...
* Attempt one retry in the event the event the device was removed and
re-inserted.
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:43:23 -08:00
Kyle Manna
faa055010f
challenge: Propagate failed challenge to caller
...
* If a removed Yubikey is to blame, re-inserting the Yubikey won't
resolve the issue. Hot plug isn't supported at this point.
* The caller should detect the error and cancel the database write.
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-08 16:40:25 -08:00
Kyle Manna
5b8b4c8c7b
keys: yk: Implement ChallengeResponseKey for YubiKey
...
* Implement a YubiKey challenge response class. One object will be
created for each challenge response key available.
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:20:16 -08:00
Kyle Manna
82aed2caab
keys: yk: Add YubiKey hardware driver support
...
* Use compile time detection of the YubiKey libraries and link against
the libraries if present. Can be disabled with:
$ cmake -DCMAKE_DISABLE_FIND_PACKAGE_YubiKey=FALSE
* A stub file provides empty calls for all the function calls integrated
in to the UI to support this. In the future a more modular approach
maybe better, but opting for simplicity initially.
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:18:59 -08:00
Kyle Manna
ccd6704b8f
keys: CompositeKey: Add ChallengeResponseKey support
...
* Each Challenge Response Key consists of a list of regular keys and now
challenge response keys.
* Copy ChallengeResponseKeys when copying the object.
* Challenge consists of challenging each driver in the list and hashing
the concatenated data result using SHA256.
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:14:43 -08:00
Kyle Manna
9bdb41a727
keys: Add ChallengeResponseKey header
...
* Add initial header file for forthcoming challenge response support.
* A ChallengeResponseKey operates by submitting some challenge data and
getting a deterministic result.
* In the case of the forthcoming YubiKey integration, the master seed is
submitted as the challenge to the YubiKey hardware and the YubiKey
returns a HMAC-SHA1 response.
Signed-off-by: Kyle Manna <kyle@kylemanna.com>
2017-01-07 23:03:47 -08:00
Felix Geyer
fff9e7ac46
Convert Q_FOREACH loops to C++11 for loops.
...
Q_FOREACH will de deprecated soon.
2016-10-02 21:45:55 -04:00
Felix Geyer
ecfbf72a57
Merge branch '2.0'
2015-12-15 21:05:00 +01:00
Felix Geyer
2fa531745f
Check XML key file for valid base64 before using it.
...
QByteArray::fromBase64() doesn't validate the input.
Closes #366
2015-11-01 18:32:15 +01:00
Felix Geyer
dff3fc0572
Coding style fixes.
2015-10-15 18:02:31 +02:00
Felix Geyer
7fa0eddc5f
Make C++11 mandatory.
2015-09-12 13:55:50 +02:00
Felix Geyer
460b23b1eb
Use QElapsedTimer everywhere.
2015-09-12 13:51:49 +02:00
Felix Geyer
208b0f39e6
Adapt to QtConcurrent being a separate module now.
2015-09-12 13:51:49 +02:00
Florian Geyer
f22069bb11
Use higher increment for transform rounds in benchmark.
...
Thanks to Sami Farin for providing a patch.
Closes #305 .
2015-07-12 21:48:55 +02:00
Felix Geyer
4362c3ea38
Handle cipher errors in TransformKeyBenchmarkThread.
2015-05-09 23:38:04 +02:00
Felix Geyer
f6243675c9
Warn if result of processInPlace() is unchecked.
...
Fix callers accordingly.
2015-05-09 23:21:50 +02:00
Felix Geyer
a762cef0a9
Catch and handle all errors from libgcrypt.
2015-05-09 23:21:44 +02:00
Ben Boeckel
66b3d22041
Use QString::toLatin1() rather than ::toAscii()
...
The toAscii (and fromAscii) are removed from Qt5 in favor of Latin1.
2013-11-24 21:19:20 +01:00
Felix Geyer
9c788a6e84
Support custom backends in Random.
...
Useful for tests.
2013-10-09 22:06:32 +02:00
Felix Geyer
6504b6f2bd
Drop Qt module name from include statements.
...
This is a preparation to be able to build KeePassX against Qt 5.
2013-10-03 15:18:16 +02:00
Felix Geyer
8117809901
Add small comment.
2012-10-12 12:11:34 +02:00
Felix Geyer
b8b4d35763
Add CompositeKey::isEmpty().
2012-10-12 12:10:13 +02:00
Felix Geyer
7e9343c697
Fix CompositKey self assignment.
2012-07-17 10:57:08 +02:00
Felix Geyer
ee3bc89a54
Coding style fixes.
2012-06-30 00:22:07 +02:00
Felix Geyer
68155e8f89
Make use of Q_NULLPTR.
2012-06-29 14:15:16 +02:00
Felix Geyer
b90807c4d3
Coding style fixes.
2012-05-15 17:48:48 +02:00
Felix Geyer
efb40a6567
Fix transform round benchmark.
2012-05-12 15:39:33 +02:00
Felix Geyer
587a647c11
New TODO comment style.
...
Qt Creator 2.5 is able to parse those.
2012-05-11 12:39:06 +02:00
Felix Geyer
cc6f524168
Add Tools::readFromDevice() and make FileKey use it.
2012-05-10 19:00:36 +02:00
Felix Geyer
6eebd95de1
Move FileKey::isHex() to Tools.
2012-05-10 18:34:51 +02:00
Felix Geyer
8122ab2b2c
Use quint64 everywhere for the transform rounds number.
2012-05-08 22:31:09 +02:00
Felix Geyer
7790f2e7ba
Add CompositeKey::transformKeyBenchmark().
...
This method tests how many key transformation rounds can be calculated
within a specific time.
2012-05-07 14:41:31 +02:00
Felix Geyer
d5fc1bf0b4
Improve performance of the key transformation.
2012-05-07 14:31:18 +02:00
Felix Geyer
f753728e97
Only use one additional thread in CompositeKey::transform().
2012-05-03 12:21:42 +02:00
Felix Geyer
739f4d97a6
Coding style fixes.
2012-05-02 17:04:03 +02:00
Felix Geyer
0ad4b3d8fe
Minor improvements in CompositeKey and TestKeys.
2012-04-25 18:35:30 +02:00
Felix Geyer
3df2ad35cb
Constification and some style fixes.
2012-04-23 21:09:01 +02:00
Florian Geyer
db52267400
Clear keys in assignment operator of composite key.
...
Fixes corruption of key if master key and then transform rounds is changed.
2012-04-21 18:28:06 +02:00
Felix Geyer
2e011d5362
Improve code style.
2012-04-18 22:08:22 +02:00
Felix Geyer
0ad1bf0a70
Add CompositeKey::clear().
2012-01-11 23:59:50 +01:00
Felix Geyer
279585fff4
Mark some constructor as explicit.
2012-01-11 19:18:35 +01:00
Felix Geyer
f215ffa3fa
Implement support for key files.
...
Closes #5 .
2011-12-21 23:22:07 +01:00
Felix Geyer
0014d50b59
Deep copy subkeys when cloning CompositeKey.
2011-11-13 14:52:43 +01:00
Felix Geyer
9ef105e1ae
Use QtConcurrentRun instead of subclassing QThread.
2011-11-12 01:49:19 +01:00
Felix Geyer
d4f02a78a7
Coding style fixes.
2011-07-08 14:51:14 +02:00
Felix Geyer
230d24a123
No longer use automoc.
2010-11-21 23:06:30 +01:00
Felix Geyer
537ffafefd
Add unit test TestKeePass2Reader.
2010-09-20 00:16:30 +02:00
Felix Geyer
1678351d11
Enable and fix more warnings.
2010-09-18 20:31:14 +02:00
Felix Geyer
9f282928e8
Implement reading encrypted kdbx files.
2010-09-13 23:24:36 +02:00