2021-06-24  Werner Koch  <wk@gnupg.org>

	Release 1.16.0.
	+ commit 1021c8645555502d914afffaa3707609809c9459


2021-06-22  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Extend SignKeyJob to create signatures with expiration date.
	+ commit ac4536990a4fed4a45a0851260c029e69d0cadf6
	* lang/qt/src/signkeyjob.h (SignKeyJob::setExpirationDate): New.
	* lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp
	(QGpgMESignKeyJob::setExpirationDate): New.
	* lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::Private): Add
	member m_expiration.
	(sign_key): Handle expiration date.
	(QGpgMESignKeyJob::start): Pass expiration date to sign_key.

	* lang/qt/tests/t-various.cpp
	(TestVarious::testSignKeyWithoutExpiration,
	TestVarious::testSignKeyWithExpiration): New.
	(TestVarious::initTestCase): Add "allow-weak-key-signatures" to
	gpg.conf.

	core: Allow specifying an expiration date for key signatures.
	+ commit 34d9defc42bacfaf2bb1ce70b2c3f0fdf0a106c3
	* src/context.h (struct gpgme_context): Add 'cert_expire'.
	* src/engine-gpg.c (append_args_from_cert_expire): New.
	(gpg_edit): Set option according to the new flag.
	* src/gpgme.c (gpgme_release): Free 'cert_expire'.
	(gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "cert-expire".

	* tests/gpg/Makefile.am (c_tests): Add new test.
	(gpg.conf): Write "allow-weak-key-signatures" to gpg.conf.
	* tests/gpg/t-edit-sign.c: New.

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

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

2021-06-18  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Add missing }
	+ commit 5340bb7ccfa7086054823fac48d178e6206d66c0
	* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Add missing }.

2021-06-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Add some error logging.
	+ commit 72de06417e32bd6573acd0b73a72fcf98232fe81
	* lang/qt/src/qgpgmenewcryptoconfig.cpp (setURLValueList): Log error
	if setting config value failed.

	qt: Do not set empty base DN as query of keyserver URL.
	+ commit 1dca8c2b3c6d6aa3dfd4215c911207f08a3bf9f1
	* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Only set non-empty
	base DN as URL query.

	qt: Fix API documentation.
	+ commit 0d03f31e07e683efbdb206cc3407bf222d71d8fe
	* lang/qt/src/signkeyjob.h (SignKeyJob::start,
	SignKeyJob::setUserIDsToSign, SignKeyJob::setCheckLevel): Fix
	documentation of parameters.

2021-06-14  Werner Koch  <wk@gnupg.org>

	core: New data flags "io-buffer-size" and "sensitive".
	+ commit fde20940b5ca6986dc12215209e8858601bb0c2e
	* src/data.c (_gpgme_data_release): Free buffers.
	(gpgme_data_seek): Adjust from renamed fields.
	(gpgme_data_set_flag): Implement new flags.
	(_gpgme_data_inbound_handler): Allow the use of a malloced buffer.
	(_gpgme_data_outbound_handler): Ditto.
	* src/data.h (BUFFER_SIZE): Move out of the struct definition.
	(struct gpgme_data): Remove pending filed and introduce inbound and
	outbound fields.

	* src/conversion.c (_gpgme_wipememory): New.  Taken from GnuPG.
	* src/cJSON.c (wipememory): Use this here too.

	* tests/run-decrypt.c (main): Add options "--large-buffers" and
	"--sensitive".

	core: Also detect AuthEnvelopedData (AEAD for CMS)
	+ commit ea290108e4df9f93eda79789d9cde5441d6bdd55
	* src/data-identify.c (basic_detection): Add OID.

2021-06-10  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Flush output after write for QProcess output.
	+ commit b3b75c37e2d3ef313031ceba8063feeccb0583ec
	* lang/qt/src/dataprovider.cpp (QIODeviceDataProvider::write): Call
	waitForBytesWritten.

	core,w32: Increase BUFFER_SIZE to 4096.
	+ commit ceb8387460b05de5c8cec6e02950176b09c4f38b
	* src/data.h (BUFFER_SIZE): Increase to 4096 for Windows.

2021-06-09  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Explicitly link libgpg-error.
	+ commit e6095e54718fe2463fb54adf5879d55e2fba4fef
	* lang/qt/src/Makefile.am (libqgpgme_la_LIBADD): Explicitly link
	gpg-error.

	core: Explicitly add GPG_ERROR_CFLAGS.
	+ commit 4041e2c62a10a149776a78e9221de6732693dad9
	* src/Makefile.am (AM_CFLAGS): Add GPG_ERROR_CFLAGS

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

	qt: Add separate logging category for result of config loading.
	+ commit 5bc4e23a57f149c2a7008c1b88ab3d398ce75e9b
	* lang/qt/src/qgpgme_debug.h: Make include guard match file name.
	* lang/qt/src/qgpgme_debug.h, lang/qt/src/qgpgme_debug.cpp
	(QGPGME_CONFIG_LOADING_LOG): New.
	* lang/qt/src/qgpgmenewcryptoconfig.cpp
	(QGpgMENewCryptoConfig::reloadConfiguration): Use new logging category.

	core: Fix a few checks for number of fields in keylist result parser.
	+ commit 5512133de4e9bca2defb744e2b42e55b5487d72c
	* src/keylist.c (keylist_colon_handler): Check for correct number of
	fields.

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

	qt: Add support for flags in LDAP server options.
	+ commit 27aa7c4a0fc8f7cef6219443cee0d040c2774746
	* lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Handle extended
	LDAP server option syntax.
	(portToString): New.
	(splitURL): Append flags to LDAP server option.

2021-05-28  Werner Koch  <wk@gnupg.org>

	tests: Improve the output of the run-keylist helper.
	+ commit 31eb45f01620d3e8811fe18460c281837bb3359f
	* tests/run-keylist.c (main): Print all infos from the primary key.

2021-05-27  NIIBE Yutaka  <gniibe@fsij.org>

	build: _DARWIN_C_SOURCE should be 1.
	+ commit 367b9e7488601cdf2cbec4d593a235c89f9a4281
	* configure.ac (*-apple-darwin*): Set _DARWIN_C_SOURCE 1.

	build: Update gpg-error.m4.
	+ commit 792a7e7f04ead7643561439b773e740549340b99
	* m4/gpg-error.m4: Update from libgpg-error.

2021-05-12  Werner Koch  <wk@gnupg.org>

	core: Allow for older compilers.
	+ commit aa98081356b5f7c9ef2422021e05aed01a7e4d46
	* tests/run-verify.c (main): Remove C99-only syntax.
	* tests/run-threaded.c (start_keylistings): Ditto.

	core: Make sure to stay ABI compatible.
	+ commit 88db69e1a964c9a36989e36fe5d972548432fb5c
	* src/gpgme.h.in (struct _gpgme_key_sig): Move trust_scope to the end
	of the struct.

2021-05-06  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Do not close stdout/stderr when destroying EditInteractor.
	+ commit 58a217b108e4c4c92306542bf9f2995254809ffb
	* lang/cpp/src/editinteractor.cpp (EditInteractor::Private): Initialize
	members 'state' and 'debug' in-class. Add member 'debugNeedsClosing'.
	(EditInteractor::Private::Private): Remove members initializers.
	Remember if 'debug' needs to be closed.
	(EditInteractor::Private::~Private): Only close 'debug' if it needs to
	be closed.

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

	qt: Extend SignKeyJob to create trust signatures.
	+ commit f0858e45b0be260730e742643e741547123d4287
	* lang/qt/src/signkeyjob.h (SignKeyJob::setTrustSignature): New.
	* lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp
	(QGpgMESignKeyJob::setTrustSignature): New.
	* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Handle trust signatures.
	(QGpgMESignKeyJob::start): Pass trust signature attributes to sign_key.
	(QGpgMESignKeyJob::setTrustSignature): New.

	qt: Pimpl QGpgMESignKeyJob.
	+ commit dae01f8185e0f1bc9c65d93078c7ccda0b79611f
	* lang/qt/src/qgpgmesignkeyjob.h: Remove unneeded includes. Include
	<memory>.
	(QGpgMESignKeyJob): Remove all member variables. Add pimpl pointer.
	* lang/qt/src/qgpgmesignkeyjob.cpp: Include <QString>. Don't include
	<memory>.
	(QGpgMESignKeyJob::Private): New.
	(QGpgMESignKeyJob::QGpgMESignKeyJob): Remove initialization of removed
	members. Initialize d.
	(QGpgMESignKeyJob::start, QGpgMESignKeyJob::setUserIDsToSign,
	QGpgMESignKeyJob::setCheckLevel, QGpgMESignKeyJob::setExportable,
	QGpgMESignKeyJob::setSigningKey, QGpgMESignKeyJob::setNonRevocable,
	QGpgMESignKeyJob::setRemark, QGpgMESignKeyJob::setDupeOk): Adapt to move
	of member variables to pimpl.

	cpp: Add support for trust signatures to sign key edit interactor.
	+ commit a8d7b9d16796efd6f21abaeb43ccaeb2388eb6e4
	* lang/cpp/src/gpgsignkeyeditinteractor.h,
	lang/cpp/src/gpgsignkeyeditinteractor.cpp
	(GpgSignKeyEditInteractor::setTrustSignatureTrust): New.
	(GpgSignKeyEditInteractor::setTrustSignatureDepth): New.
	(GpgSignKeyEditInteractor::setTrustSignatureScope): New.
	* lang/cpp/src/gpgsignkeyeditinteractor.cpp
	(GpgSignKeyEditInteractor::Private::Private): Initialize new member.
	(makeTable): Add new transition. Fix typos in existing transitions.
	(GpgSignKeyEditInteractor::action): Handle SET_TRUST_VALUE,
	SET_TRUST_DEPTH, and SET_TRUST_REGEXP.

	cpp: Add getters for the attributes of a trust signature.
	+ commit e391a08c6f96cd2d93c49b888459ee3f42058118
	* lang/cpp/src/key.h (TrustSignatureTrust): New enum.
	* lang/cpp/src/key.h, lang/cpp/src/key.cpp
	(UserID::Signature::isTrustSignature): New.
	(UserID::Signature::trustValue): New.
	(UserID::Signature::trustDepth): New.
	(UserID::Signature::trustScope): New.

	core: Extend gpgme_key_sig_t with trust signature members.
	+ commit 276187f6b62a73e92b1c20f589510f80ab9e88d2
	* src/gpgme.h.in (struct _gpgme_key_sig): Add fields 'trust_depth',
	'trust_value', and 'trust_scope'.
	* src/key.c (gpgme_key_unref): Free trust_scope.
	* src/keylist.c (keylist_colon_handler): Set the fields.
	* tests/run-keylist.c (main): Print the fields.

2021-03-11  Werner Koch  <wk@gnupg.org>

	doc: Add MIT license notice.
	+ commit 3ffd7bd4039d90cd15fbf76f8c116814bffdab7c
	* LICENSES: New.

	core: New flag GPGME_KEYSIGN_FORCE.
	+ commit 0821e2b1495e8944a5a1b5ba20ad5f403dde0dd0
	* src/gpgme.h.in (GPGME_KEYSIGN_FORCE): New.
	* src/engine-gpg.c (gpg_keysign): Implement.

	* tests/run-keysign.c (show_usage): Add option --force

2021-03-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Add method for getting config entries for components by entry name.
	+ commit fe900a41bf809b263f05d5df21b6ed7fbfb2bbbc
	* lang/qt/src/cryptoconfig.h, lang/qt/src/cryptoconfig.cpp
	(CryptoConfig::entry): Move implementation to cpp. Add overload not
	requiring a group name.

2021-02-01  Werner Koch  <wk@gnupg.org>

	core: Remove experimental feature GPGME_EXPORT_MODE_NOUID.
	+ commit c8fd8870b3bf089f99156448b7d1e59c1150f994
	* src/export.c (export_start): Remove GPGME_EXPORT_MODE_NOUID check.
	* src/engine-gpg.c (export_common): Ditto.

2021-01-08  Werner Koch  <wk@gnupg.org>

	Release 1.15.1.
	+ commit bb9880778fb16cdb6de83905e45bf6c965770013


	Make distcheck make target a bit more reliable.
	+ commit 133050b3fa28122a4b60dbbde698fb14379ccf95
	* Makefile.am (release): Do not pass --parallel

2021-01-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	core: Make listing of signatures work if only secret keys are listed.
	+ commit 5137d7fc214d0d9dcb947ccdc32fa87979f9a6d0
	* src/engine-gpg.c (gpg_keylist_build_options): Add "--with-sig-check"
	argument if signatures shall be listed.
	* tests/gpg/t-keylist-secret-sig.c: New.
	* tests/gpg/Makefile.am (c_tests): Add new test.

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

	cpp: Add const-overload of UserID::Signature::operator<
	+ commit a6220adf3081c9c848f6d0a6fc3774cb168ccf9c
	lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<):
	Add const-overload. Deprecate non-const overload.

2021-01-04  Andre Heinecke  <aheinecke@gnupg.org>

	Qt: Undeprecate QByteArray based start functs.
	+ commit 543e2106386f00ebecf7653e7896fa12a6e828ff
	* lang/qt/src/encryptjob.h, lang/qt/src/signjob.h (start):
	Undeprecate QByteArray based functions.

2020-12-03  NIIBE Yutaka  <gniibe@fsij.org>

	python: Fix key_export*.
	+ commit 7a4fe82a017b751ad756c93d2b9e31d7be045275
	* lang/python/src/core.py (key_export): Just raise an error.
	(key_export_minimal, key_export_secret): Ditto.

2020-11-24  NIIBE Yutaka  <gniibe@fsij.org>

	core: Call _gpgme_passphrase_status_handler when exporting keys.
	+ commit 53ac732bae46e1f883998e987fc84d4cababde12
	* src/export.c (export_status_handler): Call the handler.

2020-11-20  Andre Heinecke  <aheinecke@gnupg.org>

	Revert "cpp: Use portable off_t size_t"
	+ commit a5c4b030258714dd72a2e276114183309cad3ec3
	This reverts commit 88294023c196497cfa6737be262c8b0c09d2a3ce.

2020-11-20  NIIBE Yutaka  <gniibe@fsij.org>

	m4: Update with newer autoconf constructs.
	+ commit 4c6fd361593e22092770d120d68a18b4f70e0bb8
	* src/gpgme.m4: Replace AC_HELP_STRING to AS_HELP_STRING.

2020-11-18  Andre Heinecke  <aheinecke@gnupg.org>

	cpp: Use portable off_t size_t.
	+ commit 88294023c196497cfa6737be262c8b0c09d2a3ce
	* configure.ac: Configure cpp data.h.in
	* lang/cpp/src/Makefile.am: Generate data.h
	* lang/cpp/src/data.cpp, lang/cpp/src/data.h: Use portable
	types.
	* lang/qt/src/Makefile.am: Include build dir.
	* lang/qt/tests/makefile.am: Include build dir.

2020-11-18  Ingo Klöcker  <dev@ingo-kloecker.de>
	    Daniel Kahn Gillmor

	qt: Avoid empty "rem@gnupg.org" signature notations.
	+ commit 3c185c2159cdcc23f44773fe1cfb624b27598c80
	* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Check remark for being
	an empty string instead of a null QString.

2020-11-18  NIIBE Yutaka  <gniibe@fsij.org>

	build: Update with newer autoconf constructs.
	+ commit 223779dfdeb7808809372587fa135a8cc2616ce8
	* configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE.
	Use AS_HELP_STRING instead of AC_HELP_STRING.
	* m4/libtool.m4: Update from libgpg-error.
	* m4/gpg-error.m4: Update from libgpg-error.
	* m4/libassuan.m4: Update from libassuan.

2020-11-12  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Fix export of qDebug GpgME::Error overload.
	+ commit df5a89e6929479dc1bf301974fe7d607d024bc1f
	* lang/qt/src/debug.cpp: Include debug.h to get the export decl.

2020-11-12  Werner Koch  <wk@gnupg.org>

	build: Use ~/.gnupg-autogen.sh for the release targets.
	+ commit 27abdac25dcd4ba57e073a5de2f057830e623282
	* Makefile.am (sign-release): Use global config vars.

	Post release updates.
	+ commit 01a0d8ec1aa8543dca0986c6dcb5cabc535aae2c


	Release 1.15.0.
	+ commit feea38c89d4ceb40334f884da9ab07cc4b73e757
	* configure.ac: Bump LT versions to c=C35/A24/R0, cpp=C18/A13/R0,
	qt=C12/A5/R0.

2020-11-12  NIIBE Yutaka  <gniibe@fsij.org>
	    Louis Dupré Bertoni

	core: Support exporting secret keys.
	+ commit 3382ecb17eb5d2a373cf2eccb301854fff42f6aa
	* src/export.c (export_start): Set command handler for passphrase
	interaction for the case when it's secret keys.
	(export_ext_start): Likewise.

2020-11-12  NIIBE Yutaka  <gniibe@fsij.org>

	python: Fix a test for newer GnuPG (>= 2.3).
	+ commit 7139afc5cdc0d8203dc75d7c91fa94b704b3d64f
	* lang/python/tests/t-quick-subkey-creation.py: Specify RSA.

2020-11-11  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Add export macro for QDebug operator.
	+ commit 81f0dc7293a525af7cfbcb53cce050df718e0f91
	* lang/qt/src/debug.h: Add export macro.

2020-11-11  NIIBE Yutaka  <gniibe@fsij.org>

	qt: Allow build with older GnuPG (< 2.2.18).
	+ commit 276f3390e18b34e6211b4c75876a0ab4c10a5ac9
	* lang/qt/tests/t-remarks.cpp (initTestCase): Check gpg for
	allow-weak-key-signatures option.

2020-11-09  Werner Koch  <wk@gnupg.org>

	Require at least libgpg-error 1.36.
	+ commit eb99e8c483a70764408868602ef322602e9e72ce
	* configure.ac (NEED_GPG_ERROR_VERSION): Require 1.36.
	* src/cJSON.c: Remove code for older version.
	* src/engine.c (gpgme_get_engine_info): Ditto.
	* src/gpgme-json.c: Ditto.
	* src/op-support.c: Ditto.
	* src/util.h: Ditto.

2020-11-04  Ben Kibbey  <bjk@luxsci.net>

	Parse STATUS_CANCELED_BY_USER.
	+ commit 35ca460019ea29ae646d08c954d4d4bf2dc1e8e1
	* src/gpgme.h.in (GPGME_STATUS_CANCELED_BY_USER): New.
	* src/status-table.c (status_table_s): Add "CANCELED_BY_USER".
	* src/passphrase.c (_gpgme_passphrase_status_handler): Return
	GPG_ERR_CANCELED during GPGME_STATUS_CANCELED_BY_USER.

2020-11-03  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Make audit parameters of result signal optional.
	+ commit 0fee135997438c63ab30891ec7e662093ec57491
	lang/qt/src/quickjob.h (QuickJob::result): Make parameters
	auditLogAsHtml and audigLogError optional.

	cpp: Mark helper functions as static.
	+ commit b41f5fec1c42e0113ccbdbb7c258899793631b0a
	lang/cpp/src/key.cpp (find_subkey, verify_subkey, find_uid, verify_uid,
	find_signature, verify_signature): Mark as static.

	cpp: Make signatures belonging to the same user ID sortable.
	+ commit 6a6d2a27648490f08aaf0759a533aef08b32070d
	lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<):
	New.
	lang/cpp/src/key.cpp (signature_index): New.

2020-10-29  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Add support for revoke signature quick command.
	+ commit f042739d3a2ed23a90441a81782e4c3ac6ffb1c5
	* lang/qt/src/quickjob.h (QuickJob::startRevokeSignature): New.
	* lang/qt/src/qgpgmequickjob.h, lang/qt/src/qgpgmequickjob.cpp
	(QGpgMEQuickJob::startRevokeSignature): New.
	* lang/qt/src/qgpgmequickjob.cpp (revokeSignatureWorker): New.

	qt: Some minor cleanups.
	+ commit 60328c4690beb8a82f5a3cc0d35b434e151c6365
	* lang/qt/src/qgpgmequickjob.h: (GpgME::Key, QDateTime, QString):
	Remove superfluous forward declarations.
	(QGpgMEQuickJob): Remove superfluous second template argument. It is
	identical to the default.
	(QGpgMEQuickJob::result): Remove. It is already defined in the base
	class.

	cpp: Add support for gpgme_op_revsig.
	+ commit 4166d263e421cb4f98c4ca6bef549613c35e149e
	* lang/cpp/src/context.cpp, lang/cpp/src/context.h
	(Context::revokeSignature, Context::startRevokeSignature): New.
	* lang/cpp/src/context.cpp
	(getLFSeparatedListOfStrings, getLFSeparatedListOfUserIds): New.
	(getLFSeparatedListOfFingerprintsFromSubkeys): Extracted second part
	of function to getLFSeparatedListOfStrings.

	core: New function gpgme_op_revsig.
	+ commit f3407d0ee4e34ed33be18de5f886a4da2affbf9f
	* src/gpgme.h.in (gpgme_op_revsig_start, gpgme_op_revsig): New.
	(GPGME_REVSIG_LFSEP): New.
	* src/context.h (ctx_op_data_id_t): Add OPDATA_REVSIG.
	* src/revsig.c: New.
	* src/Makefile.am (main_sources): Add revsig.
	* src/libgpgme.vers, src/gpgme.def: Add gpgme_op_revsig and
	gpgme_op_revsig_start.
	* src/engine.h, src/engine.c: (_gpgme_engine_op_revsig): New.
	* src/engine-backend.h (engine_ops): Add 'revsig' and adjust all
	engine initializers.
	* src/engine-gpg.c (gpg_revsig): New.
	(_gpgme_engine_ops_gpg): Set revsig to gpg_revsig.
	* doc/gpgme.texi: Document new functions.
	* tests/run-keysign.c: Add option --revoke.

2020-10-28  NIIBE Yutaka  <gniibe@fsij.org>

	python: Handle the when case __doc__ is None.
	+ commit 089164a0c0d6024cbb133327d47a28ca3716cd56
	* lang/python/src/core.py (GpgmeWrapper): Check if None.

2020-10-23  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Add support for gpgme_cancel.
	+ commit 74c8131d809be49d64f482961fee1e6e0dbe4f4f
	* lang/cpp/src/context.cpp, lang/cpp/context.h
	(Context::cancelPendingOperationImmediately): New.
	* NEWS: Mention added API

	Add Assuan transaction that forwards status lines to another object.
	+ commit ff23e24063feb9e1628858fd32df37be557072a6
	* lang/cpp/src/Makefile.am: Add new files.
	* lang/cpp/src/interfaces/statusconsumer.h,
	lang/cpp/src/statusconsumerassuantransaction.cpp,
	lang/cpp/src/statusconsumerassuantransaction.h: New.
	* NEWS: Mention new API.

	qt: Add QDebug stream operator for GpgME::Error.
	+ commit b21cabb311803677104fa98809bc88b21243f358
	* lang/qt/src/Makefile.am: Add new files.
	* lang/qt/src/debug.h, lang/qt/src/debug.cpp: New.
	* NEWS: Mention it.

	cpp, qt: Add missing comparison operators for version info comparison.
	+ commit c3406462d11b4241d4feee9be08e0ebe4f2e0bfa
	* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<=,
	EngineInfo::Version::operator>=, EngineInfo::Version::operator!=):
	New.
	* lang/qt/tests/t-various.cpp (TestVarious::testVersion): Add tests for
	new comparison operators.
	* NEWS: Mention added API

	cpp, qt: Fix version info comparison.
	+ commit 2f53a2f4be86c0829213e2a9f846b7f8f0b106dc
	* lang/cpp/src/engineinfo.h
	(EngineInfo::Version::operator>(const Version &)): Fix logic.
	(EngineInfo::Version::operator>(const char *)): Use Version-overload of
	operator>.

	* lang/qt/tests/t-various.cpp: Add test.

2020-10-03  Werner Koch  <wk@gnupg.org>

	tests: Fix gcc incompatibility.
	+ commit 25e2d717f44682f83c483ceba6ba81bad7fc3e97
	* tests/json/t-json.c: Remove var definitions inside a for statement.

2020-10-01  NIIBE Yutaka  <gniibe@fsij.org>

	gpgsm: Fix leaked fd.
	+ commit fd904f87f8d43ad477b9d35d834f384e917b26fd
	* src/engine-gpgsm.c (gpgsm_new): Close gpgsm->diag_cb.server_fd.

2020-09-09  Werner Koch  <wk@gnupg.org>

	core: Fully implement the inquire callback for assuan_transact.
	+ commit e4ee706e270c38937afe26ce9f54d17d037cb86f
	* src/engine-assuan.c (inquire_cb): Implement returning data.

	* tests/opassuan/t-command.c (inq_cb): Send some test data.

2020-09-08  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Update the documentation of ListAllKeysJob.
	+ commit 973c8116c840b4f1e0c3c80a7956641550c3388d
	* lang/qt/src/listallkeysjob.h (ListAllKeysJob::start): Document that
	the mergeKeys argument is ignored with gpg >= 2.1.

	cpp: Update key with --with-secret instead of updating it twice.
	+ commit 3dd7377e120f10576b3b4334b6149f027ceec126
	* lang/cpp/src/key.cpp (Key::update): Call Context::key() only once
	with KeyListMode::WithSecret.

2020-09-07  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: List keys once with --with-secret instead of twice.
	+ commit 13bcc6680ac2030d45e4f36a64864bcd6a1d42a9
	* lang/qt/src/qgpgmelistallkeysjob.cpp
	(do_list_keys): Rename to do_list_keys_legacy and put into unnamed
	namespace.
	(merge_keys): Put into unnamed namespace.
	(list_keys): Rename to list_keys_legacy and put into unnamed namespace.
	(do_list_keys, list_keys): New.
	* lang/qt/tests/t-keylist.cpp (testListAllKeysSync): New.

	cpp: Add keylist mode WithSecret.
	+ commit 188cc9e9b553998d2a8ec52bd8282365e22bf400
	* lang/cpp/src/global.h (WithSecret): New.
	* lang/cpp/src/context.cpp (operator<<): Handle WithSecret.
	* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t,
	convert_from_gpgme_keylist_mode_t): Ditto.

	cpp: Add missing keylist modes.
	+ commit b714a6bbc8038c1b226bc920dd02ce8fbae7da8a
	* lang/cpp/src/util.h
	(add_to_gpgme_keylist_mode_t): Sort modes as in enum definition and
	add missing modes to check.
	(convert_from_gpgme_keylist_mode_t): Add missing handling of
	GPGME_KEYLIST_MODE_WITH_TOFU and GPGME_KEYLIST_MODE_WITH_KEYGRIP.

2020-09-03  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Copy some more subkey properties when merging keys.
	+ commit 4d87ea2851ae1156cfb1d754cf32b5c9073d4252
	* lang/cpp/src/key.cpp (Key::mergeWith): Also merge secret flag and
	keygrip

2020-08-28  Werner Koch  <wk@gnupg.org>

	qt: Fix an rfc2253 parser flaw.
	+ commit b088d81cefe45c16409085f1560ad1d4c235a696
	* lang/qt/src/dn.cpp (parse_dn_part): Fix parser.

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

	core: Add error handling to setexpire.
	+ commit f66f856c89b7c02e368afe2343de7cce50e6109e
	* src/genkey.c (setexpire, gpgme_op_setexpire_start,
	gpgme_op_setexpire): Move to ...
	* src/setexpire.c: New.
	* src/Makefile.am (main_sources): Add that file.
	* src/context.h (ctx_op_data_id_t): Add OPDATA_SETEXPIRE.

	* lang/qt/tests/t-various.cpp (testSetExpire): Test error handling.

2020-08-11  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Support changing expiry of subkeys.
	+ commit 4f2cd3a0c6a8f3633040ff0e8cca787b2bd61fb2
	* lang/qt/src/changeexpiryjob.h (ChangeExpiryJob::start): New overload
	that accepts subkeys (with empty implementation).
	* lang/qt/src/qgpgmechangeexpiryjob.h,
	lang/qt/src/qgpgmechangeexpiryjob.cpp (QGpgMEChangeExpiryJob::start):
	New overload that accepts subkeys.

2020-08-10  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Make private helper a file static.
	+ commit c813734c9ce0a77f5a9d463a6b16074e522cc2ce
	* lang/cpp/src/context.h, lang/cpp/src/context.cpp
	(Context::getLFSeparatedListOfFingerprintsFromSubkeys): Remove
	from Context; make it a static function instead

2020-08-06  Andre Heinecke  <aheinecke@gnupg.org>

	cpp: Use cstdlib getenv for portability.
	+ commit 0676d41ef57db4da469aa9b733f8965606b667ec
	* lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private):
	Use std::getenv.

2020-08-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Port to new setExpire()
	+ commit 89501509134ab9cff87219fcaee9c1a758efa2fe
	* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Use new
	setExpire() instead of edit() with GpgSetExpiryTimeEditInteractor

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

	qt: Add test for setExpire.
	+ commit 84c6b6e2fea1176991bd89ac421af492d4550d6e
	* lang/qt/tests/t-various.cpp (TestVarious::testSetExpire): New.

	cpp: Add support for gpgme_op_setexpire.
	+ commit aa03205fe5e8a8fa2b0feecb8a142aff2a1b25df
	* lang/cpp/src/context.cpp
	(Context::setExpire, Context::startSetExpire): New.
	(Context::getLFSeparatedListOfFingerprintsFromSubkeys):
	New helper.
	* lang/cpp/src/context.h
	(Context::SetExpireFlags): New enum.
	(Context::setExpire, Context::startSetExpire): Add
	prototypes.
	(Context::getLFSeparatedListOfFingerprintsFromSubkeys):
	Add as private helper.

	cpp: Add ostream operator for subkey.
	+ commit 197ba151e70c0aef35ee713b119d49e4637c1d05
	* lang/cpp/src/key.cpp (Subkey): Add ostream operator.
	* lang/cpp/src/key.h: Update accordingly.

2020-08-04  Ingo Klöcker  <dev@ingo-kloecker.de>
	    Andre Heinecke  <aheinecke@gnupg.org>

	core: New function gpgme_op_setexpire.
	+ commit db82e99a8a40c57a237dad030928d0fcf6b03ad7
	* src/gpgme.h.in (gpgme_op_setexpire_start, gpgme_op_setexpire): New.
	* src/libgpgme.vers, src/gpgme.def: Add new functions.
	* src/genkey.c (setexpire): New.
	(gpgme_op_setexpire_start, gpgme_op_setexpire): New.
	* src/engine.h, src/engine.c: (_gpgme_engine_op_setexpire): New.
	* src/engine-backend.h (engine_ops): Add 'setexpire' and adjust all
	engine initializers.
	* src/engine-gpg.c (gpg_setexpire): New.
	(_gpgme_engine_ops_gpg): Set setexpire to gpg_setexpire.
	* doc/gpgme.texi: Document new functions.
	* tests/run-genkey.c: Add option --setexpire.

2020-07-16  Werner Koch  <wk@gnupg.org>

	Release 1.14.0.
	+ commit 6d7bf78ca5af35b0860aa20b12f799ab03752190
	* configure.ac: Bump LT versions to c=C34/A23/R0 cpp=C17/A11/R0
	qt=C11/A4/R0.

2020-07-16  Andre Heinecke  <aheinecke@gnupg.org>

	qt, cpp: Support export modes.
	+ commit 690d967196d9f888e2b7c12d8c77ad752d7e15bf
	* lang/cpp/context.cpp, lang/cpp/context.h
	(Context::startPublicKeyExport, Context::exportPublicKeys): Extend
	with flags paramenter.
	(Context::ExportMode): New.
	* lang/qt/src/exportjob.h (ExportJob::setExportMode): New.
	* lang/qt/src/qgpgmeexportjob.cpp, lang/qt/src/qgpgmeexportjob.h:
	Update accordingly.

2020-07-16  Werner Koch  <wk@gnupg.org>

	core: Also allow GPGME_EXPORT_MODE_SSH for gpgme_op_export.
	+ commit dfeedcc28d0406f5ad8ff8ad397e1ef930676535
	* src/export.c (export_start): Allow that mode.

	core: New export mode to export as OpenSSH public key.
	+ commit 7f9e0ca57b29cc96bd1ca717d891c11db7435c5a
	* src/gpgme.h.in (GPGME_EXPORT_MODE_SSH): New.
	* src/export.c (export_ext_start): Allow for new mode.
	* src/engine-gpg.c (export_common): Implement.
	* tests/run-export.c (status_cb): New.
	(main): New options --status and --ssh.

2020-07-15  Werner Koch  <wk@gnupg.org>

	core: Deprecate the non-working trustlist functions.
	+ commit 858909168298e8c6fb6f9f9009be2ee2d0d9f0ec
	* src/gpgme.h.in: Clarify that the trustlist function should not be
	used.
	* src/engine.c (_gpgme_engine_op_trustlist): Always return an error.
	* src/engine-backend.h (struct engine_ops): Remove trustlist member.
	* src/engine-gpg.c (gpg_trustlist): Remove.
	(struct engine_ops): Remove that member.  Also in all other engines.
	* tests/gpg/t-trustlist.c: Remove.
	* lang/python/tests/t-trustlist.py: Remove.

	core: New keylist mode GPGME_KEYLIST_MODE_WITH_KEYGRIP.
	+ commit c8048bf8eb988f22b20215197f4739bedafc4264
	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_KEYGRIP): New.
	* src/gpgme-json.c (op_keylist): New flag "keygrip".
	* src/engine-gpg.c (gpg_keylist_build_options): Pass the options.

	* lang/cpp/src/global.h (WithKeygrip): New.
	* lang/cpp/src/context.cpp: Add check.
	* lang/cpp/src/key.cpp (Key::update): Handle WithKeygrip.
	* lang/cpp/src/verificationresult.cpp: Ditto.
	* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Ditto.

2020-07-14  Werner Koch  <wk@gnupg.org>

	python: Workaround for a regression in GnuPG 2.2.21.
	+ commit 32b80cf3c7d278ddf27117617a3e95e4a12c28c8
	* lang/python/tests/support.py (is_gpg_version): New.
	* lang/python/tests/t-encrypt-sym.py: Add workaround.

2020-06-09  Andre Heinecke  <aheinecke@gnupg.org>

	doc: Explain verify_result_t.status == 0 more.
	+ commit 88f3202521d422d94bfd79e61bde00707d6f28c9
	* doc/gpgme.texi (gpgme_verify_result_t): Explain
	GPGME_STATUS_NO_ERROR more clearly.

2020-06-05  Werner Koch  <wk@gnupg.org>

	core: Fix setting of the chain_model signature result.
	+ commit 728ead8ebd426307c6b3f1e3794b3a7ab585eebd
	* src/verify.c (parse_trust): Fix detection of "chain" keyword.

2020-05-11  NIIBE Yutaka  <gniibe@fsij.org>

	tests: Remove/change tests for GnuPG 2.3 with no gpg.keyserver.
	+ commit 0cc040e82f9943792a58e73dbc97e20d312858fb
	* lang/qt/tests/t-config.cpp (testKeyserver): Remove.
	* tests/gpg/t-gpgconf.c (main): Test with dirmngr.keyserver.

2020-05-08  Andre Heinecke  <aheinecke@gnupg.org>

	w32: Explicitly link ws2_32.
	+ commit 52f930c1ed7eee6336a41598c90ef3605b7ed02b
	* src/Makefile.am (gpgme_w32_extra_libs): New.
	(libgpgme_la_LIBADD, libgpgme_glib_la_LIBADD): Use it.

2020-05-08  dupgit  <olivier.delhomme@free.fr>

	GPGME_CREATE_NOEXPIRE is only available since 1.9.0.
	+ commit 49c13854f3bf49bc0bf18c6ae6bbf9d66b6625c2
	 * doc/gpgme.texi: Fixes version number from 1.8.0 to
	   1.9.0 for GPGME_CREATE_NOEXPIRE.

	GnuPG-Bug-Id: T4922

2020-05-08  Werner Koch  <wk@gnupg.org>

	core: Make sure the keygrip is available in WITH_SECRET mode.
	+ commit 004fdf61c8b94f646409f4d5855adf8e43b29627
	* src/engine-gpg.c (gpg_keylist_build_options): Send --with-keygrip
	if --with-secret is used.

2020-05-08  Andre Heinecke  <aheinecke@gnupg.org>

	tests, json: Do not check for keygrip of pubkeys.
	+ commit 5c0d1c7f76c95bad8bce4ad3bafd121ec5101d3c
	* tests/json/t-keylist-secret.out.json: Do not check for keygrip
	of bravo key.

2020-03-27  NIIBE Yutaka  <gniibe@fsij.org>

	tests: Add ECC key generation for tests/gpgsm.
	+ commit 3658e2df65d321e334a8c96b4d252a4be20354bd
	* tests/gpgsm/t-genkey.c (check_result): New.

	build: Fix library dependency.
	+ commit 71ef398bfd72d505290376d82575eb4f3aece035
	* src/Makefile.am (gpgme_tool_LDADD): Add @GPG_ERROR_LIBS@.

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

	core: New context flags "include-key-block" and "auto-key-import".
	+ commit 3afa534645e3826c95e7c70d7ae61ffa2d63acec
	* src/gpgme.c (gpgme_set_ctx_flag): Add flags "include-key-block" and
	"auto-key-import".
	(gpgme_get_ctx_flag): Ditto.
	* src/context.h (struct gpgme_context): Add flags include_key_block
	and auto_key_import.
	* src/engine-gpg.c (struct engine_gpg): Likewise.
	(gpg_set_engine_flags): Set the flags for gpg versions >= 2.2.20.
	(gpg_decrypt): Set option according to the new flags.
	(gpg_encrypt): Ditto.
	(gpg_encrypt_sign): Ditto.
	(gpg_sign): Ditto.
	(gpg_verify): Ditto.

	tests/run-verify: Add option --auto-key-import.
	tests/run-sign: add option --include-key-block.

2020-03-03  Bernhard Reiter  <bernhard@intevation.de>

	python: fix minor typo in howto.
	+ commit 11edc073a3d2bf72e49827e97349cb364612f300


2020-02-19  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Change logging category.
	+ commit ec9690cf5ce85f43997ac2a3abd3e728012aee4a
	* lang/qt/src/*: Change logging category to macro to QGPGME_LOG.

	qt: Log execution args of gpg-card.
	+ commit ba08aadfa7d254f459f51470a7331c6cc2de5199
	* lang/qt/src/qgpgmegpgcardjob.cpp (do_work): Log call.

2020-02-12  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Add dummy context to make mixin happy.
	+ commit 9ca679c15054fbc1cc20e428a6ddf6a67dd0491e
	* lang/qt/qgpgmegpgcardjob.cpp (QGpgMEGpgCardJob): Add context.

	qt: Add GpgCardJob following the job pattern.
	+ commit 77feaa451074741c2d07051915bc23d8b8377242
	* lang/qt/src/Makefile.am: Add new files.
	* lang/qt/src/job.cpp (GpgCardJob): Add impl stuff.
	* lang/qt/src/protocol.h (gpgCardJob): Get one.
	* lang/qt/src/qgpgmebackend.cpp,
	lang/qt/src/qgpgmebackend.h: Add helpers to get the job.
	* lang/qt/src/qgpgmegpgcardjob.cpp,
	lang/qt/src/gpgcardjob.h,
	lang/qt/src/qgpgmegpgcardjob.h: New.

2020-01-29  Andre Heinecke  <aheinecke@gnupg.org>

	Do not test for a bug in older GnuPG versions.
	+ commit cff600f1f65a2164ab25ff2b039cba008776ce62
	* tests/json/t-keylist-secret.out.json

2020-01-24  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	m4/python: Scan for python 3.8 as well.
	+ commit 414938cfedbdb97b83d00e8619dec9502096be22
	* m4/python.m4: Scan for python 3.8 as well.

2020-01-17  Andre Heinecke  <aheinecke@gnupg.org>

	core: Add MacOS fallbacks to look for binaries.
	+ commit 39052913f2154fa8e9575727e27d4101ef8b6460
	* src/posix-util.c (find_executable): New.
	(walk_path_str): Factored out from walk_path.
	(walk_path): Replaced by find_executable.
	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use find_executable.

2019-12-13  Andre Heinecke  <aheinecke@gnupg.org>

	cpp, qt: Use uidhash to select uids for signing.
	+ commit 194272dbc3e326cc32c1464bc6fda0c0d10b5559
	* lang/cpp/src/gpgsignkeyeditinteractor.cpp (action):
	Use uidhash instead of number.
	(GpgSignKeyEditInteractor::setKey): New.
	* lang/cpp/src/gpgsignkeyeditinteractor.h: Update accordingly.
	* lang/cpp/src/key.h, lang/cpp/src/key.cpp: Wrap uidhash.
	* lang/qt/src/qgpgmesignkeyjob.cpp: Set the key.

2019-12-13  Werner Koch  <wk@gnupg.org>

	core: Extend gpgme_user_id_t with uidhash member.
	+ commit 5eeae535ee0df981d8ae8b758b5bb0d190c7fd89
	* src/gpgme.h.in (struct _gpgme_user_id): Add field 'uidhash'.
	* src/key.c (gpgme_key_unref): Free it.
	* src/keylist.c (keylist_colon_handler): Set it.
	* tests/run-keylist.c (main): Print it.

2019-12-11  Andre Heinecke  <aheinecke@gnupg.org>

	Revert "doc: Remove UI Server documentation"
	+ commit 7e7eaf43424556c3c25edc7b67e760ab60de55ce
	This reverts commit 1b2ad3b73c37d0583b8e438b4707dca60e26ae7e.

2019-12-06  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	gpg: Avoid error diagnostics with --override-session-key when verifying.
	+ commit ae4d7761a15b82eb98b0bcc72af2ae2e8973e1f9
	* src/engine-gpg.c (gpg_decrypt): only send --no-keyring when we are
	not verifying.

2019-12-04  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	gpgme-tool: Fix help text for INCLUDE_CERTS.
	+ commit c0c97dbbe6e08d338ba56abec023bd57287e3239
	* src/gpgme-tool.c (hlp_include_certs): added missing newline.

2019-11-27  Werner Koch  <wk@gnupg.org>

	core,w32: Silence compiler warnings.
	+ commit d480a3c8f3a3fff867b84fd8feca9f111ae4adc7
	* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Add some casts.

2019-11-12  Andre Heinecke  <aheinecke@gnupg.org>

	doc: Remove UI Server documentation.
	+ commit 1b2ad3b73c37d0583b8e438b4707dca60e26ae7e
	* doc/Makefile.am: Remove uiserver.texi
	* doc/gpgme.texi: Remove UI-Server mentions.
	* doc/uiserver.texi: Removed.

2019-11-08  NIIBE Yutaka  <gniibe@fsij.org>

	qt,tests: Take care for old DSA key using deprecated digest algo.
	+ commit c49324200734e8ee8524bc096195e24e8aae87cb
	* lang/qt/tests/t-remarks.cpp (initTestCase): Supply
	allow-weak-key-signatures flag for GnuPG 2.3, which
	normally rejects use of SHA1 digest.

2019-11-06  Andre Heinecke  <aheinecke@gnupg.org>

	qt, tests: Add check for supported versions.
	+ commit e7b5c6405da515101f62acce2837e6c0cc115b76
	* lang/qt/tests/t-encrypt.cpp (decryptSupported): Moved to
	t-support as loopbackSupported.
	* lang/qt/tests/t-remarks.cpp: Check for loopbackSupported.
	* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.h
	(loopbackSupported): New.

	qt, tests: Replace accidentally commited assert.
	+ commit 024edbbd3c0059654e13c1c6acf78456450469ab
	* lang/qt/test/t-remarks.cpp (testRemarkReplaceSingleUIDExportable):
	Use QVERIFY instead of assert.

	qt,tests: Add test to add an exportable certify.
	+ commit a56f6015e9518180237a70b8abc5ab9804212986
	* lang/qt/test/t-remarks.cpp (testRemarkReplaceSingleUIDExportable):
	New.

2019-11-06  NIIBE Yutaka  <gniibe@fsij.org>

	python: Fix how to generate documentation.
	+ commit 1b840a151ad7f9680ec5144da5efb0ee6c1dcf1f
	* lang/python/doc/Makefile.am: Explicitly write rules to generate rst
	and texinfo files.

2019-11-04  Andre Heinecke  <aheinecke@gnupg.org>

	qt, tests: Add testcase for multiple remarsk.
	+ commit 9cf4db1e5271ae1dd6f7ecb11513203cec368bc6
	* lang/qt/tests/t-remarks.cpp (testMultipleRemarks): New.

	cpp: Add API to obtain mutliple remarks.
	+ commit cb7668caeb71429afce1aded9128334182b233e1
	* lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::remarks): New.
	* NEWS: Mention this.

	qt,tests: Move remarks test out and extend it.
	+ commit db888b1cc05723423a3154fe89e6191812c9c869
	* lang/qt/tests/t-various.cpp (testRemarks): Move out.
	* lang/qt/tests/t-remarks.cpp: New.
	* lang/qt/tests/Makefile.am: Update accordingly.

	cpp: Fix dupe_ok state for single uid.
	+ commit 08933c183a4c299eb4696092d6d229f607fce985
	* lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable):
	Add transition from command to dupe_ok

2019-11-01  Andre Heinecke  <aheinecke@gnupg.org>

	qt: Allow adding empty remarks.
	+ commit d61491dd25d86a2bee54e4be29b715d97840be67
	* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Allow empty
	remarks.

	cpp: Minor optimization in remark lookup.
	+ commit 174caaa6f53e1125724a47dad3a5c991298aee6d
	* lang/cpp/src/key.cpp (UserID::remark): Use C-API.
[--snip--]
