<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme, branch gpgme-2.0.0</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.0.0</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.0.0'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2025-06-03T11:23:45Z</updated>
<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>Update autogen.sh and libtool for gpgrt.</title>
<updated>2025-06-03T11:23:44Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-06-03T11:23:20Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=ddaae2b8525b8fa25c46f643a2d247aba0752d6b'/>
<id>urn:sha1:ddaae2b8525b8fa25c46f643a2d247aba0752d6b</id>
<content type='text'>
--
</content>
</entry>
<entry>
<title>Fix an include guard.</title>
<updated>2025-05-24T11:27:29Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-24T11:27:29Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=e763305ff1ce2aeaef1087f543ceb473bc3cb8d2'/>
<id>urn:sha1:e763305ff1ce2aeaef1087f543ceb473bc3cb8d2</id>
<content type='text'>
* src/json-common.h (GPGME_JSON_COMMON_H): Fix guard.
--

Reported-by: Collin Funk &lt;collin.funk1@gmail.com&gt;
Fixes-commit: d7267db472a4e4f65c8139f68d9d976c64b79636
</content>
</entry>
<entry>
<title>json: Fix minor memory leak.</title>
<updated>2025-05-23T13:09:07Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-23T13:09:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=66de35a9b1170815e51005996441318bd9574e68'/>
<id>urn:sha1:66de35a9b1170815e51005996441318bd9574e68</id>
<content type='text'>
* src/json-core.c (json_core_process_request): Fix leak and worng
formatting in interactive mode in case of an error.
</content>
</entry>
<entry>
<title>Refactor gpgme-json for future re-use.</title>
<updated>2025-05-23T13:06:53Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-23T13:06:53Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=d7267db472a4e4f65c8139f68d9d976c64b79636'/>
<id>urn:sha1:d7267db472a4e4f65c8139f68d9d976c64b79636</id>
<content type='text'>
* src/gpgme-json.c: Factor large chunks of code out to ...
* src/json-core.c: new file and ...
* src/json-util.c: new file and ...
* src/json-common.h: new file.
* src/Makefile.am (gpgme_json_SOURCES): Add new files.
</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>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>
</feed>
