<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/NEWS, branch gpgme-2.0.1</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.0.1</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.0.1'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2025-09-23T10:05:37Z</updated>
<entry>
<title>Release 2.0.1</title>
<updated>2025-09-23T10:05:37Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-09-23T10:05:37Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=e4adebe020b07bc47e583817576ce98ca93e9711'/>
<id>urn:sha1:e4adebe020b07bc47e583817576ce98ca93e9711</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gnupg-manage-keys: Implement a new tool.</title>
<updated>2025-07-15T14:46:02Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-07-15T14:46:02Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=9e3266ccbbdf6ab9b37ec4e0c5342630dc0ffa82'/>
<id>urn:sha1:9e3266ccbbdf6ab9b37ec4e0c5342630dc0ffa82</id>
<content type='text'>
* tools/gnupg-key-manage.c: new.
* tools/Makefile.am: New.
* configure.ac: Add Makefile.
* Makefile.am (SUBDIRS): Add tools directory.
</content>
</entry>
<entry>
<title>NEWS: Mention the split of gpgme</title>
<updated>2025-06-04T07:11:52Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-06-04T07:11:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=ca6419d5ec4d865998598645c8c047c119e31d01'/>
<id>urn:sha1:ca6419d5ec4d865998598645c8c047c119e31d01</id>
<content type='text'>
--

</content>
</entry>
<entry>
<title>Post release update</title>
<updated>2025-06-03T11:34:46Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-06-03T11:34:46Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=6aa0fef87347134a15c836e930cc714286c1eda1'/>
<id>urn:sha1:6aa0fef87347134a15c836e930cc714286c1eda1</id>
<content type='text'>
--
</content>
</entry>
<entry>
<title>Release 2.0.0</title>
<updated>2025-06-03T11:23:45Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-06-03T11:15:57Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=e17ba578861905857da0a514b4fc9b88a57f7346'/>
<id>urn:sha1:e17ba578861905857da0a514b4fc9b88a57f7346</id>
<content type='text'>
</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>Change timestamp fields from signed to unsigned long.</title>
<updated>2025-05-05T14:27:34Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-05T14:27:34Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=f2d40473b522e348d96a70c089d2191d0b978098'/>
<id>urn:sha1:f2d40473b522e348d96a70c089d2191d0b978098</id>
<content type='text'>
* src/gpgme.h.in (struct _gpgme_subkey): Chnage timestamp and expires.
(struct _gpgme_key_sig): Ditto.
(struct _gpgme_new_signature): Ditto.
--

Note that unsigned long has always been used for gpgme_signature_t.
A change to time_t would be a real ABI change and require may users of
gpgme to adjust their code.  The signed/unsigned change is sufficient
and mostly invisible.
</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>
<entry>
<title>Mark the subkey used to find a key.</title>
<updated>2025-05-05T13:03:01Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-05T13:02:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=87d6da1188db3c7df899821e4c0d895c61504522'/>
<id>urn:sha1:87d6da1188db3c7df899821e4c0d895c61504522</id>
<content type='text'>
* src/gpgme.h.in (struct _gpgme_subkey): New flag subkey_match.
* src/keylist.c (spacep): New.
(op_data_t): Add field requested_subkey.
(release_op_data): Free it.
(exact_match_pattern): New.
(maybe_setup_for_requested_subkey): New.
(gpgme_op_keylist_start): Call it here.
(gpgme_op_keylist_ext_start): Call it for each pattern until one
found.
(gpgme_op_keylist_next): Set the subkey_match field.
---

This is needed for
GnuPG-bug-id: 3325
</content>
</entry>
<entry>
<title>New decrypt flags GPGME_DECRYPT_LISTONLY.</title>
<updated>2025-03-18T15:22:58Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-03-18T15:22:58Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=91a59d2a35540769c055da2341b5face0be6c286'/>
<id>urn:sha1:91a59d2a35540769c055da2341b5face0be6c286</id>
<content type='text'>
* src/gpgme.h.in (GPGME_DECRYPT_LISTONLY): New.
* src/decrypt.c (op_data_t): Add member list_only.
(_gpgme_decrypt_status_handler): Do not return NO_DATA in list_only
mode.
(_gpgme_op_decrypt_init_result): Add arg flags and set the list_only
flag.
(_gpgme_decrypt_start): Pss flags to the init function.
* src/decrypt-verify.c (decrypt_verify_start): Ditto.
* src/engine-gpg.c (gpg_decrypt): Add --list-only if flag is set.

* tests/run-decrypt.c (main): Add option --list-only.
</content>
</entry>
</feed>
