aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cpp: Add interactor to revoke a keyIngo Klöcker2022-03-305-0/+290
| | | | | | | | | | * lang/cpp/src/global.h (enum class RevocationReason): New. * lang/cpp/src/gpgrevokekeyeditinteractor.cpp, lang/cpp/src/gpgrevokekeyeditinteractor.h: New. * lang/cpp/src/Makefile.am: Add new files. -- GnuPG-bug-id: 5904
* doc: Update NEWSIngo Klöcker2022-03-291-0/+2
| | | | | | -- GnuPG-bug-id: 5906
* qt: Set default visibility of all symbols to hiddenIngo Klöcker2022-03-281-0/+10
| | | | | | | | | | | | * configure.ac: Add -fvisibility=hidden to GPGME_QT_CFLAGS if gcc supports the flag. -- With this change all defined symbols are hidden by default, so that they are not exported anymore. All symbols that are part of the ABI and that shall still be exported are already marked as having default visibility. GnuPG-bug-id: 5906
* cpp: Set default visibility of all symbols to hiddenIngo Klöcker2022-03-283-3/+254
| | | | | | | | | | | | | | | | | * configure.ac: Add -fvisibility=hidden to GPGME_CPP_CFLAGS if gcc supports the flag. * lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add GPGME_CPP_CFLAGS. * m4/ax_gcc_func_attribute.m4: New. -- With this change all defined symbols are hidden by default, so that they are not exported anymore. All symbols that are part of the ABI and that shall still be exported are already marked as having default visibility. The m4 macro was taken from the website mentioned in the License header of the file. GnuPG-bug-id: 5906
* cpp: Put local helper function into unnamed namespaceIngo Klöcker2022-03-281-0/+2
| | | | | | | lang/cpp/src/context.cpp (to_auditlog_flags): Wrap in unnamed namespace. -- GnuPG-bug-id: 5906
* doc: Remove bogus documentationIngo Klöcker2022-03-281-16/+0
| | | | | | | | -- These lines were accidentally added with the documentation for gpgme_op_setexpire. The actual documentation for gpgme_op_revuid_start is a bit further down.
* core: Support keylist mode for op_keylist_from_data.NIIBE Yutaka2022-03-165-5/+11
| | | | | | | | | | | | | | * src/engine-backend.h (keylist_data): Add MODE argument. * src/engine-gpg.c (gpg_keylist_data): Add MODE argument. * src/engine.c (_gpgme_engine_op_keylist_data): Likewise. * src/engine.h (_gpgme_engine_op_keylist_data): Declaration. * src/keylist.c (gpgme_op_keylist_from_data_start): Call _gpgme_engine_op_keylist_data with ctx->keylist_mode. -- GnuPG-bug-id: 5438 Signed-off-by: NIIBE Yutaka <[email protected]>
* qt: Add missing include of config.hIngo Klöcker2022-03-071-0/+4
| | | | | | | * lang/qt/src/util.cpp: Include config.h. -- GnuPG-bug-id: 5871
* qt,doc: Remove comments about throwing exceptionsIngo Klöcker2022-03-077-17/+0
| | | | | | -- The jobs do not throw GpgME::Exception anymore since a long time.
* doc: Update NEWSIngo Klöcker2022-03-071-1/+14
| | | | | | -- Add a few more changes in version 1.17.0.
* Post release updatesWerner Koch2022-03-062-2/+8
|
* Release 1.17.1gpgme-1.17.1Werner Koch2022-03-062-3/+9
| | | | * configure.ac: Bump QT LT version to C15/A0/R0.
* qt: Fix ABI compatibility with 1.16.0Ingo Klöcker2022-02-171-6/+7
| | | | | | | | | | | * lang/qt/src/protocol.h (class Protocol): Move new virtual methods to the end of the class. -- This makes the vtable offsets of the old virtual methods match those in 1.16.0 again. GnuPG-bug-id: 5834
* Post release updatesWerner Koch2022-02-072-1/+5
| | | | --
* Release 1.17.0gpgme-1.17.0Werner Koch2022-02-073-10/+35
|
* qt: Fix build for older Qt versions.Werner Koch2022-02-071-0/+1
| | | | * lang/qt/src/util.cpp: Include <functional>.
* qt: Add job to import keys given by key idsIngo Klöcker2022-02-039-1/+316
| | | | | | | | | | | | | | | | | | * lang/qt/src/receivekeysjob.h, lang/qt/src/qgpgmereceivekeysjob.h, lang/qt/src/qgpgmereceivekeysjob.cpp: New. * lang/qt/src/protocol.h (class Protocol): Add pure virtual member function receiveKeysJob. * lang/qt/src/protocol_p.h (Protocol::receiveKeysJob): Implement it. * lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly. * lang/qt/tests/run-receivekeysjob.cpp: New. * lang/qt/tests/Makefile.am: Add new test runner. -- This job allows importing keys that are given by their key ids (or fingerprints) from keyservers as with gpg's recv-keys command. GnuPG-bug-id: 5808
* qt: Add helper for converting QStringList to vector of stringsIngo Klöcker2022-02-033-2/+101
| | | | | | | | | | | | | * lang/qt/src/util.h, lang/qt/src/util.cpp: New. * lang/qt/src/Makefile.am (qgpgme_sources, private_qgpgme_headers): Add new files. -- Additionally to the internal helper function toStrings(), this adds a copy of the internal make_error helper of GpgME++ which is used in a few places by QGpgME. We use the same error source id as GpgME++. GnuPG-bug-id: 5808
* cpp: Allow import of keys given by key idsIngo Klöcker2022-02-032-0/+20
| | | | | | | | | * lang/cpp/src/context.h (class Context): Add overloads of member functions importKeys and startKeyImport * lang/cpp/src/context.cpp (class Context): ... and implement them. -- GnuPG-bug-id: 5808
* cpp: Add internal adapter for passing a vector of strings to gpgmeIngo Klöcker2022-02-033-2/+73
| | | | | | | | | | | | * lang/cpp/src/util.h (class StringsToCStrings): New. * lang/cpp/src/util.cpp: New. * lang/cpp/src/Makefile.am: Add new file. -- This adapter simplifies passing a vector of strings as NULL-terminated array of const char* to the C-interface of gpgme. GnuPG-bug-id: 5808
* core: New function gpgme_op_receive_keysIngo Klöcker2022-02-0313-13/+299
| | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (gpgme_op_receive_keys_start, gpgme_op_receive_keys): New. * src/gpgme.def, src/libgpgme.vers: Add them. * src/engine-backend.h (struct engine_ops): Add arg keyids to field 'import'. * src/engine.h, src/engine.c (_gpgme_engine_op_import): Add arg keyids. * src/engine.c (_gpgme_engine_op_import): Forward new arg keyids. * src/import.c: (_gpgme_op_import_start, _gpgme_op_import_keys_start): Pass NULL to new arg of _gpgme_op_import_start. (_gpgme_op_receive_keys_start, gpgme_op_receive_keys_start, gpgme_op_receive_keys): New. * src/engine-gpg.c (gpg_import): Add arg keyids. Extend check for valid arguments. Build command line if keyids are given. * src/engine-gpgsm.c (gpgsm_import): Add arg keyids. Return error if keyids is not NULL. tests/run-receive-keys.c: New. tests/Makefile.am (noinst_PROGRAMS): Add new test runner. -- The new function allows importing keys given by their key ids or fingerprints from a keyserver (like gpg's --recv-keys command). GnuPG-bug-id: 5808
* doc: Fixed type of an object memberWerner Koch2022-01-201-1/+1
| | | | | | -- GnuPG-bug-id: 5719
* qt: Remove superfluous includeIngo Klöcker2022-01-171-2/+0
| | | | | | | | * lang/qt/src/importjob.h: Remove include of QByteArray. -- QByteArray is included by other headers already. Besides: Qt headers shouldn't be included with the package/module prefixes.
* qt: Fix build without installed GpgME++ headersIngo Klöcker2022-01-176-10/+18
| | | | | | | | | * lang/qt/src/importjob.h, lang/qt/src/wkdlookupresult.h: Include headers of GpgME++ without "gpgme++/" prefix when building QGpgme. * lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmewkdlookupjob.cpp, lang/qt/src/wkdlookupresult.cpp, lang/qt/tests/t-import.cpp: Include headers of GpgME++ without "gpgme++/" prefix. --
* tests: Fix generation of keys without expirationIngo Klöcker2022-01-131-8/+16
| | | | | | | | | | | * tests/run-genkey.c (parse_expire_string): Support default expiration and no expiration. Set flag for no expiration. (main): Allow update of flags when generating new key. -- This makes the parsing of different values for expiration match the parsing done by gpg's --quick-gen-key. In particular, this makes it possible again to generate keys without expiration.
* tests: Remove unsupported option --status from usage helpIngo Klöcker2022-01-131-1/+0
| | | | | | | * tests/run-swdb.c (show_usage): Remove option --status. -- run-swdb does not support the option --status.
* qt: Add job to add existing subkeys to other keysIngo Klöcker2022-01-1312-9/+601
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/addexistingsubkeyjob.h, lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp, lang/qt/src/qgpgmeaddexistingsubkeyjob.h: New. * lang/qt/src/protocol.h (class Protocol): Add pure virtual member function addExistingSubkeyJob. * lang/qt/src/protocol_p.h (Protocol::addExistingSubkeyJob): Implement. * lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly. * lang/qt/tests/Makefile.am (the_tests, moc_files, noinst_PROGRAMS): Add new test. (t_addexistingsubkey_SOURCES): New. * lang/qt/tests/t-addexistingsubkey.cpp: New. * lang/qt/tests/t-support.h (VERIFY_OR_RETURN_VALUE, COMPARE_OR_RETURN_VALUE, VERIFY_OR_OBJECT, COMPARE_OR_OBJECT, VERIFY_OR_FALSE, COMPARE_OR_FALSE): New. * lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp (class QQGpgMETest): New member function importSecretKeys. -- The new job allows adding existing subkeys to other keys as with the "addkey" edit-key command of gpg. The added subkey will have the same expiration date (+/- 1 second) as the original subkey. GnuPG-bug-id: 5770
* qt,tests: Add helper to hook up the test passphrase providerIngo Klöcker2022-01-138-179/+69
| | | | | | | | | | | | | | | * lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp (class QGpgMETest): Add member function hookUpPassphraseProvider. Add member mPassphraseProvider. * lang/qt/tests/t-changeexpiryjob.cpp, lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-remarks.cpp, lang/qt/tests/t-tofuinfo.cpp, lang/qt/tests/t-trustsignatures.cpp, lang/qt/tests/t-various.cpp: Use new helper. -- GnuPG-bug-id: 5770
* qt,tests: Add asyncDone signal to base class of all testsIngo Klöcker2022-01-1313-35/+4
| | | | | | | | | | | | | | | | | | | | | | | * lang/qt/tests/t-support.h (class QGpgMETest): Add signal asyncDone. * lang/qt/tests/t-changeexpiryjob.cpp, lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-import.cpp, lang/qt/tests/t-keylist.cpp, lang/qt/tests/t-keylocate.cpp, lang/qt/tests/t-ownertrust.cpp, lang/qt/tests/t-remarks.cpp, lang/qt/tests/t-tofuinfo.cpp, lang/qt/tests/t-trustsignatures.cpp, lang/qt/tests/t-various.cpp, lang/qt/tests/t-wkdlookup.cpp, lang/qt/tests/t-wkspublish.cpp: Remove signal asyncDone from the test classes. -- This reduces duplication and makes it possible to use the signal in the base class. GnuPG-bug-id: 5770
* cpp: Add interactor to add existing subkeys to other keysIngo Klöcker2022-01-124-0/+273
| | | | | | | | | * lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp, lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h: New. * lang/cpp/src/Makefile.am: Add new files. -- GnuPG-bug-id: 5770
* core: Return an error for secret key export operationsIngo Klöcker2022-01-102-1/+4
| | | | | | | | | | | src/export.c (export_status_handler): Handle "export_keys.secret". -- This allows callers of the synchronous export operations to react properly to errors (e.g. wrong passphrase) during the export of secret keys. GnuPG-bug-id: 5766
* doc: Update NEWSIngo Klöcker2022-01-041-0/+11
| | | | | | -- GnuPG-bug-id: 5757
* qt: Add factory function for secret subkey export jobIngo Klöcker2022-01-043-1/+19
| | | | | | | | | | | | | | * lang/qt/src/protocol.h (class Protocol): Add member function secretSubkeyExportJob. * lang/qt/src/protocol_p.h (Protocol::secretSubkeyExportJob): Implement. * lang/qt/tests/run-exportjob.cpp (showUsageAndExitWithCode): Print new option. (createExportJob): Create secret subkey export job if requested. (main): New option --secret-subkey. -- GnuPG-bug-id: 5757
* cpp: Allow export of secret subkeysIngo Klöcker2022-01-042-4/+30
| | | | | | | | | | | | | | | * lang/cpp/src/context.h (enum Context::ExportMode): Add value ExportSecretSubkey. (class Context): Add member functions exportSecretSubkeys and startSecretSubkeyExport. * lang/cpp/src/context.cpp (Context::exportPublicKeys, Context::startPublicKeyExport): Return error if ExportSecretSubkey mode flag is set. (Context::exportSecretSubkeys, Context::startSecretSubkeyExport): Implement. -- GnuPG-bug-id: 5757
* qt: Remove obsolete QGpgMESecretKeyExportJobIngo Klöcker2022-01-043-232/+1
| | | | | | | | | | | | | * lang/qt/src/Makefile.am: Remove all occurrences of qgpgmesecretkeyexportjob.*. * lang/qt/src/qgpgmesecretkeyexportjob.cpp, lang/qt/src/qgpgmesecretkeyexportjob.h: Remove. -- QGpgMESecretKeyExportJob is an internal class, so that we can safely remove it. GnuPG-bug-id: 5757
* qt: Use QGpgMEExportJob also for export of secret keysIngo Klöcker2022-01-046-19/+152
| | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/protocol.h (Protocol::secretKeyExportJob): Document charset argument as ignored. * lang/qt/src/protocol_p.h (Protocol::secretKeyExportJob): Use QGpgMEExportJob instead of QGpgMESecretKeyExportJob. * lang/qt/src/qgpgmeexportjob.h (class QGpgMEExportJob): Add c'tor taking an export mode. Add member m_exportMode. Rename member m_flags to m_additionalExportModeFlags. (QGpgMEExportJob::~QGpgMEExportJob): Mark as override. * lang/qt/src/qgpgmeexportjob.cpp (QGpgMEExportJob::QGpgMEExportJob): Delegate to new c'tor. Implement new c'tor. (QGpgMEExportJob::~QGpgMEExportJob): Use default. (export_qba): Rename argument flags to mode. (QGpgMEExportJob::start): Pass combination of export mode and additional mode flags to export_qba. (QGpgMEExportJob::setExportFlags): Adapt to renaming of member. * lang/qt/tests/run-exportjob.cpp: New. -- This change makes it possible to export secret OpenPGP keys. GnuPG-bug-id: 5757
* cpp: Allow export of secret keysIngo Klöcker2022-01-042-13/+87
| | | | | | | | | | | | | | | | | | | | * lang/cpp/src/context.h (class Context): New member functions exportSecretKeys, startSecretKeyExport, exportKeys, startKeyExport. (Context::exportPublicKeys, Context::startPublicKeyExport): Rename argument flags/export_mode to mode. * lang/cpp/src/context.cpp (Context::exportPublicKeys): Return error if ExportSecret mode flag is set. Call exportKeys(). (Context::startPublicKeyExport): Return error if ExportSecret mode flag is set. Call startKeyExport(). (Context::exportSecretKeys, Context::startSecretKeyExport, Context::exportKeys, Context::startKeyExport): Implement. -- This adds export functions for secret key exports and generic export functions that can be used for any key export supported by gpgme_op_export[_ext][_start]. GnuPG-bug-id: 5757
* cpp: Mark ExportNoUID flag as obsoleteIngo Klöcker2022-01-041-1/+1
| | | | | | | | * lang/cpp/src/context.h (enum Context::ExportMode): Mark value ExportNoUID as obsolete -- GnuPG-bug-id: 5757
* core: Add new option --secret-subkey to help texts.Ingo Klöcker2022-01-042-1/+3
| | | | | | | | * src/gpgme-tool.c (hlp_export): Add new option. * tests/run-export.c (show_usage): Print new option. -- GnuPG-bug-id: 5757
* cpp: Remove obsolete workaroundIngo Klöcker2022-01-041-18/+0
| | | | | | | | | | | | | * lang/cpp/src/context.cpp (Context::startKeyListing, Context::exportPublicKeys, Context::startPublicKeyExport): Remove workaround. -- gpgme_op_keylist_ext[_start] supports GPGME_KEYLIST_MODE_EXTERN since a long time. And the export doesn't use a keylisting (anymore), so that the keylisting mode is irrelevant for the export. GnuPG-bug-id: 5757
* core: New export mode to export secret subkeys.Ingo Klöcker2022-01-047-5/+51
| | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET_SUBKEY): New. * src/export.c (check_mode): Allow new mode and check for invalid combinations. (export_keys_start): Return error if new mode flag is set. * src/engine-gpg.c (export_common): Implement. * src/gpgme-tool.c (cmd_export): New option --secret-subkey. * tests/run-export.c (main): New option --secret-subkey. -- This adds support for exporting secret subkeys (via gpg's --export-secret-subkeys) to gpgme_op_export[_ext][_start]. The flag is not supported by gpgme_op_export_keys[_start] because there is no way to specify which subkey(s) to export with these functions. GnuPG-bug-id: 5757
* doc: Remove documentation of obsolete export mode flagIngo Klöcker2022-01-041-4/+0
| | | | | | | | | | * doc/gpgme.texi: Remove GPGME_EXPORT_MODE_NOUID. -- Support for this experimental flag has been removed with revision c8fd8870b3bf089f99156448b7d1e59c1150f994. GnuPG-bug-id: 5757
* core: Check for unsupported export mode flagsIngo Klöcker2022-01-041-0/+12
| | | | | | | | | | | src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Return error if an unsupported mode flag is set. -- The minimal mode flag has no effect for X.509 certificates, but we still treat it as supported (as documented in the API documentation). GnuPG-bug-id: 5757
* core: Check for combination of ssh mode with other mode flagsIngo Klöcker2022-01-041-0/+10
| | | | | | | | | | * src/export.c (check_mode): Return error if ssh mode is combined with another mode flag. -- The SSH mode flag cannot be used in combination with other flags. GnuPG-bug-id: 5757
* core: Factor out the check for valid export mode flags.Ingo Klöcker2022-01-041-38/+22
| | | | | | | | * src/export.c (check_mode): New. (export_start, export_ext_start): Call check_mode. -- GnuPG-bug-id: 5757
* qt: Detect an import error caused by a wrong passwordIngo Klöcker2021-12-221-1/+17
| | | | | | | | | | | | | * lang/qt/src/qgpgmeimportjob.cpp (import_qba): Check import statuses of import result for bad passphrase errors. -- To allow users of the import job to handle a failed import caused by a wrong password more gracefully, check if all import statuses of the import result have a bad passphrase error and return a bad passphrase error as import result in this case. GnuPG-bug-id: 5713
* qt,tests: Add test runner for testing the import jobIngo Klöcker2021-12-222-1/+101
| | | | | | | | | * lang/qt/tests/Makefile.am (run_importjob_SOURCES): New. (noinst_PROGRAMS): Add run-importjob. * lang/qt/tests/run-importjob.cpp: New. -- GnuPG-bug-id: 5713
* cpp: Check fpr of import status for NULLIngo Klöcker2021-12-221-1/+3
| | | | | | | | * lang/cpp/src/importresult.cpp (GpgME::ImportResult::Private): Check fpr for NULL. -- GnuPG-bug-id: 5713
* core: Detect bad passphrase error on certificate importIngo Klöcker2021-12-224-7/+63
| | | | | | | | | | | | | | | | | | | | | * src/import.c (gpgme_op_import_result): Check fpr for NULL. (parse_error): New. (import_status_handler): Handle error status line. * doc/gpgme.texi (gpgme_import_status_t): Mention that fpr can be NULL. * tests/gpg/t-import.c (check_result): Check fpr for NULL. * tests/run-threaded.c (delete_impres): Check fpr for NULL. -- When importing an encrypted certificate a wrong passphrase may be entered. In this case gpgsm emits a status line with a bad passphrase error and an "invalid object" error. To make it possible for callers to handle a wrong passphrase error more gracefully, an import status with bad passphrase error is added to the import result for each status line with bad passphrase error. GnuPG-bug-id: 5713
* build: Update for newer autoconf.NIIBE Yutaka2021-12-221-3/+3
| | | | | | | | | * configure.ac (AC_PREREQ): Require >= 2.69. (AC_CONFIG_HEADERS): Use it instead of AC_CONFIG_HEADER. -- Signed-off-by: NIIBE Yutaka <[email protected]>