2023-11-28  Werner Koch  <wk@gnupg.org>

	Release 1.23.2.
	+ commit 1a26db717575068f0ab0d00a437ae870a93e1bb8


2023-11-23  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Start dirmngr with gpgconf to avoid multiple instances.
	+ commit 1bbe2d4b707843cacf020c252ce883ec45bdbc38
	* lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use "gpgconf
	--launch dirmngr" to start dirmngr.

2023-11-15  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: On Windows, use UTF-8 when logging the error text.
	+ commit 618fea9e2006475bf849da1c1837e0d788f30a80
	* lang/qt/src/debug.cpp (operator<<): On Windows, interpret the error
	text as UTF-8 instead of local 8-bit encoding.

	qt: Remove left-over partial files more persistently.
	+ commit 278f92b189ece58dee2036450ac029e3599fdb1f
	* lang/qt/src/Makefile.am: Add new files.
	* lang/qt/src/cleaner.cpp, lang/qt/src/cleaner.h: New.
	* lang/qt/src/util.cpp (PartialFileGuard::~PartialFileGuard): Call
	Cleaner::removeFile instead of removeFile.
	* lang/qt/src/util.cpp, lang/qt/src/util.h (removeFile): Remove.

2023-11-14  Ingo Klöcker  <dev@ingo-kloecker.de>

	core: Preserve more specific existing failure code.
	+ commit 77e982579ccadb20ee865337ada9579ac41164e1
	* src/decrypt.c (_gpgme_decrypt_status_handler): Ignore received failure
	code if we already have a specific failure code.
	* src/encrypt.c (_gpgme_encrypt_status_handler): Ditto.
	* src/export.c (export_status_handler): Ditto.
	* src/genkey.c (genkey_status_handler): Ditto.
	* src/keylist.c (keylist_status_handler): Ditto.
	* src/keysign.c (keysign_status_handler): Ditto.
	* src/passwd.c (passwd_status_handler): Ditto.
	* src/revsig.c (revsig_status_handler): Ditto.
	* src/setexpire.c (setexpire_status_handler): Ditto.
	* src/sign.c (_gpgme_sign_status_handler): Ditto.
	* src/tofupolicy.c (tofu_policy_status_handler): Ditto.
	* src/verify.c (_gpgme_verify_status_handler): Ditto.

2023-11-10  Werner Koch  <wk@gnupg.org>

	tests: Add option --chain to run-keylist.
	+ commit 1bfd5e92d0236d1db9782904c1a2d5dc7461dae2
	* tests/run-keylist.c (xstrdup): New.
	(main): Add option.

2023-11-10  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Deprecate DefaultKeyGenerationJob.
	+ commit 52d59d75cae5803ac49ddbee4aae9b862c73a075
	* lang/qt/src/defaultkeygenerationjob.h (class DefaultKeyGenerationJob):
	Deprecate.

2023-10-30  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,qt: Build Qt with -fPIC if required or requested.
	+ commit ae332749eee056f59bf902a65ffb012fcf181875
	* configure.ac: Add option to enable building the Qt 6 binding with
	-fPIC. Fix typo and mention default for --enable-no-direct-extern-access
	option.
	* m4/qt6.m4: Add -fPIC to GPGME_QT6_CFLAGS if requested or if Qt 6 was
	built with reduce_relocations.

2023-10-27  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Use temporary .part file names when creating archives.
	+ commit 46f5d5eeb3b1d0586106b33cecf600ab66170b45
	* lang/qt/src/util.h, lang/qt/src/util.cpp (class PartialFileGuard):
	New.
	* lang/qt/src/util.cpp (getRandomCharacters, createPartFileName): New.
	* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt_to_filename): Use
	PartialFileGuard.
	* lang/qt/src/qgpgmesignarchivejob.cpp (sign_to_filename): Ditto.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp
	(sign_encrypt_to_filename): Ditto.

	qt: Refactor removal of output file on cancel or error.
	+ commit 8d8985bda1747a18b3b1378ea7c627302a61464a
	* lang/qt/src/util.h, lang/qt/src/util.cpp (removeFile): New.
	* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Move removal of
	output file from here
	(encrypt_to_filename): ... to here and use new function.
	* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Move removal of output
	file from here
	(sign_to_filename): ... to here and use new function.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Move
	removal of output file from here
	(sign_encrypt_to_filename): ... to here and use new function.

2023-10-25  Andre Heinecke  <aheinecke@gnupg.org>

	Change gpgme-w32-spawn to unicode.
	+ commit a0a4cd411c6d891e9ca784fd12b76410b0bb4673
	* src/Makefile.am (gpgme_w32spawn_CFLAGS): Add -municode.
	* src/gpgme-w32-spawn.c (build_commandline, my_spawn)
	(translate_handles): Convert to wchar_t API.
	(main): Use wmain instead.

2023-10-25  Werner Koch  <wk@gnupg.org>

	Release 1.23.0.
	+ commit aae967ec9cb365518fc8f73e6fb3ba7b55ef590d


2023-10-18  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Handle cancel in changeexpiryjob.
	+ commit ab25df8328d9248abc2816403e6051e00d5b1095
	* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Return
	cancel error.

2023-10-13  Marius P  <nmariusp1@gmail.com>

	python,examples: Add missing word "License"
	+ commit 959f976dfca65b99fd1107f1fca93a5f0c4a83ad
	* lang/python/examples/howto/add-userid.py,
	lang/python/examples/howto/clear-sign-file.py,
	lang/python/examples/howto/create-key.py,
	lang/python/examples/howto/decrypt-file.py,
	lang/python/examples/howto/detach-sign-file.py,
	lang/python/examples/howto/encrypt-file.py,
	lang/python/examples/howto/encrypt-sign-file.py,
	lang/python/examples/howto/encrypt-to-group-gullible.py,
	lang/python/examples/howto/encrypt-to-group-trustno1.py,
	lang/python/examples/howto/encrypt-to-group.py,
	lang/python/examples/howto/export-key.py,
	lang/python/examples/howto/export-minimised-key.py,
	lang/python/examples/howto/export-secret-key.py,
	lang/python/examples/howto/export-secret-keys.py,
	lang/python/examples/howto/groups.py,
	lang/python/examples/howto/import-key.py,
	lang/python/examples/howto/import-keybasekey.py,
	lang/python/examples/howto/import-keys-hkp.py,
	lang/python/examples/howto/import-keys.py,
	lang/python/examples/howto/import-mailvelope-keys.py,
	lang/python/examples/howto/keycount.py,
	lang/python/examples/howto/local-sign-group.py,
	lang/python/examples/howto/mutt-groups.py,
	lang/python/examples/howto/pmkey-import-alt.py,
	lang/python/examples/howto/pmkey-import-hkp-alt.py,
	lang/python/examples/howto/pmkey-import-hkp.py,
	lang/python/examples/howto/pmkey-import.py,
	lang/python/examples/howto/revoke-userid.py,
	lang/python/examples/howto/send-key-to-keyserver.py,
	lang/python/examples/howto/sign-file.py,
	lang/python/examples/howto/sign-key.py,
	lang/python/examples/howto/symcrypt-file.py,
	lang/python/examples/howto/temp-homedir-config.py,
	lang/python/examples/howto/verify-signatures.py,
	lang/python/examples/howto/verify-signed-file.py: Add "License" after
	"Lesser General Public"

2023-10-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Support new key capability flags.
	+ commit a9e5a25b56abb7f27812f333c287a7adae9e18e8
	* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods
	hasCertify, hasSign, hasEncrypt, hasAuthenticate.

2023-10-05  Werner Koch  <wk@gnupg.org>

	core: Add key capability flags has_encrypt etc.
	+ commit b63d203d3ba49483b079fb118a90990c452cd232
	* src/gpgme.h.in (struct _gpgme_key): Add flags has_encrypt,
	has_certify, has_sign, and has_authenticate.
	* src/keylist.c (finish_key): Set these flags.
	* tests/run-keylist.c (main): Print them.

	core: Check STATUS_FAILURE in export operations.
	+ commit 349a69b5ea77c334c1c59b56f283bb65dc54a590
	* src/export.c (op_data_t): Add failure_code.
	(export_status_handler): Set it.
	(gpgme_op_export_ext, gpgme_op_export_keys): Also check the failure
	code.

2023-09-29  NIIBE Yutaka  <gniibe@fsij.org>

	gpgme-tool: Support use of Windows HANDLE for INPUT/OUTPUT/MESSAGE.
	+ commit 8ad22290df34c73881f42f02cdd28551ec265077
	* src/gpgme-tool.c [HAVE_W32_SYSTEM] (server_data_obj): Implement for
	Windows HANDLE.

2023-09-22  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Use UTF-8 for file names on Windows.
	+ commit d43d787e9ac153f67505fee95a975b4e8f6f928e
	* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
	(decrypt_verify_from_file_name): On Windows, convert Unicode file name
	to UTF-8.
	* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt,
	encrypt_to_filename): On Windows, convert Unicode file name from/to
	UTF-8.
	* lang/qt/src/qgpgmesignarchivejob.cpp (sign, sign_to_filename): Ditto.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt,
	sign_encrypt_to_filename): Ditto.

2023-09-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,qt: Autodetect whether Qt was built with -mno-direct-extern-access
	+ commit 4e321a0f06ffba2437fa34ccb88527e9ea633703
	* m4/qt6.m4: Check the build configuration of Qt 6 for
	no_direct_extern_access.

	build,qt: Optionally build Qt 6 bindings with -mno-direct-extern-access.
	+ commit 927f129663b8bde1ecb4e2ac2b233a7baca8a568
	* configure.ac: Check if C++ compiler supports
	-mno-direct-extern-access. Add option to enable building with
	-mno-direct-extern-access.
	* m4/ax_check_compile_flag.m4: New.
	* m4/qt6.m4: Add -mno-direct-extern-access to GPGME_QT6_CFLAGS if
	supported and requested.

	build,qt: Drop broken check for -fPIC.
	+ commit 3e6485620816c9097f98cbe4fdb82a4683918a63
	* m4/qt6.m4: Remove attempt to build a Qt program with -fPIC.

2023-09-04  Ingo Klöcker  <dev@ingo-kloecker.de>

	tests: Re-add --with-secret option.
	+ commit 8fde9cbe22885116e4779ea70e13bd0c2273d604
	* tests/run-keylist.c (main): Handle option --with-secret again.

2023-09-04  Werner Koch  <wk@gnupg.org>

	New mode to list a v5 fingerprint for v4 packets.
	+ commit e36b2d1bce4bb6281e18f53d06d7831e6d6f5a09
	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_V5FPR): New.
	(struct _gpgme_subkey): Add field v5fpr.
	* src/engine-gpg.c (gpg_keylist_build_options): Pass new option to
	gpg.
	* src/key.c (gpgme_key_unref): Free new field.
	* src/keylist.c (op_data_t): Parse and add "fp2" line.

	* tests/run-keylist.c (show_usage): Add option --v5fpr.

	* src/keylist.c (op_data_t): Add field failure_code.
	(keylist_status_handler): Handle special value.
	(gpgme_op_keylist_end): Return an error if a FAILURE line has been
	seen.

2023-09-01  NIIBE Yutaka  <gniibe@fsij.org>

	build: Change the default for --with-libtool-modification.
	+ commit b80d52a1f74a205b6cd708ad3b5741b051bbaaff
	* configure.ac (--with-libtool-modification): default=never.

2023-08-31  Werner Koch  <wk@gnupg.org>

	Support GPGME_ENCRYPT_ALWAYS_TRUST also for S/MIME.
	+ commit d75b2a91517397261c2508dba058611f803c0733
	* src/engine-gpgsm.c (gpgsm_encrypt): Send the always-trust options.

	* tests/run-encrypt.c: Add option --always-trust.

2023-08-23  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Allow specifying user IDs to use when refreshing keys via WKD.
	+ commit 3f297387bf401475385c458e4d1d95b3eefaf3d8
	* lang/qt/src/wkdrefreshjob.h, lang/qt/src/wkdrefreshjob.cpp
	(WKDRefreshJob::start): New overload.
	* lang/qt/src/wkdrefreshjob_p.h (WKDRefreshJobPrivate): Add field
	m_userIds.
	* lang/qt/src/qgpgmewkdrefreshjob.cpp (toEmailAddresses): New.
	(locate_external_keys): Change return type and arguments.
	(refresh_keys): Remove.
	(QGpgMEWKDRefreshJobPrivate::startIt): Get emails from keys or user IDs.
	Remove duplicates. Call locate_external_keys instead of refresh_keys.

	* lang/qt/tests/run-wkdrefreshjob.cpp (CommandLineOptions,
	parseCommandLine): New.
	(main): Support new option --all-userids.

2023-08-22  Christian Hesse  <mail@eworm.de>

	qt,tests: Fix build in source directory, part 2.
	+ commit aee18a2ab2498bc6092bef518c532796bbe5b502
	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources
	before C++ binding sources and C sources.

2023-08-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Suggest out-of-source build.
	+ commit 24a8c279da98fe7e586a9fc3cd91175c9e60ffef
	* autogen.rc (final_info): Suggest to run configure from a build
	subdirectory.

	qt,tests: Fix build in source directory.
	+ commit d23528cadf4284f508bc4ba05e1b5c14b46bd354
	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources
	before C++ binding sources and C sources.

	qt: Add job for refreshing OpenPGP keys via WKD.
	+ commit 2ad36f71144731f847c89b1f1e91f21c215cffa1
	* lang/qt/src/wkdrefreshjob.cpp, lang/qt/src/wkdrefreshjob.h,
	lang/qt/src/wkdrefreshjob_p.h, lang/qt/src/qgpgmewkdrefreshjob.cpp,
	lang/qt/src/qgpgmewkdrefreshjob.h: New.
	* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
	function wkdRefreshJob
	* lang/qt/src/protocol_p.h (Protocol::wkdRefreshJob): ... and
	implement it.
	* lang/qt/src/Makefile.am: Update accordingly.

	* lang/qt/tests/run-wkdrefreshjob.cpp: New.
	* lang/qt/tests/Makefile.am: Add new test runner.

2023-08-21  Werner Koch  <wk@gnupg.org>

	Release 1.22.0.
	+ commit 8ea7015a230eed6239298d725adf7751c5fb84ea


2023-08-17  NIIBE Yutaka  <gniibe@fsij.org>

	build: New configure option --with-libtool-modification.
	+ commit dacbd51c3f8ae6dafe56b3d4b4d15c8d62254230
	* Makefile.am (EXTRA_DIST): Add build-aux/libtool-patch.sed.
	* build-aux/libtool-patch.sed: New.
	* configure.ac (--with-libtool-modification): New.
	* build-aux/ltmain.sh: Revert our own local modification.

2023-08-16  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Clean up after failure or cancel of sign/encrypt archive operation.
	+ commit 40ca3d58963884a876c826dcf5c32673b8ddc084
	* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Remove output file
	if operation was canceled or failed.
	* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Ditto.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Ditto.

	* lang/qt/tests/run-encryptarchivejob.cpp (CommandLineOptions): Add
	field cancelTimeout.
	(parseCommandLine): Add option --cancel-after. Parse option value.
	(main): Check for invalid cancel timeout. Start timer for canceling
	the job.
	* lang/qt/tests/run-signarchivejob.cpp (CommandLineOptions): Add
	field cancelTimeout.
	(parseCommandLine): Add option --cancel-after. Parse option value.
	(main): Check for invalid cancel timeout. Start timer for canceling
	the job.

2023-08-15  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Make toLogString helper public.
	+ commit c3171d0cf1a249618f0763fe141ab84d8a4be240
	* lang/qt/src/util.h: Move toLogString ...
	* lang/qt/src/debug.h: ... here.
	* lang/qt/tests/run-importjob.cpp (main): Use toLogString.

2023-08-14  Ingo Klöcker  <dev@ingo-kloecker.de>

	tests: Support offline mode in run-import.
	+ commit 150a2f9e4e5afe359fec2bbb017f6d0cfa7ca4a7
	* tests/run-import.c (show_usage): New option --offline.
	(main): Parse new option. Set offline mode accordingly.

	core: Use offline mode for all operations of gpgsm engine.
	+ commit bc98f01c8599f612dd1035b08f827b0657d94984
	* src/engine-backend.h (keylist, keylist_ext): Remove engine_flags.
	* src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto.
	* src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto.
	(_gpgme_engine_op_keylist_ext): Ditto.
	* src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): Remove.
	* src/engine-gpgsm.c (struct engine_gpgsm): New field flags with offline
	flag.
	(have_gpgsm_version): New.
	(gpg_set_engine_flags): Set the offline flag.
	(start): Send OPTION "offline".
	(gpgsm_keylist, gpgsm_keylist_ext): Remove engine_flags.  Remove
	sending of OPTION "offline".
	* src/keylist.c (gpgme_op_keylist_start, gpgme_op_keylist_ext_start):
	Remove setting of offline flag.

	core: Store engine's version string in gpgsm engine.
	+ commit d72811a2c09411f8fdc821eb78d16ce8fbd5a184
	* src/engine-gpgsm.c (struct engine_gpgsm): Add field 'version'.
	(gpgsm_new): Copy version string.
	(gpgsm_release): Free VERSION.

2023-08-04  Carl Schwan  <carl.schwan@gnupg.com>

	cpp: Expose gpgme_decrypt_result_t.is_mime through cpp API.
	+ commit 8701e989376dfa772f299fe41bf4a60a98f8564e
	* lang/cpp/src/descriptionresult.cpp (DescriptionResult::isMime): New.
	* lang/cpp/src/descriptionresult.h: Update accordingly.

2023-08-03  Carl Schwan  <carl.schwan@gnupg.com>

	qt: Add setInputEncoding to QGpgMe::EncryptJob.
	+ commit d91d037fc19f0bbec44210099dc0d0e358d3fd4a
	* lang/qt/src/encryptjob.cpp, lang/qt/src/encryptjob.h,
	lang/qt/src/encryptjob_p.h: Add inputEncoding/setInputEncoding
	to EncryptJob
	* lang/qt/src/qgpgmeencryptjob.cpp: Use newly added inputEncoding
	to set encoding hint of the encrypted content

2023-07-28  Ingo Klöcker  <dev@ingo-kloecker.de>

	core: Prevent wrong plaintext when verifying clearsigned signature.
	+ commit a9b28c79e92f6194ea52c7d33213f2a0dc9bd013
	* src/engine-gpg.c (gpg_verify): Use a separate pipe instead of stdout
	for reading the plaintext.

	* tests/gpg/t-support.h (PGM): Define if undefined.
	(print_data): Undefine BUF_SIZE.
	(check_data): New.
	* tests/gpg/t-verify.c (clearsigned_plus_key_block): New.
	(main): Add test.

	core: Return bad data error instead of general error on unexpected data.
	+ commit 777cf7f2d17331cfe127129c750121970fcad58f
	* src/verify.c (_gpgme_verify_status_handler): Return GPG_ERR_BAD_DATA
	instead of GPG_ERR_GENERAL.

2023-07-28  NIIBE Yutaka  <gniibe@fsij.org>

	build: Update libassuan.m4 for libassuan version 3 in future.
	+ commit 0518ed32e254faaa1f5ae61593ab17e8485388a6
	* m4/libassuan.m4: Update from libassuan master.

2023-07-08  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Ensure that we check the correct paths.
	+ commit e3defc0adf68de74a735abae334739771838f191
	* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
	lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in: Get paths to check from
	the target properties.

2023-07-08  Ingo Klöcker  <dev@ingo-kloecker.de>
	    Biswapriyo Nath  <nathbappai@gmail.com>

	qt: Fix DLL version in cmake config files.
	+ commit be0e653ce3039b1a81d23bed9dc99c0e60a7995a
	* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
	lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in: Fix name and path of DLL.

2023-07-08  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Fix check for required files.
	+ commit ad34fcbbec3fc3a1a7d1232afd2e4f55119e2cb6
	* lang/qt/src/QGpgmeConfig-w32.cmake.in.in: Fix typos in variable names.

2023-07-07  Werner Koch  <wk@gnupg.org>

	Release 1.21.0.
	+ commit 5bf3e6d0754a179b316f90a885371af99bc03ea1


2023-06-23  NIIBE Yutaka  <gniibe@fsij.org>

	build: Add BUILT_SOURCE for better dependency.
	+ commit 05ac1ce09ff199c715805cf601ea6d65e26c1fff
	* Makefile.am (BUILT_SOURCE): Add conf/config.h.

2023-06-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Support reading signed/encrypted archives directly from a file.
	+ commit 1c2459a5927866931808141ac6c4157cd5e3a157
	* lang/qt/src/decryptverifyarchivejob.cpp,
	lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
	member functions setInputFile, inputFile.
	* lang/qt/src/decryptverifyarchivejob_p.h
	(DecryptVerifyArchiveJobPrivate): Add member m_inputFilePath.
	* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp (decrypt_verify): Move
	creation of indata to decrypt_verify_from_io_device.
	(decrypt_verify_from_io_device, decrypt_verify_from_file_name): New.
	(QGpgMEDecryptVerifyArchiveJob::start): Use
	decrypt_verify_from_io_device instead of decrypt_verify.
	(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Start the job with the
	values from member variables.

	* lang/qt/tests/run-decryptverifyarchivejob.cpp (createInput): Remove.
	(main): Remove creation of input. Make the job read the archive directly
	from the given archive name.

	core: Support reading the archive to decrypt/verify directly from a file
	+ commit 1a9f192ab450288aea7a889527e78afd2c067b59
	* src/engine-gpg.c (add_file_name_arg_or_data): New.
	(gpg_decrypt): Use add_file_name_arg_or_data instead of add_data for the
	ciphertext.
	(gpg_verify): Use add_file_name_arg_or_data instead of add_data for the
	signature and the signed text.

	* tests/run-decrypt.c (show_usage): New option --direct-file-io.
	(main): Parse new option. If option is given, then don't open input
	file, create simple data object instead of data object from stream and
	set input file name on input data.
	* tests/run-verify.c (show_usage): New option --direct-file-io.
	(main): Parse new option. If option is given, then don't open input
	files, create simple data objects instead of data objects from stream
	and set input file names on input data objects.

2023-06-19  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Support writing signed/encrypted archives directly to a file.
	+ commit e608315392cc5b7ddf51e16dce5fe7e99b83f011
	* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h
	(EncryptArchiveJob): Add member functions setRecipients, recipients,
	setInputPaths, inputPaths, setOutputFile, outputFile,
	setEncryptionFlags, encryptionFlags.
	* lang/qt/src/encryptarchivejob_p.h (EncryptArchiveJobPrivate): Add
	members m_recipients, m_inputPaths, m_outputFilePath, m_encryptionFlags.
	* lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Move creation of
	outdata to encrypt_to_io_device.
	(encrypt_to_io_device, encrypt_to_filename): New.
	(QGpgMEEncryptArchiveJob::start): Use encrypt_to_io_device instead of
	encrypt.
	(QGpgMEEncryptArchiveJobPrivate::startIt): Start the job with the
	values from member variables.
	* lang/qt/src/qgpgmesignarchivejob.cpp (sign): Move creation of
	outdata to sign_to_io_device.
	(sign_to_io_device, sign_to_filename): New.
	(QGpgMESignArchiveJob::start): Use sign_to_io_device instead of sign.
	(QGpgMESignArchiveJobPrivate::startIt): Start the job with the
	values from member variables.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Move
	creation of outdata to sign_encrypt_to_io_device.
	(sign_encrypt_to_io_device, sign_encrypt_to_filename): New.
	(QGpgMESignEncryptArchiveJob::start): Use sign_encrypt_to_io_device
	instead of sign_encrypt.
	(QGpgMESignEncryptArchiveJobPrivate::startIt): Start the job with the
	values from member variables.
	* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h
	(SignArchiveJob): Add member functions setSigner, signers,
	setInputPaths, inputPaths, setOutputFile, outputFile.
	* lang/qt/src/signarchivejob_p.h (SignArchiveJobPrivate): Add
	members m_signers, m_inputPaths, m_outputFilePath.
	* lang/qt/src/signencryptarchivejob.cpp,
	lang/qt/src/signencryptarchivejob.h (SignEncryptArchiveJob): Add
	member functions setSigner, signers, setRecipients, recipients,
	setInputPaths, inputPaths, setOutputFile, outputFile,
	setEncryptionFlags, encryptionFlags.
	* lang/qt/src/signencryptarchivejob_p.h (SignEncryptArchiveJobPrivate):
	Add members m_signers, m_recipients, m_inputPaths, m_outputFilePath,
	m_encryptionFlags.

	* lang/qt/tests/run-encryptarchivejob.cpp (createOutput): Remove.
	(checkOutputFilePath): New.
	(main): Create file output writing to stdout if no archive name (or "-")
	is given. Exit if file with given archive name already exists. Make
	the jobs write the created archive directly to the given archive name.
	* lang/qt/tests/run-signarchivejob.cpp (createOutput): Remove.
	(checkOutputFilePath): New.
	(main): Create file output writing to stdout if no archive name (or "-")
	is given. Exit if file with given archive name already exists. Make
	the jobs write the created archive directly to the given archive name.

	core: Support writing the sign/encrypt output directly to a file.
	+ commit c38b6200396f703917e4c66aca068f90cfbad325
	* src/engine-gpg.c (gpg_encrypt): Pass output file name to gpg if output
	has file name set.
	(gpg_encrypt_sign): Ditto.
	(gpg_sign): Ditto.

	* tests/run-encrypt.c (show_usage): New option --output.
	(main): Parse new option. Set file name on output if --output is given.
	Do not print output if --output is given.
	* tests/run-sign.c (show_usage): New option --output.
	(main): Parse new option. Set file name on output if --output is given.
	Do not print output if --output is given.

	qt: Add a generic hook to start a job.
	+ commit 8b9fabf5d55419a68c2b0fc7fd1a90517c881d78
	* lang/qt/src/job.cpp, lang/qt/src/job.h (Job::startIt): New method.
	* lang/qt/src/job_p.h (JobPrivate::startIt): New pure virtual method.
	* lang/qt/src/qgpgmechangeexpiryjob.cpp
	(QGpgMEChangeExpiryJobPrivate::startIt): New.
	* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
	(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): New.
	* lang/qt/src/qgpgmeencryptarchivejob.cpp
	(QGpgMEEncryptArchiveJobPrivate::startIt): New.
	* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::startIt):
	New.
	* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::startIt):
	New.
	* lang/qt/src/qgpgmelistallkeysjob.cpp
	(QGpgMEListAllKeysJobPrivate::startIt): New.
	* lang/qt/src/qgpgmesignarchivejob.cpp
	(QGpgMESignArchiveJobPrivate::startIt): New.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp
	(QGpgMESignEncryptArchiveJobPrivate::startIt): New.
	* lang/qt/src/qgpgmesignencryptjob.cpp
	(QGpgMESignEncryptJobPrivate::startIt): New.

	qt: Make the run methods of ThreadedJobMixin public.
	+ commit 23526c3ff26be11e4ebb1294b6f60202881a066c
	* lang/qt/src/threadedjobmixin.h (ThreadedJobMixin::run): Make all
	overloads public.

	qt: Rename JobPrivate::start to JobPrivate::startNow.
	+ commit 4655b2dc6b33aca3bd6737eadadfb8afcf8694bd
	* lang/qt/src/job_p.h (JobPrivate::start): Rename to startNow.
	* lang/qt/src/job.cpp (Job::startNow): Adapt function call.
	* lang/qt/src/qgpgmechangeexpiryjob.cpp
	(QGpgMEChangeExpiryJobPrivate::start): Rename to startNow.
	* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
	(QGpgMEDecryptVerifyArchiveJobPrivate::start): Rename to startNow.
	* lang/qt/src/qgpgmeencryptarchivejob.cpp
	(QGpgMEEncryptArchiveJobPrivate::start): Rename to startNow.
	* lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::start):
	Rename to startNow.
	* lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::start):
	Rename to startNow.
	* lang/qt/src/qgpgmelistallkeysjob.cpp
	(QGpgMEListAllKeysJobPrivate::start): Rename to startNow.
	* lang/qt/src/qgpgmesignarchivejob.cpp
	(QGpgMESignArchiveJobPrivate::start): Rename to startNow.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp
	(QGpgMESignEncryptArchiveJobPrivate::start): Rename to startNow.
	* lang/qt/src/qgpgmesignencryptjob.cpp
	(QGpgMESignEncryptJobPrivate::start): Rename to startNow.

	qt: Return const pointer to JobPrivate class for const pointer to Job.
	+ commit 6f6b35df505af108669bd6ff8c351c970130eb45
	* lang/qt/src/job.cpp, lang/qt/src/job_p.h (getJobPrivate): Replace with
	two overloads for non-const pointer and const pointer to Job.
	* lang/qt/src/job_p.h (jobPrivate): Replace with two template functions
	for non-const pointer and const pointer to Job.

2023-06-16  Andre Heinecke  <aheinecke@gnupg.org>

	qt, cpp: Support larger size-hint on 32 bit builds.
	+ commit 5811d069d3b391e9fd77c1062a2d96be41645422
	* NEWS: Mention this.
	* lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::setSizeHint): New.
	* lang/qt/src/qgpgmedecryptjob.cpp,
	 lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
	 lang/qt/src/qgpgmedecryptverifyjob.cpp,
	 lang/qt/src/qgpgmeencryptjob.cpp,
	 lang/qt/src/qgpgmesignencryptjob.cpp,
	 lang/qt/src/qgpgmesignjob.cpp,
	 lang/qt/src/qgpgmeverifydetachedjob.cpp,
	 lang/qt/src/qgpgmeverifyopaquejob.cpp: Set size for input IODevice.

	cpp: Expose gpgme_data_set_flag through cpp API.
	+ commit cbcea4a09b1309a4bd822247a8dfcdcb73041f9c
	* lang/cpp/src/data.cpp (Data::setFlag): New.
	* lang/cpp/src/data.h: Update accordingly.
	* NEWS: Mention this.

2023-06-15  Werner Koch  <wk@gnupg.org>

	core: Send a input-size-hint for gpgsm.
	+ commit 91bbb1e482da783b4d1b9d5f663a1a0af77fc0a4
	* src/engine-gpgsm.c (send_input_size_hint): New.
	(gpgsm_decrypt): Send hint.
	(gpgsm_encrypt): Send hint.
	(gpgsm_sign): Send hint.
	(gpgsm_verify): Send hint.

	tests: Add option --cancel to run-encrypt.
	+ commit 8796456d235d2d7a8a1ce7337abc1d4d149bcf9a
	* tests/run-encrypt.c (cancel_after_progress): New.
	(progress_cb): Take care of it.
	(main): Add option --cancel.

	core: Use 64 bit instead of gpgme_off_t for some internal functions.
	+ commit eb68948c438814b99b81adf44b674738d0b1be34
	* src/conversion.c (_gpgme_string_to_off): Return an u64 value.
	* src/data.c (_gpgme_data_get_size_hint): Ditto.
	(gpgme_data_set_flag): Use u64 for io-buffer-size due to string_to_off
	change.
	* src/data.h (struct gpgme_data): Change size_hint to u64.
	* src/engine-gpg.c (add_input_size_hint): Replace gpgme_off_t by u64.

2023-06-13  Andre Heinecke  <aheinecke@gnupg.org>

	Fix definition of GPG_ERR_ENABLE_GETTEXT_MACROS.
	+ commit 7e6d51aa6fc97bed12486540167e9b710c9a3378
	* configure.ac: Add missing value.

2023-06-01  Ingo Klöcker  <dev@ingo-kloecker.de>

	doc,cpp: Treat GPG_ERR_FULLY_CANCELED as canceled.
	+ commit 7990f70107bc8487f954c6885436a7661e162929
	* doc/gpgme.texi (GPG_ERR_FULLY_CANCELED): New.
	* lang/cpp/src/context.cpp (Error::isCanceled): Also return true for
	GPG_ERR_FULLY_CANCELED.

2023-05-30  Biswapriyo Nath  <nathbappai@gmail.com>

	cpp,python: Respect --disable-gpg-test for tests.
	+ commit e2103be390764f62b21a4e5d4fa90a7b78326787
	lang/cpp/Makefile.am (SUBDIRS): Depend tests in RUN_GPG_TESTS.
	lang/python/Makefile.am (SUBDIRS): Ditto.

2023-05-30  Werner Koch  <wk@gnupg.org>

	core: For key signing and uid revoking allow an empty user id.
	+ commit fbc3963d6229853fe9fb1fd599ef39ed0fe2eae6
	* src/engine-gpg.c (gpg_keysign): Required USERID to be non-empty.

2023-05-23  Werner Koch  <wk@gnupg.org>

	python: Fix wrong use of write.
	+ commit 36a68bc5308c0b4a541ca6adea5d3635217e8af2
	* lang/python/helpers.c (pyPassphraseCb): Use gpgme_io_writen.
	(_gpg_interact_cb): Ditto.
	* lang/python/helpers.h (write) [W32]: Remove bad write macro.

2023-05-16  NIIBE Yutaka  <gniibe@fsij.org>

	build: Sync to libtool from libgpg-error for 64-bit Windows.
	+ commit e622e36f1f32641c66b28a0de95c75ae35f6ca05
	* build-aux/ltmain.hs: Update from libgpg-error.

2023-04-26  NIIBE Yutaka  <gniibe@fsij.org>
	    Ingo Klöcker

	doc: Fix Python example code.
	+ commit d44a473e27160a35268789e14dccd0ad55af0690
	* lang/python/doc/src/gpgme-python-howto.org: Fix chmod race.
	* lang/python/examples/howto/export-secret-key.py: Likewise.
	* lang/python/examples/howto/export-secret-keys.py: Likewise.
	* lang/python/examples/howto/temp-homedir-config.py: Likewise.

2023-04-20  Werner Koch  <wk@gnupg.org>

	Release 1.20.0.
	+ commit 451ed47434c5ffd2916adae25e5a128606b5ef98


	core: Support the new macOS Homebrew location.
	+ commit 7351ef32ce7c04d20ee32fc9b645a1931b3b0aba
	* src/posix-util.c (find_executable): Extend the path.

2023-04-19  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,qt: Simplify check for moc.
	+ commit a14155d2c1b2ddc167dbf278faf1d6b469575492
	m4/qt6.m4: Remove alternative checks for moc that were taken over from
	Qt 5 and that are obsolete for Qt 6.

	Update NEWS.
	+ commit e80bf34bf86f6f183145c31d598dda41c0496a4d
	* NEWS: Add news for recent changes

2023-04-18  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Fix Key::canSign()
	+ commit 5bd84cfd3f092703bb4b9b993be7d89ca13b36b0
	* lang/cpp/src/key.h (canReallySign): Deprecate.
	* lang/cpp/src/key.cpp (canSign): Remove workaround. Use implementation
	of canReallySign.
	(canReallySign): Use canSign().
	(operator<<): Use canSign().

2023-04-17  Werner Koch  <wk@gnupg.org>

	core: Avoid printf format warnings due to gpgme_ssize_t.
	+ commit 7d1159c1e99bb1bae0ab698c85105dcdcb95b7ea
	* src/debug.h (_trace_sysres_ssize_t): Cast arg.

	core,w32: Fix invocation of gpgtar.
	+ commit 0c29119e061cbdcb7342380938a25af91290f1a0
	* src/dirinfo.c (EXEEXT_S): New.
	(get_gpgconf_item): Append ".exe" to gpg-wks-client and gpgtar.

	* src/gpgme-w32spawn.c (mystderr): Add code to ease debugging.

2023-04-06  NIIBE Yutaka  <gniibe@fsij.org>

	build: Update gpg-error.m4.
	+ commit 806a5d18b988449fbaa3c2e6380acf3ae4580f4a
	* m4/gpg-error.m4: Update from libgpg-error master.

2023-04-04  Ingo Klöcker  <dev@ingo-kloecker.de>

	w32: Always use UTF-8 for localized texts.
	+ commit d256ba7cc57d9bfcfa05fb05cf66dc992efbb695
	* configure.ac: Define GPG_ERR_ENABLE_GETTEXT_MACROS.
	* src/version.c (do_subsystem_inits) [W32]: Switch gettext to UTF-8.

2023-03-27  Werner Koch  <wk@gnupg.org>

	core: Minor code cleanup.
	+ commit 34cc7daba12a2a6baa3cfa337762656c210686fa
	* src/engine-gpg.c (build_argv): Remove superfluous tes.

2023-03-27  Ingo Klöcker  <dev@ingo-kloecker.de>

	core: Initialize error variable.
	+ commit b608c084b9220d8ed288eb916e88a236abac0707
	* src/engine-gpg.c (build_argv): Initialize err.

2023-03-21  Werner Koch  <wk@gnupg.org>

	core,cpp: Add new key flags to gpgme_subkey_t.
	+ commit 6d21256c9220df05bf92a695a787dde13fe44ca7
	* src/gpgme.h.in (struct _gpgme_subkey): Add bit flags can_renc,
	can_timestamp, adn is_group_owned. Reduce size of _unused.
	* src/keylist.c (set_subkey_capability): Set them.
	* tests/run-keylist.c (main): Print them.

	* lang/cpp/src/key.h (Subkey::canRenc): New.
	(Subkey::canTimestamp): New.
	(Subkey::isGroupOwned): New.
	* lang/cpp/src/key.cpp: Implement new methods.
	(Subkey::isQualified): Print them.
	(std::ostream &operator<<): Print them.

2023-03-17  Werner Koch  <wk@gnupg.org>

	Release 1.19.0.
	+ commit 96a30fdf30626a7cefd9c9e620a60817ef44fde2


2023-03-17  Ben Greiner (bnavigator)  <unknown@dev.gnupg.org>

	python: Update python.m4 configure script.
	+ commit d086653cc346d5634bc742d5586e927fc9ee57cf
	* configure.ac: Unset PYTHON_LIBS.  Support python 3.10.
	* m4/python.m4: Find correct version string for python >= 3.10.

2023-03-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	tests: Package the ownertrust file.
	+ commit e50724e1bbe55678dfcd2a1ea75157f6514fc58a
	tests/gpg/Makefile.am (EXTRA_DIST): Add ownertrust.txt.

2023-03-08  Werner Koch  <wk@gnupg.org>

	core: Also detect legacy X.509 v0 certificates.
	+ commit c1f6535f144dedfbf5507f850d4da5b61fd5ec74
	* src/data-identify.c (basic_detection): Loose the detection of X.509
	certs.

	tests: Add option --binary to run-verify.
	+ commit 76351c4877d60799a35afccd87037d5dd0871262
	* tests/run-verify.c (main): Set encoding.

2023-02-14  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Add signals for file-based and data-based progress.
	+ commit 73e46b34658c0130de5ab9e3f4ce1ac4ee35c5e2
	* lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
	signals fileProgress and dataProgress.
	* lang/qt/src/encryptarchivejob.h (EncryptArchiveJob): Ditto.
	* lang/qt/src/signarchivejob.h (SignArchiveJob): Ditto.
	* lang/qt/src/signencryptarchivejob.h (SignEncryptArchiveJob): Ditto.
	* lang/qt/src/job_p.h (emitArchiveProgressSignals): New.
	* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
	(QGpgMEDecryptVerifyArchiveJob::QGpgMEDecryptVerifyArchiveJob): Emit
	appropriate signal when receiving Job::rawProgress signal.
	* lang/qt/src/qgpgmeencryptarchivejob.cpp
	(QGpgMEEncryptArchiveJob::QGpgMEEncryptArchiveJob): Ditto.
	* lang/qt/src/qgpgmesignarchivejob.cpp
	(QGpgMESignArchiveJob::QGpgMESignArchiveJob): Ditto.
	* lang/qt/src/qgpgmesignencryptarchivejob.cpp
	(QGpgMESignEncryptArchiveJob::QGpgMESignEncryptArchiveJob): Ditto.

	qt: Add simple and extended progress signals replacing old signal.
	+ commit ea6f15ed602eeb9fa87766ba88acc78361a14b38
	* lang/qt/src/job.h (Job): Add signals jobProgress and rawProgress.
	Deprecate signal progress.
	* lang/qt/src/multideletejob.cpp (MultiDeleteJob::slotResult): Emit
	new progress signals.
	* lang/qt/src/qgpgmerefreshsmimekeysjob.cpp
	(QGpgMERefreshSMIMEKeysJob::slotStatus): Ditto.
	* lang/qt/src/threadedjobmixin.h (ThreadedJobMixin::showProgress): Use
	modern overload of QMetaObject::invokeMethod to forward the progress
	signal and add the value of what. Add forwarding of progress to the new
	signals.

	* lang/qt/tests/t-encrypt.cpp (EncryptionTest::testProgress): Test
	the new signals instead of the deprecated one.

2023-02-10  Werner Koch  <wk@gnupg.org>

	core: Switch to logging via gpgrt.
	+ commit 9c5506fde701f637381614dcfe22e3f9dc82955d
	* src/debug.c (errfp): Remove.
	(debug_init): Factor some code out to ...
	(safe_to_use_debug_file): new.
	(tid_log_callback): New.
	(debug_init): Rewrite to make use of gpgrt logging.
	(_gpgme_debug): Ditto.
	(_gpgme_debug_end): Remove extra LF testing code.
	* src/dirinfo.c (get_gpgconf_item): Remove now unneeded LFs.  Realign
	output.

2023-02-10  Ingo Klöcker  <dev@ingo-kloecker.de>

	tests: Fix cleaning up at the end of the test.
	+ commit 21283dfd1be1e56bc174cf5f12461888af7ab8b5
	* tests/gpg/t-import.c (main): Unref key and release context.

	core: Allow finalization of signature verification of unencrypted data.
	+ commit 41dc3bd22a3e0001abec8f2bea79b40ee5ad00be
	* src/decrypt-verify.c (decrypt_verify_status_handler): Call
	_gpgme_verify_status_handler on EOF even if
	_gpgme_decrypt_status_handler returned NO DATA error.

	* tests/gpg/t-decrypt-verify.c (normal_signed_message): New.
	(main): Add test with signed, but not encrypted data.

2023-02-09  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Improve debug output of some enums.
	+ commit 3aaed9cfbfd6821b2e812fbdd24448953d6ca279
	* lang/cpp/src/verificationresult.cpp (operator<<): Fix output of
	Signature::PKAStatus which doesn't represent flags. Print corresponding
	name of enum value if Signature::Summary or Notation::Flags are 0.

	tests: Stop daemons after setting up test environment.
	+ commit 7098c14b231113055535abb14b4cde0c845f8728
	* lang/python/tests/Makefile.am, lang/qt/tests/Makefile.am,
	tests/gpg/Makefile.am, tests/json/Makefile.am (pubring-stamp): Call
	`gpgconf --kill all` after importing test keys.

2023-02-08  Ingo Klöcker  <dev@ingo-kloecker.de>

	tests: Extend tests with an ultimately trusted key.
	+ commit fcefc78f749a8f39cc587636647b24f8fa48efad
	* tests/gpg/Makefile.am (gpg-sample.stamp, pubring-stamp): Unify usage
	of tabs.
	(pubring-stamp): Import owner trust values.
	* tests/gpg/ownertrust.txt: New.
	* tests/gpg/t-decrypt-verify.c, tests/gpg/t-verify.c: Update expected
	values for signature summary and validity.
	* tests/gpg/t-keylist-secret-sig.c, tests/gpg/t-keylist-sig.c,
	tests/gpg/t-keylist.c: Update expected values of owner trust and uid
	validity.

	tests: Make t-edit-sign idempotent.
	+ commit 844e6cd3b923834727f042b92d6a9a2db86b3fed
	* tests/gpg/t-edit-sign.c (test_key, test_key_fpr, import_key,
	delete_key): New.
	(main): Remove key_fpr. Import test key to sign. Delete test key after
	test.

2023-02-02  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt,tests: Add test for the previous commit.
	+ commit 52fd0bcde47a676ee1021c870b50e2add78d6973
	* lang/qt/tests/t-decryptverify.cpp: New.
	* lang/qt/tests/Makefile.am: Add new test.

	cpp: Return successful verification for signed but not encrypted data.
	+ commit 1698eec2ae3ec1a97c739e892d9cf288c0ec4ccd
	* lang/cpp/src/context.cpp (Context::decrypt): Use decryptionResult().
	(Context::verifyDetachedSignature, Context::verifyOpaqueSignature):
	Use verificationResult().
	(Context::verificationResult): Ignore "no data" error for signed but
	not encrypted data.
	(Context::decryptAndVerify): Use decryptionResult() and
	verificationResult().

	qt: Add job for extracting encrypted and signed archives.
	+ commit c407728064ca0c9b2f365437c6a7f2acc40e6d84
	* lang/qt/src/decryptverifyarchivejob.cpp,
	lang/qt/src/decryptverifyarchivejob.h,
	lang/qt/src/decryptverifyarchivejob_p.h,
	lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
	lang/qt/src/qgpgmedecryptverifyarchivejob.h: New.
	* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
	function decryptVerifyArchiveJob
	* lang/qt/src/protocol_p.h (Protocol::decryptVerifyArchiveJob): ... and
	implement it.
	* lang/qt/src/Makefile.am: Update accordingly.

	* lang/qt/tests/run-decryptverifyarchivejob.cpp: New.
	* lang/qt/tests/Makefile.am: Add new test runner.

	core: Make usage of input size hint compatible with gpgtar.
	+ commit 7ad717f6ba00046a26a99d015d701a178ca30630
	* src/engine-gpg.c (add_input_size_hint): Use add_gpg_arg_with_value
	to add the --input-size-hint option.

	cpp: Update decryption flags.
	+ commit b3bdf14b37a313c21de61168e5e7545ab08fea13
	* lang/cpp/src/context.h (DecryptArchive): New flag.

	qt: Allow checking if the sign/encrypt archive jobs are supported.
	+ commit 55c948866fb8bf4adbf0c8f53edf51a4075b753e
	* lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h
	(isSupported): New.
	* lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h
	(isSupported): New.
	* lang/qt/src/signencryptarchivejob.cpp,
	lang/qt/src/signencryptarchivejob.h (isSupported): New.

	* lang/qt/tests/run-encryptarchivejob.cpp (main),
	lang/qt/tests/run-signarchivejob.cpp (main): Check if jobs are
	supported.

	cpp: Add const-overloads of version comparison operators.
	+ commit 84780646910cdd91555a368650e3d92cf52b86bd
	* lang/cpp/src/engineinfo.h (EngineInfo::Version): Add const-overloads
	of all comparison operators.

	core: Allow usage of gpgtar also for new enough gpg 2.2.
	+ commit 7f541547fc1783bb9ea119695fb76e2000bdfcf8
	* src/engine-gpg.c (have_usable_gpgtar): New.
