Commit Graph

732 Commits

Author SHA1 Message Date
Felix Geyer
f98d834edb Move Auto-Type associations handling from Entry into an own class. 2012-07-16 09:54:04 +02:00
Felix Geyer
6d5b31f527 Normalize signal/slot signatures. 2012-07-14 19:34:38 +02:00
Felix Geyer
98df309d28 Coding style fixes. 2012-07-08 10:29:38 +02:00
Felix Geyer
2e38b01d80 Add Save and SaveAs gui tests. 2012-07-06 19:21:19 +02:00
Felix Geyer
78849c43f1 Make sure tmpDir is not empty. 2012-07-06 16:40:38 +02:00
Felix Geyer
2f98d95b66 Import QSaveFile from libkdeqt5staging.
It's planned to become part of Qt 5.1.
2012-07-06 14:36:04 +02:00
Felix Geyer
e050385e27 Increase wait time in TestGui::testSearch() a bit. 2012-07-02 22:12:07 +02:00
Felix Geyer
782223a643 Coding style fixes. 2012-07-01 21:58:45 +02:00
Felix Geyer
fd6546c5df Move modeltest to the front so it's always passed to the linker before Qt. 2012-07-01 21:29:54 +02:00
Felix Geyer
dedce07530 Add KeePass1 import GUI test. 2012-06-29 15:54:34 +02:00
Felix Geyer
baa5a74ba0 Convert iconCount() and expiredIconIndex() to constants. 2012-06-29 15:22:43 +02:00
Felix Geyer
68155e8f89 Make use of Q_NULLPTR. 2012-06-29 14:15:16 +02:00
Felix Geyer
92af92ccbe Convert DatabaseOpenDialog into a widget on DatabaseWidget. 2012-06-29 10:36:35 +02:00
Florian Geyer
dad4376030 Fix typo. 2012-06-25 00:09:40 +02:00
Florian Geyer
204822b66f Improve auto save handling. 2012-06-24 19:30:30 +02:00
Felix Geyer
b0ad864fe0 Always convert explicitly from QByteArray to QString. 2012-06-24 18:23:27 +02:00
Felix Geyer
d0016bf6c4 Fix reading non-ASCII passwords that are protected.
Closes #28
2012-06-24 18:22:18 +02:00
Florian Geyer
a720903083 Use temporary settings file for gui test. 2012-06-14 23:07:49 +02:00
Felix Geyer
f43ad8d062 Support copying username and password to the clipboard. 2012-05-26 16:37:57 +02:00
Felix Geyer
a1a71a88bb Fix cmake file formatting. 2012-05-21 23:37:29 +02:00
Felix Geyer
bde397503e Coding style fixes. 2012-05-21 11:57:29 +02:00
Florian Geyer
9faf550fa1 Use line edit widget for search edit. 2012-05-20 21:09:34 +02:00
Florian Geyer
e4a5cd214f Improve search.
Find as you type.
Add shortcut.
Hide search widgets when not used.

Refs #24
2012-05-20 12:57:50 +02:00
Felix Geyer
7ebee78c75 Create src/gui/{entry,group}/ and move corresponding files to these dirs. 2012-05-16 10:22:04 +02:00
Florian Geyer
b08d2d45b7 Add gui test for search. 2012-05-16 10:18:27 +02:00
Felix Geyer
b90807c4d3 Coding style fixes. 2012-05-15 17:48:48 +02:00
Florian Geyer
a57e8f9864 Preserve order of custom icons.
Closes #25
2012-05-13 20:50:41 +02:00
Florian Geyer
60e65bec35 Add search test. 2012-05-13 19:21:23 +02:00
Florian Geyer
6b6c109903 Add search.
Refs #24
2012-05-13 19:21:10 +02:00
Felix Geyer
af726d465d Fix typo. 2012-05-13 13:33:55 +02:00
Florian Geyer
a1dec7594d Extend history item tests. 2012-05-11 20:14:52 +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
8faac078fd Make EntryView sortable. 2012-05-11 12:01:01 +02:00
Florian Geyer
44489bf6f8 Fix creation of history item when a new entry is added.
Add corresponding gui test.
2012-05-11 09:16:45 +02:00
Felix Geyer
3738115b6d Test if we can re-open imported KeePass 1 databases. 2012-05-10 23:00:29 +02:00
Felix Geyer
65bdc207b7 Make sure we don't create DeletedObjects when importing databases. 2012-05-10 22:54:26 +02:00
Felix Geyer
366d8a0f0e Set master key after reading the database. 2012-05-10 22:46:36 +02:00
Felix Geyer
9d8e276950 Set uuids for entries. 2012-05-10 21:35:26 +02:00
Felix Geyer
2ecd11eb35 Add test for a non-ascii password. 2012-05-10 21:29:10 +02:00
Felix Geyer
cf4e574c50 Support Twofish encrypted KeePass 1 databases.
Refs #2
2012-05-10 21:06:33 +02:00
Felix Geyer
225e5dac66 Add tests for opening KeePass 1 databases with different keyfiles. 2012-05-10 19:34:55 +02:00
Felix Geyer
5a08e4619c Add icon model tests. 2012-05-10 13:59:54 +02:00
Felix Geyer
65f2790170 Parse KeePass 1 database meta streams.
Refs #2
2012-05-10 11:44:25 +02:00
Felix Geyer
79b15e2ac6 Implement support for parsing groups and entries from KeePass 1 databases.
Still missing:
- Key files.
- Twofish encryption.

Refs #2
2012-05-09 23:16:32 +02:00
Andreas Piesk
7568582b05 compile with QT < 4.7 (RHEL6 an clones) 2012-05-09 22:15:28 +02:00
Felix Geyer
ebce183925 Start implementing support for reading KeePass 1 databases.
For now only decrypting the database works.

Still missing:
- Actually parsing the database.
- Key files.

Refs #1
2012-05-08 22:06:12 +02:00
Felix Geyer
38e421d9c1 Fix padding handling in SymmetricCipherStream.
The implementation had two issues:
- It didn't add a block full of padding when the input size was a multiple
  of the block size.
- It didn't strip the padding when reading data.
2012-05-08 21:46:01 +02:00
Felix Geyer
f8f52419c8 Turn EntryAttachmentsModel into a QAbstractListModel. 2012-05-02 10:30:30 +02:00
Felix Geyer
7f67019f63 Turn EntryAttributesModel into a QAbstractListModel. 2012-04-28 16:50:17 +02:00
Felix Geyer
de4b90cdf1 Copy custom icons when moved to another database.
Closes #9
2012-04-27 11:22:02 +02:00
Felix Geyer
fdf4ab9d76 Improve TestGui::testEditEntry().
Simulate mouse click on the actual edit action widget.
Make sure that the edit entry widget is active after triggering the entry edit.
2012-04-26 17:52:02 +02:00
Florian Geyer
93c231ec2b Extend group test. 2012-04-25 19:41:46 +02:00
Felix Geyer
0ad4b3d8fe Minor improvements in CompositeKey and TestKeys. 2012-04-25 18:35:30 +02:00
Felix Geyer
1b8963c1f8 Change Q_ASSERT() to QVERIFY() in modeltest. 2012-04-25 10:45:36 +02:00
Felix Geyer
d3fbb291bd Support moving groups with drag and drop. 2012-04-25 00:22:55 +02:00
Felix Geyer
0d20955920 Fix bug where index is wrong when a group is moved to the end from the same parent.
This triggered the bug:
group->setParent(group->parentGroup());

Then index was group->parentGroup()->children().size() instead of size()-1.
2012-04-25 00:10:06 +02:00
Felix Geyer
e026f3d1eb Create a history item when changing entries.
Closes #15
2012-04-23 21:20:05 +02:00
Felix Geyer
bddc29101c Introduce Group::aboutToMove() and moved() signals.
Emit them instead of remove/add when groups are moved within
a database.
2012-04-23 16:57:08 +02:00
Felix Geyer
bf25959b68 Memory management fixes in tests. 2012-04-22 23:09:52 +02:00
Florian Geyer
d8fcc43bc3 Extend deleted objects test. 2012-04-22 19:59:50 +02:00
Felix Geyer
82f1cbb3c9 Build with -DQT_NO_CAST_TO_ASCII. 2012-04-22 00:55:52 +02:00
Felix Geyer
72defa375d Coding style fixes. 2012-04-22 00:29:16 +02:00
Florian Geyer
c8ad27975a Clean up deleted objects test (again). 2012-04-22 00:11:17 +02:00
Florian Geyer
0d80a726fa Clean up deleted objects test. 2012-04-22 00:11:17 +02:00
Florian Geyer
5dc21a191b Clean up group deletion. 2012-04-22 00:11:17 +02:00
Florian Geyer
cc8d6424e2 Add test for deleted objects. 2012-04-22 00:11:17 +02:00
Felix Geyer
8acd6f74d8 Support KeePass format 3.00 (used by KeePass2 >= 2.15).
Closes #6

Attachments are now stored in a pool under Metadata instead of in entries.
The protected flag of attachments isn't supported anymore.
New metadata attributes: color, historyMaxItems and historyMaxSize.
Dropped metadata attribute: autoEnableVisualHiding.
2012-04-21 16:45:46 +02:00
Felix Geyer
2e011d5362 Improve code style. 2012-04-18 22:08:22 +02:00
Felix Geyer
0791b43da9 TestGroup: Register Entry as a meta type. 2012-04-18 17:42:55 +02:00
Felix Geyer
134f9a663e Test that modified() is emitted when deleting Groups and Entries. 2012-04-18 17:31:05 +02:00
Felix Geyer
433e8c4508 Simplify TestModified a bit. 2012-04-18 17:26:32 +02:00
Florian Geyer
34204f3281 Disconnect entry from database, when removed. 2012-04-18 17:03:58 +02:00
Florian Geyer
d85e5d7560 Update connection of modified signals of entries when a parent group changes database. 2012-04-18 17:03:58 +02:00
Florian Geyer
ec3cca1f77 Add test for modified signals. 2012-04-18 17:03:58 +02:00
Felix Geyer
e3b7f621be Convert TestKeePass2Reader to a core test so it doesn't need an X server. 2012-04-15 17:31:20 +02:00
Felix Geyer
3baaf6be97 Add TestGui::testEditEntry().
This tests that the database isn't marked as modified when we don't change
anything but still press the Ok button.
2012-04-14 20:31:35 +02:00
Felix Geyer
a8b3771f15 Disable some qDebug() noise in ModelTest. 2012-04-14 17:55:19 +02:00
Felix Geyer
2b16648370 Add EntryAttachmentsModel and EntryAttributesModel. 2012-04-14 15:41:57 +02:00
Felix Geyer
d4a94a8996 Move attributes and attachments handking from Entry into own classes. 2012-04-14 15:38:20 +02:00
Florian Geyer
875c01dc52 Add test for group notes. 2012-04-11 21:50:20 +02:00
Felix Geyer
d527e63f1f Change the Entry attributes/attachment API to provide a stable key order. 2012-04-06 19:33:29 +02:00
Felix Geyer
9d1838a0fe Rename KeyOpenDialog to DatabaseOpenDialog. 2012-04-05 18:31:12 +02:00
Felix Geyer
0ad1bf0a70 Add CompositeKey::clear(). 2012-01-11 23:59:50 +01:00
Felix Geyer
e397080d79 Rename addAttribute() to setAttribute() and addAttachment() to setAttachment(). 2012-01-07 16:22:11 +01:00
Felix Geyer
007a901dba Proper error handling for reading databases. 2012-01-06 20:03:13 +01:00
Felix Geyer
ea38b721d6 Add pixmap gui test. 2012-01-05 18:45:21 +01:00
Felix Geyer
a61057d7f6 Core tests instantiate QCoreApplication instead of QApplication.
This way they can be used without a running X server.
2012-01-01 22:04:27 +01:00
Felix Geyer
17d0fb9963 Add include guards. 2012-01-01 21:57:13 +01:00
Felix Geyer
00aafa69f5 Store database icons as QImage instead of QIcon.
This has the advantage that they can be used without a running X server.
Add methods to retrieve QPixmaps that are converted from the stored QImages
and cached by QPixmapCache.
2012-01-01 21:52:54 +01:00
Florian Geyer
ccc8725bb3 Clean up gui test. 2011-12-29 20:10:19 +01:00
Felix Geyer
bce46c5ece Enforce that group/entry uuid is set when writing a database. 2011-12-27 15:47:06 +01:00
Felix Geyer
4ebcd53801 Ignore compiler warnings in qendian.h. 2011-12-26 19:34:34 +01:00
Felix Geyer
4da6da8828 Add a GUI unit test. 2011-12-26 19:18:21 +01:00
Felix Geyer
227d39ceb2 Update ModelTest from Qt 4.8.0. 2011-12-25 20:53:33 +01:00
Felix Geyer
f215ffa3fa Implement support for key files.
Closes #5.
2011-12-21 23:22:07 +01:00
Felix Geyer
e5bba14994 Move test data files into an own subdirectory. 2011-11-20 11:10:01 +01:00
Felix Geyer
b840b5de6d Don't include the UseQt4 file.
This way we don't needlessly add each Qt module to the include paths.
2011-11-20 10:12:49 +01:00
Felix Geyer
0014d50b59 Deep copy subkeys when cloning CompositeKey. 2011-11-13 14:52:43 +01:00
Felix Geyer
ac60f7ce70 Add missing crypto initalization in tests. 2011-11-12 20:00:19 +01:00
Felix Geyer
9b46225937 Fix cmake files to use new gcrypt variables. 2011-11-12 14:30:16 +01:00
Felix Geyer
027362be76 Notify entry/group parent on deletion.
Also make the root group pseudo static, i.e. it shouldn't be changed
after the database has been fully constructed.
2011-07-09 21:54:01 +02:00
Felix Geyer
4dbdc4d847 Make some Group methods private. 2011-07-08 13:57:02 +02:00
Felix Geyer
afb285a476 Use a special enum for inherit/enable/disable variables. 2011-07-07 12:45:14 +02:00
Felix Geyer
a299dd9715 Integrate KeePass2RandomStream into KeePass2 reader and writer classes.
This hopefully completes support for reading/writing kdbx <= 2.14 files.

Also fix a bug in KeePass2XmlWriter so it sets Protected="True" in the Value
tag instead of Key.
2011-07-07 00:15:52 +02:00
Felix Geyer
58e048be96 Add KeePass2RandomStream class.
It's responsible for processing protected strings in kdbx files.
2011-07-07 00:08:37 +02:00
Felix Geyer
a104e859cf Clean up objects in the tests. 2011-06-29 18:40:26 +02:00
Felix Geyer
230d24a123 No longer use automoc. 2010-11-21 23:06:30 +01:00
Felix Geyer
a428464573 Add Salsa20 cipher.
Restructure SymmetricCipher implementation to allow multiple backends.
2010-11-21 16:19:27 +01:00
Felix Geyer
76da30adda Pass -Wl,--no-add-needed to the linker. 2010-09-23 23:36:25 +02:00
Felix Geyer
b8dfb9cc4d Add support for gzip compressed databases. 2010-09-23 22:27:59 +02:00
Felix Geyer
537ffafefd Add unit test TestKeePass2Reader. 2010-09-20 00:16:30 +02:00
Felix Geyer
8835565fe3 Rename TestParser class to TestKeePass2XmlReader. 2010-09-20 00:15:32 +02:00
Felix Geyer
567dd92d4c Add built-in icons. 2010-09-19 21:22:24 +02:00
Felix Geyer
b639c43b24 Remove unneeded toHex() calls. 2010-09-19 20:13:23 +02:00
Felix Geyer
5da7d3fca6 Implement writing in SymmetricCipherStream and add a unit test. 2010-09-18 17:19:42 +02:00
Felix Geyer
c93ac9f6fc Move qRegisterMetaType calls into initTestCase(). 2010-09-18 17:15:22 +02:00
Felix Geyer
36d974649e Write the remaining buffer in reset(). 2010-09-18 17:13:28 +02:00
Felix Geyer
c2bdfab158 Implement writing to the SymmetricCipherStream. 2010-09-16 18:20:46 +02:00
Felix Geyer
d508c2dd68 Open a kdbx file in main() and add more SymmetricCipher tests. 2010-09-13 23:25:48 +02:00
Felix Geyer
6a2034fa24 Add crypto classes and tests. Link to libgcrypt. 2010-09-11 19:49:30 +02:00
Felix Geyer
1cfc34361a Add interface for database reader/writer. 2010-08-31 16:18:45 +02:00
Felix Geyer
ee4c2c3dd4 Move core/Parser to format/KeePass2XmlReader and core/Writer to format/KeePass2XmlWriter. 2010-08-31 14:39:35 +02:00
Felix Geyer
3bf0564436 Handle CustomData element.
This should make support for reading and writing
KeePass 2 XML files complete (closes #1).
2010-08-26 00:31:07 +02:00
Felix Geyer
cd26e9d474 Add a bunch of new Parser testcases. 2010-08-25 21:14:41 +02:00
Felix Geyer
e96c3bb011 Un-constify Entry* and Group* in various related signals and models/views. 2010-08-23 21:30:20 +02:00
Felix Geyer
8d623f37ca Add EntryModel. 2010-08-18 16:22:48 +02:00
Felix Geyer
48c498890f Use QCOMPARE instead of QVERIFY where possible. 2010-08-18 11:05:46 +02:00
Felix Geyer
623b325fa1 Implement support for group tree changes in GroupModel. 2010-08-18 10:27:40 +02:00
Felix Geyer
e28ed4891b Add signal for changes in Group. 2010-08-15 15:03:47 +02:00
Felix Geyer
072a8ccf1b Add GroupModel and corresponding unit test. 2010-08-15 12:31:48 +02:00
Felix Geyer
9b0ba46b31 Add more tests. 2010-08-14 14:26:25 +02:00
Felix Geyer
bd1ea05017 Fix parser and add unit tests. 2010-08-13 18:08:06 +02:00