diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 1b9070b8a..d258eb94c 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -1,36 +1,36 @@ remove_definitions(-DQT_NO_CAST_FROM_ASCII) include(ECMAddTests) find_package(Qt5Test ${REQUIRED_QT_VERSION} CONFIG QUIET) if(NOT Qt5Test_FOUND) message(STATUS "Qt5Test not found, autotests will not be built.") return() endif() ecm_add_test( flatkeylistmodeltest.cpp abstractkeylistmodeltest.cpp TEST_NAME flatkeylistmodeltest LINK_LIBRARIES KF5::Libkleo Qt5::Test ) ecm_add_test( hierarchicalkeylistmodeltest.cpp abstractkeylistmodeltest.cpp TEST_NAME hierarchicalkeylistmodeltest LINK_LIBRARIES KF5::Libkleo Qt5::Test ) ecm_add_test( - keyresolvertest.cpp - keyresolvertest.qrc - TEST_NAME keyresolvertest - LINK_LIBRARIES KF5::Libkleo Qt5::Widgets Qt5::Test + keyresolvercoretest.cpp + keyresolvercoretest.qrc + TEST_NAME keyresolvercoretest + LINK_LIBRARIES KF5::Libkleo Qt5::Test ) ecm_add_tests( newkeyapprovaldialogtest.cpp LINK_LIBRARIES KF5::Libkleo Qt5::Widgets Qt5::Test ) diff --git a/autotests/fixtures/keyresolvertest/.gitignore b/autotests/fixtures/keyresolvercoretest/.gitignore similarity index 100% rename from autotests/fixtures/keyresolvertest/.gitignore rename to autotests/fixtures/keyresolvercoretest/.gitignore diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/029551BEA335EC0F84109F1EDD23E0FA44FEB336.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/029551BEA335EC0F84109F1EDD23E0FA44FEB336.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/029551BEA335EC0F84109F1EDD23E0FA44FEB336.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/029551BEA335EC0F84109F1EDD23E0FA44FEB336.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/068B3A87EB6029DC958371D42A8CF22913F792BA.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/068B3A87EB6029DC958371D42A8CF22913F792BA.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/068B3A87EB6029DC958371D42A8CF22913F792BA.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/068B3A87EB6029DC958371D42A8CF22913F792BA.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/07E5EE9F946A1760EC7E3DEC3E8665415BF8E5F0.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/07E5EE9F946A1760EC7E3DEC3E8665415BF8E5F0.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/07E5EE9F946A1760EC7E3DEC3E8665415BF8E5F0.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/07E5EE9F946A1760EC7E3DEC3E8665415BF8E5F0.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/0B767151C33FEE7708F7035860A4D2025C801000.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/0B767151C33FEE7708F7035860A4D2025C801000.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/0B767151C33FEE7708F7035860A4D2025C801000.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/0B767151C33FEE7708F7035860A4D2025C801000.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/2B38646AEC0F0D6AE2EEF714963722C0E58BF95F.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/2B38646AEC0F0D6AE2EEF714963722C0E58BF95F.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/2B38646AEC0F0D6AE2EEF714963722C0E58BF95F.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/2B38646AEC0F0D6AE2EEF714963722C0E58BF95F.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/4205C2F4EC7F5C7FBD175C5025A74E374E768B17.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/4205C2F4EC7F5C7FBD175C5025A74E374E768B17.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/4205C2F4EC7F5C7FBD175C5025A74E374E768B17.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/4205C2F4EC7F5C7FBD175C5025A74E374E768B17.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/8CD2635EB4B7766E0C174E62853FCE072795D304.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/8CD2635EB4B7766E0C174E62853FCE072795D304.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/8CD2635EB4B7766E0C174E62853FCE072795D304.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/8CD2635EB4B7766E0C174E62853FCE072795D304.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/93FBC8415935DD866AEAE179D70A58B1BEE7EA85.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/93FBC8415935DD866AEAE179D70A58B1BEE7EA85.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/93FBC8415935DD866AEAE179D70A58B1BEE7EA85.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/93FBC8415935DD866AEAE179D70A58B1BEE7EA85.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/9A54238A5B7D396D48A584255A1DE5622FBF8B99.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/9A54238A5B7D396D48A584255A1DE5622FBF8B99.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/9A54238A5B7D396D48A584255A1DE5622FBF8B99.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/9A54238A5B7D396D48A584255A1DE5622FBF8B99.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/A4E6D1CEBA63087E47B84863BF16D8E81F0B7629.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/A4E6D1CEBA63087E47B84863BF16D8E81F0B7629.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/A4E6D1CEBA63087E47B84863BF16D8E81F0B7629.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/A4E6D1CEBA63087E47B84863BF16D8E81F0B7629.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/B185B49FC722A9C92F8C2C30438BA225363F0A6B.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/B185B49FC722A9C92F8C2C30438BA225363F0A6B.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/B185B49FC722A9C92F8C2C30438BA225363F0A6B.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/B185B49FC722A9C92F8C2C30438BA225363F0A6B.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/B9E7A40AA2CE1512A3270374D05AB0A74F98E54E.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/B9E7A40AA2CE1512A3270374D05AB0A74F98E54E.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/B9E7A40AA2CE1512A3270374D05AB0A74F98E54E.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/B9E7A40AA2CE1512A3270374D05AB0A74F98E54E.key diff --git a/autotests/fixtures/keyresolvertest/private-keys-v1.d/F769B16A6206E8F17D0AFB99EDB44BE813943A2C.key b/autotests/fixtures/keyresolvercoretest/private-keys-v1.d/F769B16A6206E8F17D0AFB99EDB44BE813943A2C.key similarity index 100% rename from autotests/fixtures/keyresolvertest/private-keys-v1.d/F769B16A6206E8F17D0AFB99EDB44BE813943A2C.key rename to autotests/fixtures/keyresolvercoretest/private-keys-v1.d/F769B16A6206E8F17D0AFB99EDB44BE813943A2C.key diff --git a/autotests/fixtures/keyresolvertest/pubring.kbx b/autotests/fixtures/keyresolvercoretest/pubring.kbx similarity index 100% rename from autotests/fixtures/keyresolvertest/pubring.kbx rename to autotests/fixtures/keyresolvercoretest/pubring.kbx diff --git a/autotests/fixtures/keyresolvertest/readme.md b/autotests/fixtures/keyresolvercoretest/readme.md similarity index 100% rename from autotests/fixtures/keyresolvertest/readme.md rename to autotests/fixtures/keyresolvercoretest/readme.md diff --git a/autotests/fixtures/keyresolvertest/trustdb.gpg b/autotests/fixtures/keyresolvercoretest/trustdb.gpg similarity index 100% rename from autotests/fixtures/keyresolvertest/trustdb.gpg rename to autotests/fixtures/keyresolvercoretest/trustdb.gpg diff --git a/autotests/fixtures/keyresolvertest/trustlist.txt b/autotests/fixtures/keyresolvercoretest/trustlist.txt similarity index 100% rename from autotests/fixtures/keyresolvertest/trustlist.txt rename to autotests/fixtures/keyresolvercoretest/trustlist.txt diff --git a/autotests/keyresolvertest.cpp b/autotests/keyresolvercoretest.cpp similarity index 76% rename from autotests/keyresolvertest.cpp rename to autotests/keyresolvercoretest.cpp index c87d93da5..53f1c5116 100644 --- a/autotests/keyresolvertest.cpp +++ b/autotests/keyresolvercoretest.cpp @@ -1,206 +1,184 @@ /* - autotests/keyresolvertest.cpp + autotests/keyresolvercoretest.cpp This file is part of libkleopatra's test suite. SPDX-FileCopyrightText: 2021 g10 Code GmbH SPDX-FileContributor: Ingo Klöcker SPDX-License-Identifier: GPL-2.0-or-later */ #include -#include +#include #include -#include #include #include #include using namespace Kleo; using namespace GpgME; -class KeyResolverTest: public QObject +class KeyResolverCoreTest: public QObject { Q_OBJECT private Q_SLOTS: void init() { - mGnupgHome = QTest::qExtractTestData("/fixtures/keyresolvertest"); + mGnupgHome = QTest::qExtractTestData("/fixtures/keyresolvercoretest"); qputenv("GNUPGHOME", mGnupgHome->path().toLocal8Bit()); // hold a reference to the key cache to avoid rebuilding while the test is running mKeyCache = KeyCache::instance(); } void cleanup() { - mKeysResolvedSpy.reset(); - // verify that nobody else holds a reference to the key cache QVERIFY(mKeyCache.use_count() == 1); mKeyCache.reset(); mGnupgHome.reset(); } void test_verify_test_keys() { { const Key openpgp = testKey("sender-mixed@example.net", OpenPGP); QVERIFY(openpgp.hasSecret() && openpgp.canEncrypt() && openpgp.canSign()); QCOMPARE(openpgp.userID(0).validity(), UserID::Ultimate); const Key smime = testKey("sender-mixed@example.net", CMS); QVERIFY(smime.hasSecret() && smime.canEncrypt() && smime.canSign()); QCOMPARE(smime.userID(0).validity(), UserID::Ultimate); } { const Key openpgp = testKey("sender-openpgp@example.net", OpenPGP); QVERIFY(openpgp.hasSecret() && openpgp.canEncrypt() && openpgp.canSign()); QCOMPARE(openpgp.userID(0).validity(), UserID::Ultimate); } { const Key openpgp = testKey("prefer-openpgp@example.net", OpenPGP); QVERIFY(openpgp.canEncrypt()); QCOMPARE(openpgp.userID(0).validity(), UserID::Full); } { const Key openpgp = testKey("prefer-smime@example.net", OpenPGP); QVERIFY(openpgp.canEncrypt()); QCOMPARE(openpgp.userID(0).validity(), UserID::Marginal); const Key smime = testKey("prefer-smime@example.net", CMS); QVERIFY(smime.canEncrypt()); QVERIFY(smime.userID(0).validity() >= UserID::Full); } } void test_openpgp_is_used_if_openpgp_only_and_smime_only_are_both_possible() { - KeyResolver resolver(/*encrypt=*/ true, /*sign=*/ true); + KeyResolverCore resolver(/*encrypt=*/ true, /*sign=*/ true); resolver.setSender(QStringLiteral("sender-mixed@example.net")); - spyOnKeysResolvedSignal(&resolver); - resolver.start(/*showApproval=*/ false); + const bool success = resolver.resolve(); - verifyKeysResolvedSignalEmittedWith(/*success=*/ true, /*sendUnencrypted=*/ false); + QVERIFY(success); QCOMPARE(resolver.signingKeys().value(OpenPGP).size(), 1); QCOMPARE(resolver.signingKeys().value(OpenPGP)[0].primaryFingerprint(), testKey("sender-mixed@example.net", OpenPGP).primaryFingerprint()); QCOMPARE(resolver.signingKeys().value(CMS).size(), 0); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).size(), 1); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).value("sender-mixed@example.net").size(), 1); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).value("sender-mixed@example.net")[0].primaryFingerprint(), testKey("sender-mixed@example.net", OpenPGP).primaryFingerprint()); QCOMPARE(resolver.encryptionKeys().value(CMS).size(), 0); } void test_openpgp_is_used_if_openpgp_only_and_smime_only_are_both_possible_with_preference_for_openpgp() { - KeyResolver resolver(/*encrypt=*/ true, /*sign=*/ true); + KeyResolverCore resolver(/*encrypt=*/ true, /*sign=*/ true); resolver.setPreferredProtocol(OpenPGP); resolver.setSender(QStringLiteral("sender-mixed@example.net")); - spyOnKeysResolvedSignal(&resolver); - resolver.start(/*showApproval=*/ false); + const bool success = resolver.resolve(); - verifyKeysResolvedSignalEmittedWith(/*success=*/ true, /*sendUnencrypted=*/ false); + QVERIFY(success); QCOMPARE(resolver.signingKeys().value(OpenPGP).size(), 1); QCOMPARE(resolver.signingKeys().value(OpenPGP)[0].primaryFingerprint(), testKey("sender-mixed@example.net", OpenPGP).primaryFingerprint()); QCOMPARE(resolver.signingKeys().value(CMS).size(), 0); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).size(), 1); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).value("sender-mixed@example.net").size(), 1); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).value("sender-mixed@example.net")[0].primaryFingerprint(), testKey("sender-mixed@example.net", OpenPGP).primaryFingerprint()); QCOMPARE(resolver.encryptionKeys().value(CMS).size(), 0); } void test_smime_is_used_if_openpgp_only_and_smime_only_are_both_possible_with_preference_for_smime() { - KeyResolver resolver(/*encrypt=*/ true, /*sign=*/ true); + KeyResolverCore resolver(/*encrypt=*/ true, /*sign=*/ true); resolver.setPreferredProtocol(CMS); resolver.setSender(QStringLiteral("sender-mixed@example.net")); - spyOnKeysResolvedSignal(&resolver); - resolver.start(/*showApproval=*/ false); + const bool success = resolver.resolve(); - verifyKeysResolvedSignalEmittedWith(/*success=*/ true, /*sendUnencrypted=*/ false); + QVERIFY(success); QCOMPARE(resolver.signingKeys().value(OpenPGP).size(), 0); QCOMPARE(resolver.signingKeys().value(CMS).size(), 1); QCOMPARE(resolver.signingKeys().value(CMS)[0].primaryFingerprint(), testKey("sender-mixed@example.net", CMS).primaryFingerprint()); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).size(), 0); QCOMPARE(resolver.encryptionKeys().value(CMS).size(), 1); QCOMPARE(resolver.encryptionKeys().value(CMS).value("sender-mixed@example.net").size(), 1); QCOMPARE(resolver.encryptionKeys().value(CMS).value("sender-mixed@example.net")[0].primaryFingerprint(), testKey("sender-mixed@example.net", CMS).primaryFingerprint()); } void test_override_sender_openpgp() { const QString override = testKey("prefer-openpgp@example.net", OpenPGP).primaryFingerprint(); - KeyResolver resolver(/*encrypt=*/ true, /*sign=*/ true); + KeyResolverCore resolver(/*encrypt=*/ true, /*sign=*/ true); resolver.setSender(QStringLiteral("sender-mixed@example.net")); resolver.setOverrideKeys({{OpenPGP, {{QStringLiteral("sender-mixed@example.net"), {override}}}}}); - spyOnKeysResolvedSignal(&resolver); - resolver.start(/*showApproval=*/ false); + const bool success = resolver.resolve(); - verifyKeysResolvedSignalEmittedWith(/*success=*/ true, /*sendUnencrypted=*/ false); + QVERIFY(success); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).size(), 1); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).value("sender-mixed@example.net").size(), 1); QCOMPARE(resolver.encryptionKeys().value(OpenPGP).value("sender-mixed@example.net")[0].primaryFingerprint(), override); } void test_override_sender_smime() { const QString override = testKey("prefer-smime@example.net", CMS).primaryFingerprint(); - KeyResolver resolver(/*encrypt=*/ true, /*sign=*/ true); + KeyResolverCore resolver(/*encrypt=*/ true, /*sign=*/ true); resolver.setPreferredProtocol(CMS); resolver.setSender(QStringLiteral("sender-mixed@example.net")); resolver.setOverrideKeys({{CMS, {{QStringLiteral("sender-mixed@example.net"), {override}}}}}); - spyOnKeysResolvedSignal(&resolver); - resolver.start(/*showApproval=*/ false); + const bool success = resolver.resolve(); - verifyKeysResolvedSignalEmittedWith(/*success=*/ true, /*sendUnencrypted=*/ false); + QVERIFY(success); QCOMPARE(resolver.encryptionKeys().value(CMS).size(), 1); QCOMPARE(resolver.encryptionKeys().value(CMS).value("sender-mixed@example.net").size(), 1); QCOMPARE(resolver.encryptionKeys().value(CMS).value("sender-mixed@example.net")[0].primaryFingerprint(), override); } +private: Key testKey(const char *email, Protocol protocol = UnknownProtocol) { const std::vector keys = KeyCache::instance()->findByEMailAddress(email); for (const auto &key: keys) { if (protocol == UnknownProtocol || key.protocol() == protocol) { return key; } } return Key(); } - void spyOnKeysResolvedSignal(KeyResolver *resolver) - { - mKeysResolvedSpy = std::make_unique(resolver, &KeyResolver::keysResolved); - QVERIFY(mKeysResolvedSpy->isValid()); - } - - void verifyKeysResolvedSignalEmittedWith(bool success, bool sendUnencrypted) - { - QCOMPARE(mKeysResolvedSpy->count(), 1); - const QList arguments = mKeysResolvedSpy->takeFirst(); - QCOMPARE(arguments.at(0).toBool(), success); - QCOMPARE(arguments.at(1).toBool(), sendUnencrypted); - } - private: QSharedPointer mGnupgHome; std::shared_ptr mKeyCache; - std::unique_ptr mKeysResolvedSpy; }; -QTEST_MAIN(KeyResolverTest) -#include "keyresolvertest.moc" +QTEST_MAIN(KeyResolverCoreTest) +#include "keyresolvercoretest.moc" diff --git a/autotests/keyresolvercoretest.qrc b/autotests/keyresolvercoretest.qrc new file mode 100644 index 000000000..8a600c6f2 --- /dev/null +++ b/autotests/keyresolvercoretest.qrc @@ -0,0 +1,21 @@ + + + + fixtures/keyresolvercoretest/private-keys-v1.d/F769B16A6206E8F17D0AFB99EDB44BE813943A2C.key + fixtures/keyresolvercoretest/private-keys-v1.d/07E5EE9F946A1760EC7E3DEC3E8665415BF8E5F0.key + fixtures/keyresolvercoretest/private-keys-v1.d/A4E6D1CEBA63087E47B84863BF16D8E81F0B7629.key + fixtures/keyresolvercoretest/private-keys-v1.d/93FBC8415935DD866AEAE179D70A58B1BEE7EA85.key + fixtures/keyresolvercoretest/private-keys-v1.d/B9E7A40AA2CE1512A3270374D05AB0A74F98E54E.key + fixtures/keyresolvercoretest/private-keys-v1.d/9A54238A5B7D396D48A584255A1DE5622FBF8B99.key + fixtures/keyresolvercoretest/private-keys-v1.d/029551BEA335EC0F84109F1EDD23E0FA44FEB336.key + fixtures/keyresolvercoretest/private-keys-v1.d/4205C2F4EC7F5C7FBD175C5025A74E374E768B17.key + fixtures/keyresolvercoretest/private-keys-v1.d/B185B49FC722A9C92F8C2C30438BA225363F0A6B.key + fixtures/keyresolvercoretest/private-keys-v1.d/8CD2635EB4B7766E0C174E62853FCE072795D304.key + fixtures/keyresolvercoretest/private-keys-v1.d/0B767151C33FEE7708F7035860A4D2025C801000.key + fixtures/keyresolvercoretest/private-keys-v1.d/068B3A87EB6029DC958371D42A8CF22913F792BA.key + fixtures/keyresolvercoretest/private-keys-v1.d/2B38646AEC0F0D6AE2EEF714963722C0E58BF95F.key + fixtures/keyresolvercoretest/pubring.kbx + fixtures/keyresolvercoretest/trustdb.gpg + fixtures/keyresolvercoretest/trustlist.txt + + diff --git a/autotests/keyresolvertest.qrc b/autotests/keyresolvertest.qrc deleted file mode 100644 index 6a09bebdd..000000000 --- a/autotests/keyresolvertest.qrc +++ /dev/null @@ -1,21 +0,0 @@ - - - - fixtures/keyresolvertest/private-keys-v1.d/F769B16A6206E8F17D0AFB99EDB44BE813943A2C.key - fixtures/keyresolvertest/private-keys-v1.d/07E5EE9F946A1760EC7E3DEC3E8665415BF8E5F0.key - fixtures/keyresolvertest/private-keys-v1.d/A4E6D1CEBA63087E47B84863BF16D8E81F0B7629.key - fixtures/keyresolvertest/private-keys-v1.d/93FBC8415935DD866AEAE179D70A58B1BEE7EA85.key - fixtures/keyresolvertest/private-keys-v1.d/B9E7A40AA2CE1512A3270374D05AB0A74F98E54E.key - fixtures/keyresolvertest/private-keys-v1.d/9A54238A5B7D396D48A584255A1DE5622FBF8B99.key - fixtures/keyresolvertest/private-keys-v1.d/029551BEA335EC0F84109F1EDD23E0FA44FEB336.key - fixtures/keyresolvertest/private-keys-v1.d/4205C2F4EC7F5C7FBD175C5025A74E374E768B17.key - fixtures/keyresolvertest/private-keys-v1.d/B185B49FC722A9C92F8C2C30438BA225363F0A6B.key - fixtures/keyresolvertest/private-keys-v1.d/8CD2635EB4B7766E0C174E62853FCE072795D304.key - fixtures/keyresolvertest/private-keys-v1.d/0B767151C33FEE7708F7035860A4D2025C801000.key - fixtures/keyresolvertest/private-keys-v1.d/068B3A87EB6029DC958371D42A8CF22913F792BA.key - fixtures/keyresolvertest/private-keys-v1.d/2B38646AEC0F0D6AE2EEF714963722C0E58BF95F.key - fixtures/keyresolvertest/pubring.kbx - fixtures/keyresolvertest/trustdb.gpg - fixtures/keyresolvertest/trustlist.txt - -