aboutsummaryrefslogtreecommitdiffstats
path: root/lang (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* qt,tests: Make test pass on 32-bit systemsIngo Klöcker2022-08-181-18/+24
| | | | | | | | | | | | | * lang/qt/tests/t-addexistingsubkey.cpp (AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Handle negative expiration date. -- On 32-bit systems the expiration date of the test key overflows. This will cause the AddExistingSubkeyJob to fail. We expect it to fail with an "invalid time" error. GnuPG-bug-id: 6137
* cpp: Fix handling of "no key" or "invalid time" situationsIngo Klöcker2022-08-181-2/+2
| | | | | | | | | | | | * lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp (GpgAddExistingSubkeyEditInteractor::Private::nextState): Fix inverted logic of string comparisons. -- This fixes the problem that the interactor didn't return the proper error code if gpg didn't accept the key grip or the expiration date. GnuPG-bug-id: 6137
* qt,tests: Make sure expiration time is interpreted as unsigned numberIngo Klöcker2022-08-172-16/+16
| | | | | | | | | | | | | | * lang/qt/tests/t-addexistingsubkey.cpp, lang/qt/tests/t-changeexpiryjob.cpp: Convert expiration time to uint_least32_t. -- This doesn't change the outcome of the tests (they also pass without this change because of the expiration dates of the test keys), but it's still good practise to treat the expiration time as an unsigned number if the assertions check that the expiration time is in some range. GnuPG-bug-id: 6137
* qt,tests: Log the actual error code if the assertion failsIngo Klöcker2022-08-171-3/+3
| | | | | | | | | | | * lang/qt/tests/t-addexistingsubkey.cpp ( AddExistingSubkeyJobTest::testAddExistingSubkeyAsync, AddExistingSubkeyJobTest::testAddExistingSubkeySync, AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Use QCOMPARE instead of QVERIFY for asserting equality. -- GnuPG-bug-id: 6137
* qt: Make sure expiration time is interpreted as unsigned numberIngo Klöcker2022-08-171-1/+2
| | | | | | | | | | | * lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp (add_subkey): Convert expiration time to uint_least32_t. -- This fixes the corresponding test on 32-bit systems where time_t (the return type of expirationTime()) is a signed 32-bit integer type. GnuPG-bug-id: 6137
* Qt: Fix working with no gpgconf in CryptoConfigAndre Heinecke2022-08-111-3/+4
| | | | | | | | | | | * lang/qt/src/cryptoconfig.cpp (CryptoConfig::entry): Add nullptr checks. -- This fixes a crash when gpgconf is not found. When every return value is NULL. GnuPG-Bug-Id: T6131
* qt: Add missing includeIngo Klöcker2022-08-101-0/+1
| | | | | | | | * lang/qt/tests/t-revokekey.cpp: Include QDebug. -- Doesn't seem to matter with Qt 5.15.5, but seems to be needed for older versions of Qt.
* qt: Add job to set the primary user ID of OpenPGP keysIngo Klöcker2022-08-099-2/+407
| | | | | | | | | | | | | | | | * lang/qt/src/qgpgmesetprimaryuseridjob.cpp, lang/qt/src/qgpgmesetprimaryuseridjob.h, lang/qt/src/setprimaryuseridjob.h: New. * lang/qt/src/protocol.h (class Protocol): Add pure virtual member function setPrimaryUserIDJob. * lang/qt/src/protocol_p.h (Protocol::setPrimaryUserIDJob): New. * lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly. * lang/qt/tests/t-setprimaryuserid.cpp: New. * lang/qt/tests/Makefile.am: Add new test. -- GnuPG-bug-id: 5938
* cpp: Add support for gpgme_op_set_uid_flagIngo Klöcker2022-08-092-0/+13
| | | | | | | | * lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::setPrimaryUid, Context::startSetPrimaryUid): New. -- GnuPG-bug-id: 5938
* python: Don't call __del__ from __exit__ method.NIIBE Yutaka2022-08-092-2/+5
| | | | | | | | | | | * lang/python/src/core.py (Context, Data): Don't call __del__ from __exit__ method, as the object may be still in use. * lang/python/tests/t-idiomatic.py: Fix the test. -- GnuPG-bug-id: 6060 Signed-off-by: NIIBE Yutaka <[email protected]>
* python: Don't access gpgme with wrapped=None.NIIBE Yutaka2022-08-051-0/+12
| | | | | | | | | | * lang/python/src/core.py (GpgmeWrapper, Context): Check self.wrapped is valid. -- GnuPG-bug-id: 6060 Signed-off-by: NIIBE Yutaka <[email protected]>
* python: Reset passphrase callback correctly.Jasper Spaans2022-08-051-8/+4
| | | | | | | | | | * lang/python/src/core.py (Context(GpgmeWrapper)): Reset passphrase callback correctly, for encrypt, decrypt, create_key, and create_subkey methods. -- Signed-off-by: Jasper Spaans <[email protected]>
* qt: Remove job for refreshing OpenPGP keysIngo Klöcker2022-08-048-303/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp, lang/qt/src/qgpgmerefreshopenpgpkeysjob.h, lang/qt/src/refreshopenpgpkeysjob.h: Remove. * lang/qt/src/Makefile.am, lang/qt/src/job.cpp: Update accordingly. * lang/qt/src/protocol.h (class Protocol): Remove pure virtual member function refreshOpenPGPKeysJob. * lang/qt/src/protocol_p.h (Protocol::refreshOpenPGPKeysJob): Remove. * lang/qt/tests/run-refreshkeysjob.cpp (main): Use ReceiveKeysJob for OpenPGP keys. -- The RefreshOpenPGPKeysJob did more than it was intended to do, e.g. it imported new keys with the email addresses of the key to be refreshed via the configured auto-key-locate methods, but only a refresh from the key servers is wanted. For this we can use the ReceiveKeysJob. This commit mostly reverts the commits e12861f18c6b431b40bfa78eb6f1d149690a5fcd c64a8daf507a2216611861a12f312466b0bae8b2 The changes are source- and binary-compatible to the last release. GnuPG-bug-id: 5951
* qt: Allow setting the file name of signed and encrypted dataIngo Klöcker2022-07-054-8/+82
| | | | | | | | | | | | | | | | | | * lang/qt/src/Makefile.am (qgpgme_sources): Add signencryptjob.cpp. * lang/qt/src/signencryptjob.cpp: New. * lang/qt/src/signencryptjob.h (class SignEncryptJob): Add member functions setFileName, fileName. * lang/qt/src/qgpgmesignencryptjob.cpp (sign_encrypt): Set file name of input. (sign_encrypt_qba, QGpgMESignEncryptJob::exec, QGpgMESignEncryptJob::start): Pass file name to sign_encrypt resp. sign_encrypt_qba. -- This makes it possible to store the original name of a signed and encrypted file in the resulting data. GnuPG-bug-id: 6056
* qt: Allow setting the file name of encrypted dataIngo Klöcker2022-07-054-9/+84
| | | | | | | | | | | | | | | | * lang/qt/src/Makefile.am (qgpgme_sources): Add encryptjob.cpp. * lang/qt/src/encryptjob.cpp: New. * lang/qt/src/encryptjob.h (class EncryptJob): Add member functions setFileName, fileName. * lang/qt/src/qgpgmeencryptjob.cpp (encrypt): Set file name of input. (encrypt_qba, QGpgMEEncryptJob::exec, QGpgMEEncryptJob::start): Pass file name to encrypt resp. encrypt_qba. -- This makes it possible to store the original name of an encrypted file in the encryption result. GnuPG-bug-id: 6056
* qt: Fix filename of cmake config files for w32Ingo Klöcker2022-07-041-1/+1
| | | | | | * lang/qt/src/Makefile.am (EXTRA_DIST): Add QGpgmeConfig-w32.cmake.in.in. --
* qt: Add #include <QStringList> needed for building against qt6Laurent Montel2022-07-044-7/+6
| | | | | | | | | | | * lang/qt/src/downloadjob.h, lang/qt/src/exportjob.h, lang/qt/src/keylistjob.h lang/qt/src/refreshkeysjob.h: in qt6 we need to use #include <QStringList> -- It fixes some compile qt6 compile error. Signed-off-by: Laurent Montel <[email protected]>
* cpp: Remove obsolete compatibility with KF5 variantsIngo Klöcker2022-06-302-8/+0
| | | | | | | | | * lang/cpp/src/GpgmeppConfig-w32.cmake.in.in, lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove find_package() call. -- The KF5 variants have been removed years ago with revision a3cf30f89418c8a6bc9456533d95ba7fc2a33a4c.
* qt,tests: Allow 1-day-offset for expiration dateIngo Klöcker2022-06-101-1/+9
| | | | | | | | | | | | * lang/qt/tests/t-various.cpp (TestVarious::testSignKeyWithExpiration): Assert that the expiration date is either 2106-02-05 or 2106-02-04. -- This avoids a test failure if the test is run at 00:xx:xx in a location that uses DST. GnuPG-bug-id: 5991
* qt: Prevent u32 overflow when calculating expiration dateIngo Klöcker2022-06-103-7/+5
| | | | | | | | | | | | | * lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Change maxAllowedDate to 2106-02-05. Change log-level from warning to debug. * lang/qt/tests/t-various.cpp (TestVarious::testSignKeyWithExpiration): Remove check for warning. Adapt assertion. -- Capping the expiration date at 2106-02-05 prevents a u32 overflow when adding the number of days until the maximal date to the current time. GnuPG-bug-id: 5991
* Revert "tests: Avoid problems with local time across a day boundary."Ingo Klöcker2022-06-091-1/+1
| | | | This reverts commit 5ba0e454a37c9b0d3badddfc2dad8bcc7c7af874.
* tests: Avoid problems with local time across a day boundary.Werner Koch2022-05-231-1/+1
| | | | | | -- GnuPG-bug-id: 5991
* cpp: Export KeyListModeSaverAndre Heinecke2022-05-121-1/+1
| | | | | | | * lang/cpp/src/context.h (Context::KeyListModeSaver): Add Export. -- This is required for Windows.
* cpp: Output more properties of a subkeyIngo Klöcker2022-05-051-3/+9
| | | | | | | | | | | | * lang/cpp/src/key.cpp (ostream operator<< for Subkey): Fix wrong output of isInvalid and isDisabled flags. Add output of key grip, card serial number and the flags isSecret, isQualified, isDeVs, and isCardKey. -- This makes it easier to check those properties for different keys, e.g. with the run-keylist test program. GnuPG-bug-id: 5965
* cpp,tests: Actually parse the --with-secret optionIngo Klöcker2022-05-051-0/+4
| | | | | | | | | | | * lang/cpp/tests/run-keylist.cpp (main): Handle --with-secret option. Print error for unknown option. -- The --with-secret option was already listed in the help. Now it also works. GnuPG-bug-id: 5965
* qt: Revert change of result signal of RefreshKeysJobIngo Klöcker2022-05-052-2/+2
| | | | | | | | | | | | * lang/qt/src/refreshkeysjob.h (RefreshKeysJob::result): Remove optional parameters auditLogAsHtml and auditLogError. * lang/qt/tests/run-refreshkeysjob.cpp (main): Update accordingly. -- This reverts f4c35609257156d0e32b8dd7315011b484919f05. The reason for the previous change does no longer apply. GnuPG-bug-id: 5951
* qt: Use lambda instead of std::bindIngo Klöcker2022-05-051-1/+1
| | | | | | | | | * lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp (QGpgMERefreshOpenPGPKeysJob::start): Replace std::bind call with a lambda. -- GnuPG-bug-id: 5951
* qt: Emit import result when refreshing OpenPGP keysIngo Klöcker2022-05-048-43/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/refreshopenpgpkeysjob.h: New. * lang/qt/src/Makefile.am, lang/qt/src/job.cpp: Update accordingly. * lang/qt/src/qgpgmerefreshopenpgpkeysjob.h (class QGpgMERefreshOpenPGPKeysJob): Derive from RefreshOpenPGPKeysJob with result ImportResult. Remove unused start overload. * lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp (locate_external_keys): Ignore result of KeyListJob. Return import result. (receive_keys): Return import result. (refresh_keys): Merge the two import results and return the result. * lang/qt/src/protocol.h (class Protocol): Add pure virtual member function refreshOpenPGPKeysJob. * lang/qt/src/protocol_p.h (Protocol::refreshKeysJob): Return nullptr for OpenPGP protocol. (Protocol::refreshOpenPGPKeysJob): New. * lang/qt/tests/run-refreshkeysjob.cpp (main): Use appropriate job for the protocol of the key to refresh. -- This adds RefreshOpenPGPKeysJob complementing RefreshKeysJob (for S/MIME keys). Changing the result type of RefreshKeysJob would break the ABI. Therefore we have to introduce a new base class for the refresh job for OpenPGP. We derive this base class from AbstractImportJob because we want to return an import result. GnuPG-bug-id: 5951
* cpp: Allow retrieving import result of key listing with locate modeIngo Klöcker2022-05-042-3/+10
| | | | | | | | | | | | | * lang/cpp/src/context_p.h (enum Context::Private::Operation): Add value KeyListWithImport. * lang/cpp/src/context.cpp (Context::startKeyListing, Context::nextKey): Set lastop to KeyListWithImport if keylist mode includes Locate. -- Adding Import to lastop for keylist operations that perform a locate allows retrieving the import result with Context::importResult. GnuPG-bug-id: 5951
* cpp: Allow merging the results of two importsIngo Klöcker2022-05-042-0/+135
| | | | | | | | | | | | | | | * lang/cpp/src/importresult.h, lang/cpp/src/importresult.cpp (class ImportResult): Add member function mergeWith. -- This allows creating a consolidated result of several independent imports. If the import results to merge considered the same keys, then not all counts can be consolidated correctly, but the important numbers like the number of considered keys, the number of imported keys, the number of unchanged keys and the numbers of new user IDs, subkeys, signatures and revocations should be correct. GnuPG-bug-id: 5951
* qt: Apply compiler hintIngo Klöcker2022-05-021-1/+1
| | | | | | * lang/qt/tests/t-verify.cpp (VerifyTest::testSignatureKey): Use reference type to prevent copying. --
* qt: Use GpgME::Locate aliasIngo Klöcker2022-05-022-2/+2
| | | | | | | * lang/qt/src/protocol_p.h (Protocol::locateKeysJob): Use Locate alias instead of Extern|Local. * lang/qt/src/qgpgmekeyformailboxjob.cpp (do_work): Ditto. --
* qt: Add job for refreshing OpenPGP keysIngo Klöcker2022-05-025-4/+218
| | | | | | | | | | | | | | | | | * lang/qt/src/qgpgmerefreshopenpgpkeysjob.h, lang/qt/src/qgpgmerefreshopenpgpkeysjob.cpp: New. * lang/qt/src/Makefile.am: Add new files. * lang/qt/src/protocol_p.h (Protocol::refreshKeysJob): Add support for OpenPGP protocol. -- The new job performs a --locate-external-keys for the email addresses of all not revoked user IDs of the given keys, and it performs a --recv-keys for the fingerprints of the given keys. The former may import new keys from WKD or an LDAP server or via some other (hopefully trusted) auto-key-locate mechanism. GnuPG-bug-id: 5951
* cpp: Add RAII class for saving/restoring the key list modeIngo Klöcker2022-05-022-0/+24
| | | | | | | | | | | | * lang/cpp/src/context.h, lang/cpp/src/context.cpp (class Context): Add nested class KeyListModeSaver. -- This RAII-style class can be used to save the currently used key list mode in case it needs to be changed temporarily. On destruction, it will restore the key list mode that was active at construction time. GnuPG-bug-id: 5951
* qt: Add debug helper for Result classes with output stream operatorIngo Klöcker2022-05-021-0/+9
| | | | | | | * lang/qt/src/util.h (toLogString): New. -- GnuPG-bug-id: 5951
* qt: Factor out helper for getting the fingerprints of some keysIngo Klöcker2022-05-023-6/+23
| | | | | | | | * lang/qt/src/util.h, lang/qt/src/util.cpp (toFingerprints): New. * lang/qt/src/qgpgmerefreshsmimekeysjob.cpp: Use the helper. -- GnuPG-bug-id: 5951
* qt,doc: Fix some API documentationIngo Klöcker2022-05-024-27/+5
| | | | | | | -- Fix or remove API documentation that has been copied and pasted from other jobs.
* qt: Fix connection to readyReadStandardOutput signalIngo Klöcker2022-04-292-10/+6
| | | | | | | | | | | | | | | * lang/qt/src/qgpgmerefreshsmimekeysjob.h, lang/qt/src/qgpgmerefreshsmimekeysjob.cpp (QGpgMERefreshSMIMEKeysJob::slotStderr): Remove. * lang/qt/src/qgpgmerefreshsmimekeysjob.cpp (QGpgMERefreshSMIMEKeysJob::startAProcess): Handle readyReadStandardOutput and readyReadStandardError signals with lambdas. -- For now output stdout and stderr of gpgsm process as debug log. In particular, this "adds" the missing slot slotStdout. GnuPG-bug-id: 5951
* qt: Add test runner for refresh jobIngo Klöcker2022-04-292-1/+140
| | | | | | | | | * lang/qt/tests/run-refreshkeysjob.cpp: New. * lang/qt/tests/Makefile.am (run_refreshkeysjob_SOURCES): New. (noinst_PROGRAMS): Add new build artifact. -- GnuPG-bug-id: 5951
* qt: Make RefreshKeysJob result compatible with standard job resultIngo Klöcker2022-04-291-1/+1
| | | | | | | | | | * lang/qt/src/refreshkeysjob.h (RefreshKeysJob::result): Add optional parameters auditLogAsHtml and auditLogError. -- This is necessary for the OpenPGP-implementation of this job. GnuPG-bug-id: 5951
* qt: Allow refreshing a list of keysIngo Klöcker2022-04-293-7/+38
| | | | | | | | | | | | | | * lang/qt/src/refreshkeysjob.h (class RefreshKeysJob): Add pure virtual member function start taking a list of keys. * lang/qt/src/qgpgmerefreshsmimekeysjob.h, lang/qt/src/qgpgmerefreshsmimekeysjob.cpp (class QGpgMERefreshSMIMEKeysJob): Implement new member function. -- The new overload makes it easier to refresh some keys if one does already have Keys. GnuPG-bug-id: 5951
* qt: Minor refactoringIngo Klöcker2022-04-291-8/+10
| | | | | | | * lang/qt/src/qgpgmerefreshsmimekeysjob.cpp: Use namespace QGpgME. -- GnuPG-bug-id: 5951
* qt: Rename QGpgMERefreshKeysJob to QGpgMERefreshSMIMEKeysJobIngo Klöcker2022-04-294-24/+24
| | | | | | | | | | | | | | | | | | | * lang/qt/src/qgpgmerefreshkeysjob.h, lang/qt/src/qgpgmerefreshkeysjob.cpp: Change name to * lang/qt/src/qgpgmerefreshsmimekeysjob.h, lang/qt/src/qgpgmerefreshsmimekeysjob.cpp: ... this, and adapt the include guard. (class QGpgMERefreshKeysJob): Rename to QGpgMERefreshSMIMEKeysJob. * lang/qt/src/Makefile.am: Adapt mentioned file names accordingly. * lang/qt/src/protocol_p.h (Protocol::refreshKeysJob): Use renamed class. -- To avoid confusion with a similar job for OpenPGP keys with a completely different implementation, we rename this class to make clear that it is specific for S/MIME keys. GnuPG-bug-id: 5951
* cpp,tests: Verify that requested keylist mode is usedIngo Klöcker2022-04-282-0/+12
| | | | | | | | | | | | * lang/cpp/tests/run-getkey.cpp, lang/cpp/tests/run-keylist.cpp (main): Check used keylist mode. -- Since Context::setKeyListMode() does not return the error returned by gpgme, we need to verify explicitly that the keylist mode was set successfully. GnuPG-bug-id: 5951
* cpp: Support new keylist modesIngo Klöcker2022-04-275-13/+34
| | | | | | | | | | | | | | * lang/cpp/src/global.h (ForceExtern, LocateExternal, KeyListModeMask): New. * lang/cpp/src/context.cpp (operator<<): Add check. * lang/cpp/src/util.h (gpgme_keylist_mode_t, convert_from_gpgme_keylist_mode_t): Handle ForceExtern. * lang/cpp/tests/run-getkey.cpp (show_usage, main): Add arguments --force-extern and --locate-external. * lang/cpp/tests/run-keylist.cpp (show_usage, main): Ditto. -- GnuPG-bug-id: 5951
* qt: Rely on the bad passphrase error reported by gpgIngo Klöcker2022-04-251-17/+2
| | | | | | | | | | | * lang/qt/src/qgpgmedecryptverifyjob.cpp (patch_decryption_result): Removed. (decrypt_verify): Remove usage of patch_decryption_result. -- This reverts most of revision d8e5871dca9425811873058150677a158235613d. GnuPG-bug-id: 5939
* qt: Report better error if decryption failed because of bad passphraseIngo Klöcker2022-04-221-7/+20
| | | | | | | | | | | | * lang/qt/src/qgpgmedecryptverifyjob.cpp (patch_decryption_result): New. (decrypt_verify): Call patch_decryption_result. -- Replace the generic "decryption failed" error with the more specific "bad passphrase" error if the audit log indicates that a wrong symmetric password caused the decryption to fail. GnuPG-bug-id: 5939
* cpp: Allow changing the error of a resultIngo Klöcker2022-04-221-0/+8
| | | | | | | | | | * lang/cpp/src/result.h (class Result): Add member function setError. -- This can be used to replace the error of a result with a more suitable error. GnuPG-bug-id: 5939
* qt,doc: Fix typo and grammar in API documentationIngo Klöcker2022-04-051-5/+2
| | | | --
* cpp: Handle canceling of an edit operationIngo Klöcker2022-04-051-2/+2
| | | | | | | | | | | * lang/cpp/src/editinteractor.cpp (CallbackHelper::edit_interactor_callback_impl): Check for error _or_ canceled state. -- Without this canceling an edit operation resulted in a "General error". GnuPG-bug-id: 5904