aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* gpgme.m4: Fix setting/using GPG_ERROR_CONFIG.NIIBE Yutaka2024-06-131-8/+7
| | | | | | | | | gpgm4.m4 (_AM_PATH_GPGRT_CONFIG): Don't set GPG_ERROR_CONFIG and gpg_error_config_version. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* qt: Allow specifying import options when importing keysIngo Klöcker2024-06-125-4/+66
| | | | | | | | | | | | | | | * lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (class ImportJob): Add member functions setImportOptions and importOptions. * lang/qt/src/importjob_p.h (struct ImportJobPrivate): Add member m_importOptions. * lang/qt/src/qgpgmeimportjob.cpp (import_qba): Add arg importOptions and adjust the callers. Set import options context flag. * lang/qt/tests/t-import.cpp (ImportTest): Add member function testImportWithImportOptions. -- GnuPG-bug-id: 7152
* tests: Add --import-filter option to usage info of run-importIngo Klöcker2024-06-121-0/+1
| | | | | * tests/run-import.c (show_usage): Add option --import-filter. --
* core: Allow setting import options when importing keysIngo Klöcker2024-06-1211-7/+77
| | | | | | | | | | | | | | | | | | | | | | | | | * src/context.h (struct gpgme_context): New field import_options. * src/engine-backend.h (struct engine_ops): Add arg import_options to field 'import'. * src/engine-gpg.c (gpg_import): Add arg import_options and pass option --import-options with argument value to gpg. * src/engine-gpgsm.c (gpgsm_import): Add dummy arg import_options. * src/engine.c (_gpgme_engine_op_import): Add arg import_options and pass option to import function of engine. * src/engine.h (_gpgme_engine_op_import): Add arg import_options. * src/gpgme.c (gpgme_release): Free 'import_options'. (gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "import-options". * src/import.c (_gpgme_op_import_start, _gpgme_op_import_keys_start, _gpgme_op_receive_keys_start): Pass import options stored in context to _gpgme_engine_op_import. * tests/run-import.c (show_usage, main): Add option --import-options. -- This makes the --import-options option available in the GPGME API for key imports. GnuPG-bug-id: 7152
* qt,doc: Fix typosIngo Klöcker2024-06-121-2/+2
| | | | | * lang/qt/README: Fix typos. --
* qt: Align license of some Makefiles with license of other MakefilesIngo Klöcker2024-06-102-24/+26
| | | | | | | | | | * lang/qt/doc/Makefile.am, lang/qt/tests/Makefile.am: Change license from LGPL to GPL. -- Both files are part of QGpgME (as lang/qt/Makefile.am and lang/qt/src/Makefile.am). Hence, they should be licensed as other parts of QGpgME.
* qt: Fix license headers of MakefilesIngo Klöcker2024-06-102-15/+15
| | | | | | | | | | * lang/qt/Makefile.am, lang/qt/src/Makefile.am: Files are part of QGpgme. Fix wrong package name (GPGME-CL -> QGpgME). Replace references to LGPL with references to GPL. -- The files were already licensed under the GPL but the license headers contained multiple (copy&paste?) errors.
* qt: Fix license headers of CMake config filesIngo Klöcker2024-06-106-18/+18
| | | | | | | | | | | | | | | | * lang/qt/src/QGpgmeConfig-w32.cmake.in.in, lang/qt/src/QGpgmeConfig.cmake.in.in, lang/qt/src/QGpgmeConfigVersion.cmake.in: Files are part of QGpgME. Fix copy&paste error (GPGME-CL -> QGpgME). Fix reference to license to check for details. * lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in, lang/qt/src/QGpgmeQt6Config.cmake.in.in, lang/qt/src/QGpgmeQt6ConfigVersion.cmake.in: Files are part of QGpgME. Fix reference to license to check for details. -- The files were already licensed under the GPL but the license headers contained multiple (copy&paste?) errors.
* qt: Fix license headers of dataprovider.*Ingo Klöcker2024-06-102-30/+30
| | | | | | | | | * lang/qt/src/dataprovider.cpp, lang/qt/src/dataprovider.h: Change license header from LGPL to GPL. -- QGpgME is released under the GPL. As part of QGpgME these files (that were originally licensed under the LGPL) are released under the GPL.
* cpp: Remove commented out and disabled codeIngo Klöcker2024-06-102-156/+0
| | | | | | * lang/cpp/src/configuration.cpp: Remove disabled, abandoned code. * lang/cpp/src/context.cpp: Remove commented out, obsolete code. --
* doc: Extend description for GPGME_CREATE_ADSKWerner Koch2024-06-051-1/+4
| | | | --
* core,w32: Pass file names with forward slashes to gpg and gpgtarIngo Klöcker2024-06-043-29/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/conversion.c, src/util.h (_gpgme_replace_backslashes): New. src/engine-gpg.c (_add_arg): Add argument file_name. On Windows, replace backslashes in file name arguments with forward slashes. (add_arg_ext, add_arg_with_locp, add_arg, add_arg_pfx, add_gpg_arg, add_gpg_arg_with_value, add_arg_len): Adjust call of _add_arg. (add_file_name_arg, add_file_name_arg_len, add_gpg_arg_with_file_name): New. (add_file_name_arg_or_data): Call add_file_name_arg for file name. (gpg_new): Call add_gpg_arg_with_file_name for home directory. (gpg_decrypt): Call add_file_name_arg for output directory and output file name. (append_args_from_recipients_string): Call add_file_name_arg_len for recipients file name. (gpg_encrypt): Call add_file_name_arg for output file name, base directory and input file name. Call add_gpg_arg_with_file_name to set file name stored in message. (gpg_encrypt_sign): Call add_file_name_arg for output file name, base directory and input file name. Call add_gpg_arg_with_file_name to set file name stored in message. (gpg_sign): Call add_file_name_arg for output file name, base directory and input file name. Call add_gpg_arg_with_file_name to set file name stored in message. (gpg_verify): Call add_file_name_arg for output directory and output file name. -- By passing all file names with forward slashes to gpg and gpgtar we avoid problems caused by the quoting of backslashes. GnuPG-bug-id: 7141
* build,python: Fix make distcheck for Python 3.9+Ingo Klöcker2024-05-291-2/+6
| | | | | | | | | | | * lang/python/Makefile.am (uninstall-local): Remove installed .egg folders. -- Python 3.9+ install the module into a gpg-*.egg folder instead of in "gpg" with accompanying gpg-*.egg-info file. Moreover, Python 3.9+ normalize version numbers, e.g. the version 1.24.0_beta576 is normalized as 1.24.0b576.
* build,python: Remove support for Python 3.4, 3.5, 3.7Ingo Klöcker2024-05-291-2/+1
| | | | | | | | * configure.ac: Don't look for Python 3.4, 3.5, 3.7 anymore. -- This complements the previous commit where those versions where removed from python.m4.
* build,python: Build Python bindings without distutilsBen Greiner2024-05-295-13/+18
| | | | | | | | | | | | | | | | | | | | | * m4/python.m4: Add python3.12 and 3.11 as valid interpreters, remove EOL 3.4, 3.5, 3.7 (keep 3.6 because some distributions still ship and maintain it). * lang/python/Makefile.am (clean-local): Remove dist and gpg.egg-info created by Python 3.9+ on make install. * lang/python/setup.py.in: switch from distutils to setuptools where possible, remove obsolete and deprecated -py3 option of swig, add classifiers up to 3.12, remove 3.4, 3.5, 3.7. * lang/python/doc/src/gpgme-python-howto.org: replace distutils with setuptools * lang/python/examples/howto/advanced/cython/setup.py: replace distutils with setuptools -- This fixes building the Python bindings for Python 3.12 where distutils has been removed. Based on D545
* tests: Add new files to distributionIngo Klöcker2024-05-241-0/+2
| | | | | | | | * tests/json/Makefile.am (EXTRA_DIST): Add files added with f2575b63. -- Fixes-commit: f2575b6313aeb23d867682856f7842704786349e GnuPG-bug-id: 7118
* cpp: Fix includes in public headersIngo Klöcker2024-05-2413-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | * lang/cpp/src/defaultassuantransaction.h, lang/cpp/src/gpgadduserideditinteractor.h, lang/cpp/src/gpgagentgetinfoassuantransaction.h, lang/cpp/src/gpggencardkeyinteractor.h, lang/cpp/src/gpgsetexpirytimeeditinteractor.h, lang/cpp/src/gpgsetownertrusteditinteractor.h, lang/cpp/src/gpgsignkeyeditinteractor.h, lang/cpp/src/interfaces/assuantransaction.h, lang/cpp/src/interfaces/dataprovider.h, lang/cpp/src/interfaces/statusconsumer.h, lang/cpp/src/scdgetinfoassuantransaction.h, lang/cpp/src/statusconsumerassuantransaction.h, lang/cpp/src/trustitem.h: Use #include "foo.h" instead of #include <foo.h> for own headers. -- This fixes the build for projects that include the headers (as intended) with #include <gpgme++/...> and that don't add the gpgme++ subdirectory to the list of include paths for the compiler. GnuPG-bug-id: 7110
* Merge branch 'ikloecker/t7118-revkeys'Ingo Klöcker2024-05-2417-3/+476
|\
| * cpp: Add information about revocation keys to Keyikloecker/t7118-revkeysIngo Klöcker2024-05-215-1/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/cpp/src/gpgmefw.h (gpgme_revocation_key_t): New forward declaration. * lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods revocationKey, numRevocationKeys, revocationKeys. (class RevocationKey): New. (swap): New overload for RevocationKey. (operator<<): New overload for RevocationKey. * lang/cpp/src/key.cpp (operator<<): Add information about revocation keys to the output stream for Key. * lang/cpp/tests/run-keylist.cpp (main): Don't output Key if nextKey failed, e.g. at the end of the key listing. -- GnuPG-bug-id: 7118
| * json: Add information about revocation keys to key list resultIngo Klöcker2024-05-216-1/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme-json.c (revocation_key_to_json): New. (key_to_json): Add list of revocation keys. * tests/json/Makefile.am (pubring-stamp): Import new pub key. * tests/json/key-with-revokers.asc: New. * tests/json/t-json.c (tests): Add "t-keylist-revokers". * tests/json/t-keylist-revokers.in.json, tests/json/t-keylist-revokers.in.json: New. -- GnuPG-bug-id: 7118
| * core: Add information about revocation keys to keysIngo Klöcker2024-05-217-1/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (struct _gpgme_revocation_key, gpgme_revocation_key_t): New. (struct _gpgme_key): Add fields 'revkeys', '_last_revkey'. * src/key.c (_gpgme_key_add_rev_key): New. (gpgme_key_unref): Free revkeys. * src/keylist.c (keylist_colon_handler): Parse rvk lines. * src/ops.h (_gpgme_key_add_rev_key): New. * tests/run-keylist.c (main): Print revocation key info. -- GnuPG-bug-id: 7118
* | qt,cpp: Implement adding ADSKs to existing keysTobias Fella2024-05-225-0/+28
| | | | | | | | | | | | | | | | * lang/cpp/src/context.cpp: Add functions for adding ADSKs. * lang/cpp/src/context.h: Ditto. * lang/qt/src/qgpgmequickjob.cpp: Add implementation of ADSK job. * lang/qt/src/qgpgmequickjob.h: Ditto. * lang/qt/src/quickjob.h: Add job for adding ADSKs.
* | core: Implement adding ADSKs through gpgme_createsubkeyTobias Fella2024-05-225-4/+88
|/ | | | | | | | | | | | | | | * src/engine-gpg.c: Add and use function for adding ADSKs. * src/genkey.c: Prevent error due to no status line. * src/gpgme.h.in: Add flag GPGME_CREATE_ADSK * doc/gpgme.texi: Add documentation for ADSKs * tests/run-genkey.c: Add test for adding ADSKs -- This adds the ability to add ADSKs through the gpgme_createsubkey interface. The function must be called with NULL userid, the ADSK fingerprint in algo and the GPGME_CREATE_ADSK flag.
* tests: Fix segv in t-json.cWerner Koch2024-05-211-1/+1
| | | | | * tests/json/t-json.c (test_contains): Avoid calling recusivly with no child.
* tests: Avoid some compiler warnings.Werner Koch2024-05-212-3/+25
| | | | | | | | | | | * tests/gpg/t-support.h (fail_with_syserr): New. (check_data): Use it to avoid compiler warnings. * tests/run-support.h (fail_with_syserr): New. -- I don't think that there is a way to tell gcc that gpgme_err_code_from_errno will never return 0. Thus we better use a different macro.
* qt: Avoid bogus stringop-overread warningIngo Klöcker2024-05-211-2/+1
| | | | | | | | | * lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Use QByteArray overload of QString::fromUtf8. -- There's no need to make the code more complicated than necessary. Unless we want to provoke weird compiler warnings. :-)
* qt: Fix warning about missing returnIngo Klöcker2024-05-211-1/+2
| | | | | | | | | * lang/qt/src/qgpgmeexportjob.cpp (ExportJob::exec): Return a value and remove unused argument names. -- ExportJob::exec is never executed because its virtual overload is always used. Therefore it doesn't matter what value we return.
* core: speedup gpgme_get_keyWerner Koch2024-05-213-4/+11
| | | | | | | * src/engine.c (_gpgme_set_engine_info): Change engine_get_version. -- GnuPG-bug-id: 6369
* m4: Update libassuan.m4 from master.NIIBE Yutaka2024-05-171-2/+89
| | | | | | | | * m4/libassuan.m4: Update. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* Require at least libgpg-error 1.47Ingo Klöcker2024-05-161-1/+1
| | | | | | | | | | * configure.ac (NEED_GPG_ERROR_VERSION): Require 1.47. -- Libgpg-error 1.47 has been released more than 1 year ago and we use a new error code defined in this version. GnuPG-bug-id: 6971
* gpgme.m4: Set $host correctly always.NIIBE Yutaka2024-05-161-2/+3
| | | | | | | | | | * src/gpgme.m4 (AM_PATH_GPGME): Add AC_CANONICAL_HOST. -- GnuPG-bug-id: 7114 Reported-by: Andreas Metzler Signed-off-by: NIIBE Yutaka <[email protected]>
* tests: Fix test after changed behavior of gpgme_op_verifyIngo Klöcker2024-05-151-6/+7
| | | | | | | | | | | * tests/gpg/t-verify.c (main): Change assertion of test. -- The change introduced with 1dc44b7c makes gpg abort the verification of a clear-signed message if it encounters garbage following the signed data. We have to adapt the test to this change. GnuPG-bug-id: 6907
* doc: Update use of Autoconf with PKG_CHECK_MODULES.NIIBE Yutaka2024-05-141-4/+10
| | | | | | -- Signed-off-by: NIIBE Yutaka <[email protected]>
* gpgme.m4: Update _AM_PATH_GPGRT_CONFIG macro from gpg-error.m4.NIIBE Yutaka2024-05-141-7/+5
| | | | | | | | * src/gpgme.m4 (_AM_PATH_GPGRT_CONFIG): Update. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* cpp: Handle smart card op failure status messagesIngo Klöcker2024-04-051-0/+36
| | | | | | | | | | | | | | | * lang/cpp/src/editinteractor.cpp (parse_sc_op_failure): New. (CallbackHelper::edit_interactor_callback_impl): Parse failure code on GPGME_STATUS_SC_OP_FAILURE status. (sc_op_failure_to_error): New. -- This converts a SC_OP_FAILURE status message logged by gpg to a corresponding error. Unfortunately, GPG_ERR_BAD_PIN and GPG_ERR_BAD_RESET_CODE are mapped to the same SC_OP_FAILURE code, so that we had to choose one. GnuPG-bug-id: 6971
* Qt: Fix windows build of new jobsAndre Heinecke2024-03-136-7/+7
| | | | | -- See git log for changes.
* core: Check STATUS_FAILURE in import operations.Ingo Klöcker2024-03-111-0/+14
| | | | | | | | * src/import.c (op_data_t): Add failure_code. (_gpgme_import_status_handler): Set it. Return it on EOF. -- GnuPG-bug-id: 7036
* qt: Add function for synchronously executing ExportJobTobias Fella2024-01-223-0/+21
| | | | | | | | | | * lang/qt/src/exportjob: Add exec function. * lang/qt/src/qgpgmeexportjob.cpp: Implement exec function. * lang/qt/src/qgpgmeexportjob.h: Override exec function. -- GnuPG-Bug-Id: 6893
* qt: Remove superfluous virtual overrides and member variablesIngo Klöcker2024-01-1929-145/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp (QGpgMEAddExistingSubkeyJob::exec): Remove call of resultHook. * lang/qt/src/qgpgmedecryptjob.cpp (QGpgMEDecryptJob::exec): Remove call of resultHook. (QGpgMEDecryptJob::resultHook): Remove. * lang/qt/src/qgpgmedecryptjob.h (QGpgMEDecryptJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmedecryptverifyjob.cpp (QGpgMEDecryptVerifyJob::exec): Remove call of resultHook. (QGpgMEDecryptVerifyJob::resultHook): Remove. * lang/qt/src/qgpgmedecryptverifyjob.h (QGpgMEDecryptVerifyJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJob::exec): Remove call of resultHook. (QGpgMEEncryptJob::resultHook): Remove. * lang/qt/src/qgpgmeencryptjob.h (QGpgMEEncryptJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmegpgcardjob.cpp (QGpgMEGpgCardJob::exec): Remove call of resultHook. * lang/qt/src/qgpgmeimportfromkeyserverjob.cpp (QGpgMEImportFromKeyserverJob::exec): Remove call of resultHook. (QGpgMEImportFromKeyserverJob::resultHook): Remove. * lang/qt/src/qgpgmeimportfromkeyserverjob.h (QGpgMEImportFromKeyserverJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJob::exec): Remove call of resultHook. (QGpgMEImportJob::resultHook): Remove. * lang/qt/src/qgpgmeimportjob.h (QGpgMEImportJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmekeyformailboxjob.cpp (QGpgMEKeyForMailboxJob::exec): Remove call of resultHook. * lang/qt/src/qgpgmekeylistjob.cpp (QGpgMEKeyListJob::QGpgMEKeyListJob): Remove initialization of mResult. (QGpgMEKeyListJob::resultHook): Do not set (removed) mResult. * lang/qt/src/qgpgmekeylistjob.h (QGpgMEKeyListJob): Remove member mResult. * lang/qt/src/qgpgmelistallkeysjob.cpp (QGpgMEListAllKeysJob::QGpgMEListAllKeysJob): Remove initialization of mResult. (QGpgMEListAllKeysJob::exec): Remove call of resultHook. (QGpgMEListAllKeysJob::resultHook): Remove. * lang/qt/src/qgpgmelistallkeysjob.h (QGpgMEListAllKeysJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmereceivekeysjob.cpp (QGpgMEReceiveKeysJob::exec): Remove call of resultHook. (QGpgMEReceiveKeysJob::resultHook): Remove. * lang/qt/src/qgpgmereceivekeysjob.h (QGpgMEReceiveKeysJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmerevokekeyjob.cpp (QGpgMERevokeKeyJob::exec): Remove call of resultHook. * lang/qt/src/qgpgmesignencryptjob.cpp (QGpgMESignEncryptJob::exec): Remove call of resultHook. (QGpgMESignEncryptJob::resultHook): Remove. * lang/qt/src/qgpgmesignencryptjob.h (QGpgMESignEncryptJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmesignjob.cpp (QGpgMESignJob::exec): Remove call of resultHook. (QGpgMESignJob::resultHook): Remove. * lang/qt/src/qgpgmesignjob.h (QGpgMESignJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmeverifydetachedjob.cpp (QGpgMEVerifyDetachedJob::exec): Remove call of resultHook. (QGpgMEVerifyDetachedJob::resultHook): Remove. * lang/qt/src/qgpgmeverifydetachedjob.h (QGpgMEVerifyDetachedJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmeverifyopaquejob.cpp (QGpgMEVerifyOpaqueJob::exec): Remove call of resultHook. (QGpgMEVerifyOpaqueJob::resultHook): Remove. * lang/qt/src/qgpgmeverifyopaquejob.h (QGpgMEVerifyOpaqueJob): Remove resultHook override. Remove member mResult. * lang/qt/src/qgpgmewkdlookupjob.cpp (QGpgMEWKDLookupJob::exec): Remove call of resultHook. -- All overrides of resultHook (except for the one of QGpgMEKeyListJob) are superfluous. All the resultHook overrides do is store the result in a member variable which is then returned in exec() (which just before returning calls resultHook). The member variable the result is stored in is only ever used by exec(). So exec() can simply return the result directly. Some Job subclasses call resultHook without overriding it. That's equally useless because the default implementation of resultHook is empty. The only resultHook override that does anything useful is the one of QGpgMEKeyListJob.
* qt: Remove left-over mentions of showErrorDialogIngo Klöcker2024-01-195-32/+1
| | | | | | | | | | | | | * lang/qt/src/qgpgmedecryptjob.cpp, lang/qt/src/qgpgmeimportfromkeyserverjob.cpp, lang/qt/src/qgpgmeimportjob.cpp: Remove obsolete comment. * lang/qt/src/qgpgmekeylistjob.cpp, lang/qt/src/qgpgmelistallkeysjob.cpp: Remove long obsolete, #if 0'ed out definitions of showErrorDialog. -- Informing the users about errors is the responsibility of the users of the QGpgME Job API since a long time.
* build: Re-add still needed custom changes to Python autoconf macroIngo Klöcker2024-01-161-2/+5
| | | | | | | | * m4/ax_python_devel.m4: Do not emit 'HAVE_PYTHON'. -- This reapplies the changes made with 5189c08 that are still needed for detecting multiple Python versions.
* build: Update Python autoconf macroIngo Klöcker2024-01-162-122/+264
| | | | | | | | | | * configure.ac: Call AX_PYTHON_DEVEL with new "optional" argument. * m4/ax_python_devel.m4: Replace with current version from the autoconf archive. -- The new "optional" argument allows us to leave out one of our custom changes.
* doc: Add a deprecated warning to gpgme_op_delete.Werner Koch2024-01-151-3/+6
|
* doc: Fix minor typo.Werner Koch2024-01-151-1/+1
| | | | | | -- Reported-by: Ming Kuang
* cpp,tests: Launch dirmngr with gpg-confIngo Klöcker2024-01-091-8/+11
| | | | | | | | | | | | | * lang/cpp/tests/run-wkdlookup.cpp (main): Replace backslashes with forward slashes in homedir returned by GpgME::dirInfo. Use "gpgconf --launch dirmngr" to start dirmngr. -- With this change the same code as by QGpgMEWKDLookupJob is again used to launch dirmngr. It also fixes the bad example of starting dirmngr without the help of gpgconf. GnuPG-bug-id: 6833
* qt: Pass home directory with forward slashes when launching dirmngrIngo Klöcker2024-01-091-2/+4
| | | | | | | | | | | | | * lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Replace backslashes with forward slashes in homedir returned by GpgME::dirInfo. -- This works around a bug which causes backslashes to be escaped (doubled) twice on Windows, once by gpgme_op_spawn and once by the spawn helper gpgme-w32spawn. The next versions of GnuPG 2.2 and 2.4 also have a workaround for this. GnuPG-bug-id: 6833
* qt: Fix validity for (sub)keys generated using QGpgMEQuickJobTobias Fella2024-01-081-2/+4
| | | | | | | | | | | * lang/qt/src/qgpgmequickjob.cpp: Fix expiration calculation -- The job calculates the validity as the seconds since epoch, while GPG expects the seconds since the current time. This leads to the validity being significantly longer than expected. GnuPG-Bug-Id: 6889
* doc: Update NEWSIngo Klöcker2024-01-051-2/+48
| | | | | | -- GnuPG-bug-id: 6550
* qt: Support verification of detached signatures directly from filesIngo Klöcker2024-01-058-10/+345
| | | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/Makefile.am: Add new files. * lang/qt/src/job.cpp (VerifyDetachedJob): Move definition of constructor and destructor and inclusion of the moc file to the corresponding .cpp file. * lang/qt/src/verifydetachedjob.cpp: New. * lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Add member functions setSignatureFile, signatureFile, setSignedFile, signedFile. * lang/qt/src/verifydetachedjob_p.h: New. * lang/qt/src/qgpgmeverifydetachedjob.cpp (class QGpgMEVerifyDetachedJobPrivate): New. (QGpgMEVerifyDetachedJob::QGpgMEVerifyDetachedJob): Instantiate private job class. (verify_from_filename): New. * lang/qt/tests/Makefile.am: Add new test program. * lang/qt/tests/run-verifydetachedjob.cpp: New. -- This makes it possible to tell gpg to read the input directly from the specified files bypassing GpgME's Data IO when verifying a detached signature. GnuPG-bug-id: 6550
* core: Tell gpg that we want to verify signed dataIngo Klöcker2023-12-221-0/+2
| | | | | | | | | | | | * src/engine-gpg.c (gpg_verify): Add "--verify" to command line. -- Since GnuPG 2.1.16 --verify writes the signed data to the file specified by --output. Explicitly telling gpg that we want to verify signed data frees gpg from guessing what we want and avoids the corresponding warning "no command supplied. Trying to guess what you mean ..." GnuPG-bug-id: 6907