mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-08-01 19:16:16 -04:00
Add support for database format 3.01 (HeaderHash).
Add test for the format 3.00 and upgrade Compressed.kdbx, NonAscii.kdbx and ProtectedStrings.kdbx to 3.01. Add a test for an incorrect HeaderHash.
This commit is contained in:
parent
40ccd219f4
commit
18d3fe55f8
18 changed files with 185 additions and 16 deletions
|
@ -43,6 +43,7 @@ void TestKeePass2Reader::testNonAscii()
|
|||
QVERIFY(db);
|
||||
QVERIFY(!reader.hasError());
|
||||
QCOMPARE(db->metadata()->name(), QString("NonAsciiTest"));
|
||||
QCOMPARE(db->compressionAlgo(), Database::CompressionNone);
|
||||
|
||||
delete db;
|
||||
}
|
||||
|
@ -57,6 +58,7 @@ void TestKeePass2Reader::testCompressed()
|
|||
QVERIFY(db);
|
||||
QVERIFY(!reader.hasError());
|
||||
QCOMPARE(db->metadata()->name(), QString("Compressed"));
|
||||
QCOMPARE(db->compressionAlgo(), Database::CompressionGZip);
|
||||
|
||||
delete db;
|
||||
}
|
||||
|
@ -87,6 +89,22 @@ void TestKeePass2Reader::testProtectedStrings()
|
|||
delete db;
|
||||
}
|
||||
|
||||
void TestKeePass2Reader::testBrokenHeaderHash()
|
||||
{
|
||||
// The protected stream key has been modified in the header.
|
||||
// Make sure the database won't open.
|
||||
|
||||
QString filename = QString(KEEPASSX_TEST_DATA_DIR).append("/BrokenHeaderHash.kdbx");
|
||||
CompositeKey key;
|
||||
key.addKey(PasswordKey(""));
|
||||
KeePass2Reader reader;
|
||||
Database* db = reader.readDatabase(filename, key);
|
||||
QVERIFY(!db);
|
||||
QVERIFY(reader.hasError());
|
||||
|
||||
delete db;
|
||||
}
|
||||
|
||||
void TestKeePass2Reader::testFormat200()
|
||||
{
|
||||
QString filename = QString(KEEPASSX_TEST_DATA_DIR).append("/Format200.kdbx");
|
||||
|
@ -121,4 +139,20 @@ void TestKeePass2Reader::testFormat200()
|
|||
delete db;
|
||||
}
|
||||
|
||||
void TestKeePass2Reader::testFormat300()
|
||||
{
|
||||
QString filename = QString(KEEPASSX_TEST_DATA_DIR).append("/Format300.kdbx");
|
||||
CompositeKey key;
|
||||
key.addKey(PasswordKey("a"));
|
||||
KeePass2Reader reader;
|
||||
Database* db = reader.readDatabase(filename, key);
|
||||
QVERIFY(db);
|
||||
QVERIFY(!reader.hasError());
|
||||
|
||||
QCOMPARE(db->rootGroup()->name(), QString("Format300"));
|
||||
QCOMPARE(db->metadata()->name(), QString("Test Database Format 0x00030000"));
|
||||
|
||||
delete db;
|
||||
}
|
||||
|
||||
QTEST_GUILESS_MAIN(TestKeePass2Reader)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue