<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src/engine-gpg.c, branch gniibe/t8264</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gniibe%2Ft8264</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gniibe%2Ft8264'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2026-05-11T12:19:32Z</updated>
<entry>
<title>Make GPGME_DECRYPT_SESSION_HASH also work for gnupg 2.2.55</title>
<updated>2026-05-11T12:19:32Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-05-11T12:19:32Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=a05c27e670b72c9afe5dee38b2c5bb02654d7f52'/>
<id>urn:sha1:a05c27e670b72c9afe5dee38b2c5bb02654d7f52</id>
<content type='text'>
* src/engine-gpg.c (have_usable_session_hash): New.
(gpg_decrypt): Use here.
</content>
</entry>
<entry>
<title>New decryption flag GPGME_DECRYPT_SESSION_HASH.</title>
<updated>2026-04-23T12:29:53Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-04-23T12:29:53Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=63f18298d3f5c5f7551301b1e183890c503c644a'/>
<id>urn:sha1:63f18298d3f5c5f7551301b1e183890c503c644a</id>
<content type='text'>
* src/gpgme.h.in (_gpgme_op_decrypt_result): Add field session_hash.
(gpgme_decrypt_flags_t): Add flag GPGME_DECRYPT_SESSION_HASH.
(gpgme_status_code_t): Add flags GPGME_STATUS_SESSION_HASH.
* src/status-table.c (status_table): Add "SESSION_HASH".
* src/decrypt.c (release_op_data): Free new field.
(_gpgme_decrypt_status_handler): Handle new status code.
* src/engine-gpg.c (gpg_decrypt): Implement
  GPGME_DECRYPT_SESSION_HASH.

* tests/run-decrypt.c (print_result): Print session_hash.
(main): Add option --show-session-hash.
</content>
</entry>
<entry>
<title>Allow setting export filters when exporting keys</title>
<updated>2026-01-14T15:09:19Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2026-01-14T12:58:49Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=1823e06216f2e9eee302ae1233d635a4a92c03f6'/>
<id>urn:sha1:1823e06216f2e9eee302ae1233d635a4a92c03f6</id>
<content type='text'>
* src/context.h (struct gpgme_context): New field export_filter.
* src/engine-backend.h (struct engine_ops): Add arg export_filter to
field 'export' and field 'export_ext'.
* src/engine-gpg.c (export_common): Add arg export_filter and pass
option --export-filter with argument value to gpg.
(gpg_export, gpg_export_ext): Add arg export_filter and pass it to
export_common. Adjust all callers of the two functions.
* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Add dummy arg
export_filter.
* src/gpgme.c (gpgme_release): Free 'export_filter'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "export-filter".

* tests/run-export.c (main): Add option --export-filter.
--

This makes the --export-filter option available in the GPGME API for
key exports.

GnuPG-bug-id: 8033
</content>
</entry>
<entry>
<title>Fix portability for the use of the assuan types.</title>
<updated>2025-12-11T05:55:51Z</updated>
<author>
<name>NIIBE Yutaka</name>
<email>gniibe@fsij.org</email>
</author>
<published>2025-12-11T05:45:24Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=46938bdde47579786c79770eb54b9b742a1e0365'/>
<id>urn:sha1:46938bdde47579786c79770eb54b9b742a1e0365</id>
<content type='text'>
* src/assuan-support.c (my_spawn, my_waitpid): Use assuan_pid_t.
(my_socket, my_connect): Use assuan_fd_t.
* src/engine-gpg.c (start): Remove unused PID.
* src/engine-spawn.c (engspawn_start): Likewise.
* src/gpgme-w32spawn.c: Add util.h for assuan types.
* src/version.c: Likewise.
* src/wait-user.c: Likewise.
* src/posix-io.c (_gpgme_io_spawn): Use assuan_pid_t.
* src/priv-io.h (_gpgme_io_spawn): Likewise.
* src/w32-io.c (_gpgme_io_spawn): Likewise.
* src/wait-private.c: Include util.h earlier.

--

GnuPG-bug-id: 7968
Signed-off-by: NIIBE Yutaka &lt;gniibe@fsij.org&gt;
</content>
</entry>
<entry>
<title>Treat empty DISPLAY envvar as unset.</title>
<updated>2025-11-14T12:20:52Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-11-14T12:20:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=94fa3c2b25a1979bb838c7d9f9f74375072f4efe'/>
<id>urn:sha1:94fa3c2b25a1979bb838c7d9f9f74375072f4efe</id>
<content type='text'>
* src/engine-gpg.c (gpg_new): Do not pass option --display if DISPLAY
is set to the empty string.
* src/engine-gpgsm.c (gpgsm_new): Likewiese for sending the display
option.
* src/engine-g13.c (g13_new): Ditto.
* src/engine-assuan.c (llass_new): Ditto.
* src/engine-uiserver.c (uiserver_new): Ditto.
--

GnuPG-bug-id: 7919
</content>
</entry>
<entry>
<title>Fix an uninitialized variable.</title>
<updated>2025-07-05T11:08:03Z</updated>
<author>
<name>Collin Funk via Gnupg-devel</name>
<email>gnupg-devel@gnupg.org</email>
</author>
<published>2025-07-04T03:34:05Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=6e37569847d7948c63c14dd67c42993eb21d6018'/>
<id>urn:sha1:6e37569847d7948c63c14dd67c42993eb21d6018</id>
<content type='text'>
* src/engine-gpg.c (gpg_getdirect): Initialize ERR to zero to satisfy
the loop condition.

--

Fixes-commit: 0a64c7d0c6d0463cf2e06b3a01ef5be4d879bcf0
Signed-off-by: Collin Funk &lt;collin.funk1@gmail.com&gt;
</content>
</entry>
<entry>
<title>Treat empty algorithm the same way as unset algorithm</title>
<updated>2025-05-14T09:16:28Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-05-14T09:16:28Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=15ae7da74bc403d19df8d3ca3c0176b7dac98e18'/>
<id>urn:sha1:15ae7da74bc403d19df8d3ca3c0176b7dac98e18</id>
<content type='text'>
* src/engine-gpg.c (gpg_add_algo_usage_expire): Add "default" as
algorithm argument if algo is NULL or an empty string.
--

</content>
</entry>
<entry>
<title>Add algorithm, usage and expire also if only the group flag is set</title>
<updated>2025-05-13T12:54:11Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-05-13T12:54:11Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=8f08ca0e382085f9caba8ff969aa1ce66b6a84c8'/>
<id>urn:sha1:8f08ca0e382085f9caba8ff969aa1ce66b6a84c8</id>
<content type='text'>
* src/engine-gpg.c (gpg_add_algo_usage_expire): Check flags for
GPGME_CREATE_GROUP flag.
--

With this change a cert-only group-owned key will be created if only the
group flag is set.

</content>
</entry>
<entry>
<title>Add GPGME_CREATE_GROUP flag for gpgme_op_createkey and _createsubkey.</title>
<updated>2025-05-12T12:42:57Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-12T12:42:57Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=905bd760a99a455af6717b66311fc2197dea1055'/>
<id>urn:sha1:905bd760a99a455af6717b66311fc2197dea1055</id>
<content type='text'>
* src/gpgme.h.in (GPGME_CREATE_GROUP): New.
* src/engine-gpg.c (gpg_add_algo_usage_expire): Pass to engine.
* tests/run-genkey.c (parse_usage_string): Support here too.
</content>
</entry>
<entry>
<title>Allow signing using an exactly specified subkey.</title>
<updated>2025-05-05T14:01:10Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-05T13:52:08Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=bfd320abfeaf0c7a16af3057279c77a45bfa961a'/>
<id>urn:sha1:bfd320abfeaf0c7a16af3057279c77a45bfa961a</id>
<content type='text'>
* src/engine-gpg.c (append_args_from_signers): Detect exactly
specified keys and apped the '!' suffix.
--

Due to the ABI break which removed long long deprecated functions we
can also risk to introduce a slight semantic change in the way signer
keys are specified.  The change is that iff a subkey-fingerprint with
the '!' suffix was used to lookup a signer's key we now use this
specific subkey and not any key gpg considers to be a good signing
subkey.  Most people would have considered the old behaviour anyway as
a bug because it differs from what gpg uses at the command line.

GnuPG-bug-id: 3325
Suggested-by: Benjamin Kibbey
</content>
</entry>
</feed>
