aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-12-15qt: Allow specifying an import filter when importing keysIngo Klöcker4-8/+79
* lang/qt/src/importjob.cpp (struct ImportJobPrivate): Add member m_importFilter. * lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (class ImportJob): Add member functions setImportFilter and importFilter. * lang/qt/src/qgpgmeimportjob.cpp (import_qba): Add arg importFilter and adjust the callers. Set import filter context flag. * lang/qt/tests/t-import.cpp (ImportTest): Add member function testImportWithImportFilter. -- GnuPG-bug-id: 5739
2021-12-15qt: Avoid test failure when test is run multiple timesIngo Klöcker1-16/+26
* lang/qt/tests/t-import.cpp (ImportTest): Add member tempGpgHome and member function initTestCase. (keyFpr, keyData): Move to ImportTest::testImportWithKeyOrigin. -- Use different temporary GNUPGHOME's when running the test. This ensures that the import in the test is always done with a new keyring. GnuPG-bug-id: 5733
2021-12-15qt: Fix erroneous reuse of JobPrivate objectsIngo Klöcker1-0/+1
* lang/qt/src/job.cpp (Job::~Job): Destroy JobPrivate object belonging to destroyed job. -- In some tests different Job objects reused the same JobPrivate object because they were created with the same memory address. Obviously, this shouldn't happen. GnuPG-bug-id: 5739
2021-12-14qt: Add pattern used for WKD lookup to resultIngo Klöcker4-12/+23
* lang/qt/src/qgpgmewkdlookupjob.cpp (run_wkd_get): Change type of arg email. (lookup_keys): Add pattern to result. * lang/qt/src/wkdlookupresult.h (class WKDLookupResult): Add arg pattern to c'tors. Add member function pattern. * lang/qt/src/wkdlookupresult.cpp (class WKDLookupResult::Private): Add field pattern. (WKDLookupResult::WKDLookupResult): Pass pattern to pimpl. (WKDLookupResult::pattern): New. * lang/qt/tests/t-wkdlookup.cpp (testWKDLookupAsync, testWKDLookupSync, testLookupWithNoResultAsync): Check pattern. -- GnuPG-bug-id: 5728
2021-12-14qt: Allow setting key origin when importing keysIngo Klöcker6-9/+229
* lang/qt/src/Makefile.am (qgpgme_sources): Add importjob.cpp. * lang/qt/src/importjob.cpp: New. * lang/qt/src/importjob.h (class ImportJob): Add member functions setKeyOrigin, keyOrigin, keyOriginUrl. * lang/qt/src/qgpgmeimportjob.cpp (originToString): New. (import_qba): Set key origin context flag. (QGpgMEImportJob::start, QGpgMEImportJob::exec): Add options to call of import_qba. * lang/qt/tests/Makefile.am (the_tests, moc_files, noinst_PROGRAMS): Add new test. (t_import_SOURCES): New. * lang/qt/tests/t-import.cpp: New. -- GnuPG-bug-id: 5733
2021-12-14qt,tests: Skip WKD lookup tests by defaultIngo Klöcker3-2/+17
* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.h (class QGpgMETest): Add member function doOnlineTests. * lang/qt/tests/t-wkdlookup.cpp (testWKDLookupAsync, testWKDLookupSync, testLookupWithNoResultAsync): Skip tests if online tests are not enabled. -- GnuPG-bug-id: 5728
2021-12-13qt: Support WKD lookup without implicit importIngo Klöcker13-8/+727
* lang/qt/src/Makefile.am (qgpgme_sources): Add qgpgmewkdlookupjob.cpp, wkdlookupresult.cpp. (qgpgme_headers): Add wkdlookupjob.h, wkdlookupresult.h. (camelcase_headers): Add WKDLookupJob, WKDLookupResult. (private_qgpgme_headers): Add qgpgmewkdlookupjob.h. (qgpgme_moc_sources): Add qgpgmewkdlookupjob.moc, wkdlookupjob.moc. * lang/qt/src/job.cpp: Define c'tor and d'tor of WKDLookupJob. * lang/qt/src/protocol.h (Protocol::wkdLookupJob): New. * lang/qt/src/protocol_p.h (Protocol::wkdLookupJob): New. * lang/qt/src/qgpgmewkdlookupjob.cpp, lang/qt/src/qgpgmewkdlookupjob.h, lang/qt/src/wkdlookupjob.h, lang/qt/src/wkdlookupresult.cpp, lang/qt/src/wkdlookupresult.h: New. * lang/qt/tests/Makefile.am (EXTRA_DIST): Add final.test. (the_tests): New. (TESTS): Remove all t-*. Add $(the_tests) and final.test. (moc_files): Add t-wkdlookup.moc. (t_wkdlookup_SOURCES): New. (noinst_PROGRAMS): Add t-wkdlookup. * lang/qt/tests/final.test: New. * lang/qt/tests/t-support.h (QTest::toString): New template specialization for std::string. * lang/qt/tests/t-wkdlookup.cpp: New. -- The new WKDLookupJob allows running a WKD lookup without implicit import of the retrieved key. This makes it possible to do WKD lookups similar to keyserver lookups (aka external keylistings). The new final.test pseudo test stops a dirmngr that may have been started by the tests. The toString() template specialization enables printing of the actual and expected values in case of failed QCOMPARE. GnuPG-bug-id: 5728
2021-12-13qt: Fix example for using the asynchronous job APIIngo Klöcker1-0/+1
* lang/qt/src/protocol.h (class Protocol): Fix API documentation. --
2021-09-13qt: Fix build against Qt 5.9Ingo Klöcker2-3/+3
* lang/qt/tests/t-keylist.cpp (KeyListTest::testListAllKeysSync): Ensure same type for both arguments of QCOMPARE. * lang/qt/tests/t-various.cpp (TestVarious::testSetExpire): Ensure same type for both arguments of QCOMPARE. -- Qt 5.9 does not yet have the generic qCompare helper which supports arguments of any type that can be compared with ==. GnuPG-bug-id: 5592
2021-08-27qt: Expect UTF-8 on stderr on WindowsAndre Heinecke1-44/+1
* lang/qt/src/threadedjobmixin.cpp (stringFromGpgOutput): Expect UTF-8. -- In recent versions more and more output was changed to be UTF-8 on Windows. Werner advised to always expect UTF-8 diagnostics.
2021-08-27Add missing files for distributionAndre Heinecke1-0/+1
* lang/qt/src/Makefile.am (private_qgpgme_headers): Add job_p.h * tests/gpg/Makefile.am (EXTRA_DIST): Add gpg.conf.in
2021-07-08Make sure expiration time is interpreted as unsigned numberIngo Klöcker1-1/+1
* lang/qt/tests/t-various.cpp (testSignKeyWithExpiration): Convert expiration time to uint_least32_t. -- This fixes the test on 32-bit systems where time_t (the return type of expirationTime()) is a signed 32-bit integer type. GnuPG-bug-id: 5522
2021-06-29qt: Allow retrieving the default value of a config entryIngo Klöcker5-11/+77
* lang/qt/src/cryptoconfig.cpp, lang/qt/src/cryptoconfig.h (CryptoConfigEntry::defaultValue): New. * lang/qt/src/qgpgmenewcryptoconfig.cpp, lang/qt/src/qgpgmenewcryptoconfig.h (QGpgMENewCryptoConfigEntry::defaultValue): New. * lang/qt/tests/t-config.cpp (CryptoConfigTest::testDefault()): Add test of CryptoConfigEntry::defaultValue(). Port away from deprecated CryptoConfig::entry overload. -- GnuPG-bug-id: 5515
2021-06-28qt: Fix filenames in copyright headersIngo Klöcker2-2/+2
* lang/qt/src/qgpgmechangeownertrustjob.h, lang/qt/tests/t-trustsignatures.cpp: Use correct filenames.
2021-06-28qt: Add test for ChangeExpiryJobIngo Klöcker2-3/+430
* lang/qt/tests/Makefile.am (TESTS, moc_files, noinst_PROGRAMS): Add new test. (t_changeexpiryjob_SOURCES): New. * lang/qt/tests/t-changeexpiryjob.cpp: New. -- GnuPG-bug-id: 4717
2021-06-28qt: Allow changing expiration date of primary key and all subkeysIngo Klöcker4-10/+113
* lang/qt/src/Makefile.am (qgpgme_sources): Add changeexpiryjob.cpp. * lang/qt/src/changeexpiryjob.cpp: New. * lang/qt/src/changeexpiryjob.h (enum ChangeExpiryJob::Option, typedef ChangeExpiryJob::Options, ChangeExpiryJob::setOptions, ChangeExpiryJob::options): New. * lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Update the expiration date of primary key and/or some/all subkeys. (QGpgMEChangeExpiryJob::start): Add options to call of change_expiry. (ChangeExpiryJob::start): Moved implementation to changeexpiryjob.cpp. -- Additionally, to the default behavior (update expiration of primary key if no subkeys are specified resp. update expiration of specified subkeys) it is now possible to update the expiration of the primary key _and_ the specified/all subkeys. GnuPG-bug-id: 4717
2021-06-28qt: Add mechanism for missing d-pointer in JobIngo Klöcker2-0/+92
* lang/qt/src/job_p.h: New. * lang/qt/src/job.cpp (typedef JobPrivateHash, d_func, setJobPrivate, getJobPrivate): New. -- Because of ABI compatibility requirements we cannot add a d-pointer to Job. Therefore we store the d-pointers in a global static. This mechanism will allow Job subclasses to store additional data without breaking the ABI. GnuPG-bug-id: 4717
2021-06-26qt: Remove superfluous trailing ';'Ingo Klöcker1-3/+3
lang/qt/src/signkeyjob.h (class SignKeyJob): Remove trailing ';' from inline implemented member functions
2021-06-24python: Do not include the full file names in the docs.Werner Koch1-1/+1
-- GnuPG-bug-id: 5299
2021-06-22qt: Extend SignKeyJob to create signatures with expiration dateIngo Klöcker4-3/+181
* lang/qt/src/signkeyjob.h (SignKeyJob::setExpirationDate): New. * lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::setExpirationDate): New. * lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::Private): Add member m_expiration. (sign_key): Handle expiration date. (QGpgMESignKeyJob::start): Pass expiration date to sign_key. * lang/qt/tests/t-various.cpp (TestVarious::testSignKeyWithoutExpiration, TestVarious::testSignKeyWithExpiration): New. (TestVarious::initTestCase): Add "allow-weak-key-signatures" to gpg.conf. -- This allows Kleopatra (and other users of QGpgme) to create key signatures with expiration date. GnuPG-bug-id: 5336, 5506
2021-06-18qt: Add missing }Ingo Klöcker1-0/+1
* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Add missing }. -- Fixes-commit: 1dca8c2b3c6d6aa3dfd4215c911207f08a3bf9f1 GnuPG-bug-id: 5465
2021-06-17qt: Add some error loggingIngo Klöcker1-2/+5
* lang/qt/src/qgpgmenewcryptoconfig.cpp (setURLValueList): Log error if setting config value failed. -- GnuPG-bug-id: 5465
2021-06-17qt: Do not set empty base DN as query of keyserver URLIngo Klöcker1-1/+3
* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Only set non-empty base DN as URL query. -- This makes it possible to differentiate an unset query from an empty query. GnuPG-bug-id: 5465
2021-06-17qt: Fix API documentationIngo Klöcker1-5/+2
* lang/qt/src/signkeyjob.h (SignKeyJob::start, SignKeyJob::setUserIDsToSign, SignKeyJob::setCheckLevel): Fix documentation of parameters. -- GnuPG-bug-id: 5245
2021-06-10qt: Flush output after write for QProcess outputAndre Heinecke1-1/+11
* lang/qt/src/dataprovider.cpp (QIODeviceDataProvider::write): Call waitForBytesWritten. -- The problem here is that QProcess writes into an internal buffer which is written to stdin of the process triggered by a signal/slot connection. That connection is broken when we move the QProcess into our GPGME thread and only restablished when our Job is finished. This caused Kleopatra to basically keep everything when decrypting a large archive in memory and only write it out to the unpack process once the decryption was finished. GnuPG-Bug-Id: T5475
2021-06-09qt: Explicitly link libgpg-errorAndre Heinecke1-1/+1
* lang/qt/src/Makefile.am (libqgpgme_la_LIBADD): Explicitly link gpg-error. -- Previously this was implicit from the libassuan flags.
2021-06-02qt: Add separate logging category for result of config loadingIngo Klöcker3-7/+6
* lang/qt/src/qgpgme_debug.h: Make include guard match file name. * lang/qt/src/qgpgme_debug.h, lang/qt/src/qgpgme_debug.cpp (QGPGME_CONFIG_LOADING_LOG): New. * lang/qt/src/qgpgmenewcryptoconfig.cpp (QGpgMENewCryptoConfig::reloadConfiguration): Use new logging category. -- Use a separate logging category for the extremely noisy logging of the result of config loading to make debug logging more useful. GnuPG-bug-id: 5217
2021-06-01qt: Add support for flags in LDAP server optionsIngo Klöcker1-27/+48
* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Handle extended LDAP server option syntax. (portToString): New. (splitURL): Append flags to LDAP server option. -- This adds support for the extended syntax of LDAP server options introduced in gpg 2.2.18/2.3. The flags are stored as fragment of a QUrl. GnuPG-bug-id: 5217
2021-05-05qt: Extend SignKeyJob to create trust signaturesIngo Klöcker5-5/+629
* lang/qt/src/signkeyjob.h (SignKeyJob::setTrustSignature): New. * lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::setTrustSignature): New. * lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Handle trust signatures. (QGpgMESignKeyJob::start): Pass trust signature attributes to sign_key. (QGpgMESignKeyJob::setTrustSignature): New. -- This allows Kleopatra to create trust signatures for trusted introducers. GnuPG-bug-id: 5245, 5421
2021-05-05qt: Pimpl QGpgMESignKeyJobIngo Klöcker2-43/+41
* lang/qt/src/qgpgmesignkeyjob.h: Remove unneeded includes. Include <memory>. (QGpgMESignKeyJob): Remove all member variables. Add pimpl pointer. * lang/qt/src/qgpgmesignkeyjob.cpp: Include <QString>. Don't include <memory>. (QGpgMESignKeyJob::Private): New. (QGpgMESignKeyJob::QGpgMESignKeyJob): Remove initialization of removed members. Initialize d. (QGpgMESignKeyJob::start, QGpgMESignKeyJob::setUserIDsToSign, QGpgMESignKeyJob::setCheckLevel, QGpgMESignKeyJob::setExportable, QGpgMESignKeyJob::setSigningKey, QGpgMESignKeyJob::setNonRevocable, QGpgMESignKeyJob::setRemark, QGpgMESignKeyJob::setDupeOk): Adapt to move of member variables to pimpl. -- GnuPG-bug-id: 5245, 5421
2021-03-05qt: Add method for getting config entries for components by entry nameIngo Klöcker2-7/+35
* lang/qt/src/cryptoconfig.h, lang/qt/src/cryptoconfig.cpp (CryptoConfig::entry): Move implementation to cpp. Add overload not requiring a group name. -- The group name is not needed for identifying a config entry because the groups only provide a logical grouping of config entry for user interfaces. To improve usability entries are sometimes moved to a different group, but this shouldn't break existing applications trying to access those entries. The new group-agnostic overload makes applications robust against regrouping of config entries. GnuPG-bug-id: 5217
2021-01-04Qt: Undeprecate QByteArray based start functsAndre Heinecke2-2/+2
* lang/qt/src/encryptjob.h, lang/qt/src/signjob.h (start): Undeprecate QByteArray based functions. -- While the QIODevice access might avoid a copy it is more difficult to manage the data and lifetime of the QIODevices in calling code. The QByteArray calls are convienient for small data objects like mails where an in memory copy is not really expensive anymore.
2020-11-20Revert "cpp: Use portable off_t size_t"Andre Heinecke2-2/+2
This reverts commit 88294023c196497cfa6737be262c8b0c09d2a3ce. -- This commit was too early and i needed to test more this is breaking more then it helps so for now revert it before we can do a proper solution.
2020-11-18cpp: Use portable off_t size_tAndre Heinecke2-2/+2
* configure.ac: Configure cpp data.h.in * lang/cpp/src/Makefile.am: Generate data.h * lang/cpp/src/data.cpp, lang/cpp/src/data.h: Use portable types. * lang/qt/src/Makefile.am: Include build dir. * lang/qt/tests/makefile.am: Include build dir. -- These kind of patches have been around for a while, IMO this should not create an ABI incompatbility for cases where it already works because the types should be the same so I think this is not an interface break. GnuPG-Bug-Id: T3996
2020-11-18qt: Avoid empty "[email protected]" signature notationsIngo Klöcker1-1/+1
* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Check remark for being an empty string instead of a null QString. -- GnuPG-bug-id: 5142 Co-authored-by: Daniel Kahn Gillmor
2020-11-12qt: Fix export of qDebug GpgME::Error overloadAndre Heinecke1-0/+1
* lang/qt/src/debug.cpp: Include debug.h to get the export decl.
2020-11-11qt: Add export macro for QDebug operatorAndre Heinecke1-1/+3
* lang/qt/src/debug.h: Add export macro. -- This is public API so it should be exported. This did not resolve a link issue for Windows that I've experienced when building. But this might be to some uncleanlyness in my build environment.
2020-11-11qt: Allow build with older GnuPG (< 2.2.18).NIIBE Yutaka1-1/+4
* lang/qt/tests/t-remarks.cpp (initTestCase): Check gpg for allow-weak-key-signatures option. Signed-off-by: NIIBE Yutaka <[email protected]>
2020-11-03qt: Make audit parameters of result signal optionalIngo Klöcker1-1/+1
lang/qt/src/quickjob.h (QuickJob::result): Make parameters auditLogAsHtml and audigLogError optional. -- This aligns the signature of QuickJob's result signal with the result signals of the other Job subclasses. GnuPG-bug-id: 5094
2020-10-29qt: Add support for revoke signature quick commandIngo Klöcker3-2/+38
* lang/qt/src/quickjob.h (QuickJob::startRevokeSignature): New. * lang/qt/src/qgpgmequickjob.h, lang/qt/src/qgpgmequickjob.cpp (QGpgMEQuickJob::startRevokeSignature): New. * lang/qt/src/qgpgmequickjob.cpp (revokeSignatureWorker): New. -- GnuPG-bug-id: 5094
2020-10-29qt: Some minor cleanupsIngo Klöcker1-13/+3
* lang/qt/src/qgpgmequickjob.h: (GpgME::Key, QDateTime, QString): Remove superfluous forward declarations. (QGpgMEQuickJob): Remove superfluous second template argument. It is identical to the default. (QGpgMEQuickJob::result): Remove. It is already defined in the base class.
2020-10-23qt: Add QDebug stream operator for GpgME::ErrorIngo Klöcker3-1/+99
* lang/qt/src/Makefile.am: Add new files. * lang/qt/src/debug.h, lang/qt/src/debug.cpp: New. * NEWS: Mention it. -- This was previously implemented in Kleopatra, but it makes sense for all users of qgpgme.
2020-10-23cpp, qt: Add missing comparison operators for version info comparisonIngo Klöcker1-0/+32
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<=, EngineInfo::Version::operator>=, EngineInfo::Version::operator!=): New. * lang/qt/tests/t-various.cpp (TestVarious::testVersion): Add tests for new comparison operators. * NEWS: Mention added API
2020-10-23cpp, qt: Fix version info comparisonIngo Klöcker1-0/+1
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator>(const Version &)): Fix logic. (EngineInfo::Version::operator>(const char *)): Use Version-overload of operator>. * lang/qt/tests/t-various.cpp: Add test. -- This fixes a logic error that 2.0.0 > 2.0.0 would return true.
2020-09-08qt: Update the documentation of ListAllKeysJobIngo Klöcker1-2/+3
* lang/qt/src/listallkeysjob.h (ListAllKeysJob::start): Document that the mergeKeys argument is ignored with gpg >= 2.1. -- GnuPG-bug-id: 4794
2020-09-07qt: List keys once with --with-secret instead of twiceIngo Klöcker2-9/+116
* lang/qt/src/qgpgmelistallkeysjob.cpp (do_list_keys): Rename to do_list_keys_legacy and put into unnamed namespace. (merge_keys): Put into unnamed namespace. (list_keys): Rename to list_keys_legacy and put into unnamed namespace. (do_list_keys, list_keys): New. * lang/qt/tests/t-keylist.cpp (testListAllKeysSync): New. -- With gpg >= 2.1, list keys once with --with-secret instead of listing public keys and secret keys and then merging (part of) the information about the keys. GnuPG-bug-id: 4794
2020-08-28qt: Fix an rfc2253 parser flawWerner Koch1-3/+2
* lang/qt/src/dn.cpp (parse_dn_part): Fix parser. -- This could in theory result in reading bytes after a after Nul in a string and thus possible segv on unallocated memory or reading other parts of the memory. However, it is harmless because the rfc2253 strings have been received from GnuPG which is expected to emit correct syntax. GnuPG-bug-id: 5037
2020-08-14core: Add error handling to setexpireIngo Klöcker1-0/+9
* src/genkey.c (setexpire, gpgme_op_setexpire_start, gpgme_op_setexpire): Move to ... * src/setexpire.c: New. * src/Makefile.am (main_sources): Add that file. * src/context.h (ctx_op_data_id_t): Add OPDATA_SETEXPIRE. * lang/qt/tests/t-various.cpp (testSetExpire): Test error handling. -- Errors (and failures) emitted via status-fd need to be handled explicitly, i.e. we need to provide an appropriate status handler with corresponding op_data_t. Additionally, we need to set a passphrase command handler if a passphrase callback is set in the context, e.g. during tests. GnuPG-bug-id: 4395
2020-08-11qt: Support changing expiry of subkeysIngo Klöcker3-4/+39
* lang/qt/src/changeexpiryjob.h (ChangeExpiryJob::start): New overload that accepts subkeys (with empty implementation). * lang/qt/src/qgpgmechangeexpiryjob.h, lang/qt/src/qgpgmechangeexpiryjob.cpp (QGpgMEChangeExpiryJob::start): New overload that accepts subkeys. -- This adds the possibility to change the expiry of subkeys. GnuPG-bug-id: 4717
2020-08-05qt: Port to new setExpire()Ingo Klöcker1-18/+6
* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Use new setExpire() instead of edit() with GpgSetExpiryTimeEditInteractor -- Using the new setExpire() (which uses --quick-set-expire) is a lot less complex than using gpg's edit interface. It also feels faster. Next, I'll add support for changing the expiration time of subkeys. GnuPG-bug-id: 5003