<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src/key.c, branch gpgme-1.13.0</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.13.0</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.13.0'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2018-11-16T12:27:33Z</updated>
<entry>
<title>Add SPDX identifiers to most source files</title>
<updated>2018-11-16T12:27:33Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2018-11-16T12:27:33Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=8d91c0f4cdcc26679067ae681ae12600fb450200'/>
<id>urn:sha1:8d91c0f4cdcc26679067ae681ae12600fb450200</id>
<content type='text'>
--

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Fix a couple of bugs pointed out by clang compiler warnings.</title>
<updated>2017-08-23T13:38:11Z</updated>
<author>
<name>Marcus Brinkmann</name>
<email>marcus.brinkmann@ruhr-uni-bochum.de</email>
</author>
<published>2017-08-23T13:38:11Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=bfb3a01a0c55aa327dcab061fa808672362cb09d'/>
<id>urn:sha1:bfb3a01a0c55aa327dcab061fa808672362cb09d</id>
<content type='text'>
* src/engine-gpgconf.c (gpgconf_config_dir_cb): Fix cast.
* src/key.c (_gpgme_key_add_sig): Fix pointer reference.

Signed-off-by: Marcus Brinkmann &lt;mb@g10code.com&gt;
</content>
</entry>
<entry>
<title>core: Cleanup gpgme_key_unref frees</title>
<updated>2017-02-01T17:06:54Z</updated>
<author>
<name>Andre Heinecke</name>
<email>aheinecke@intevation.de</email>
</author>
<published>2017-02-01T17:06:54Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=8ede86795a1d419c01b4910ec2fd1fb18b629452'/>
<id>urn:sha1:8ede86795a1d419c01b4910ec2fd1fb18b629452</id>
<content type='text'>
* src/key.c (gpgme_key_unref): Nowadays we assume free(NULL) is ok.
</content>
</entry>
<entry>
<title>core: Fix leakage of address for mail only uids</title>
<updated>2017-02-01T17:06:22Z</updated>
<author>
<name>Andre Heinecke</name>
<email>aheinecke@intevation.de</email>
</author>
<published>2017-02-01T17:03:35Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=b5075030bec9b21bf4e515bc1686df3fa43eced2'/>
<id>urn:sha1:b5075030bec9b21bf4e515bc1686df3fa43eced2</id>
<content type='text'>
* src/key.c (gpgme_key_unref): Always free address if set.
(_gpgme_key_append_name): Remove memory optimization for address.

--
The check if address is not allocated would now be more complicated
then just comparing it to email because email is set to address
also when an email was not parsed from the user id.
</content>
</entry>
<entry>
<title>core: Improve mailbox only uid handling</title>
<updated>2017-02-01T15:17:07Z</updated>
<author>
<name>Andre Heinecke</name>
<email>aheinecke@intevation.de</email>
</author>
<published>2017-02-01T15:16:22Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=a28d31fdb623f2ee30e8094d09f1a0d1ae446a9b'/>
<id>urn:sha1:a28d31fdb623f2ee30e8094d09f1a0d1ae446a9b</id>
<content type='text'>
* src/key.c (_gpgme_key_append_name): Set email and remove name
for uid only keys.

--
If we have a name and no email but the name can be parsed as
an address we now treat the address as email and remove the name.

This fixes downstream users that rely on email to show email
addresses and don't expilicity handle this case.

E.g. A userid foo@example.com was:
uid-&gt;name = "foo@example.com"
uid-&gt;email = ""
uid-&gt;address = "foo@example.com"

It is now:
uid-&gt;name = ""
uid-&gt;email = "foo@example.com"
uid-&gt;address = "foo@example.com"
</content>
</entry>
<entry>
<title>core: Change the way TOFU information are represented.</title>
<updated>2016-08-23T13:24:10Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2016-08-23T13:22:28Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=be4ff75d7d5ac6ed15feb245ef3cec59b4bad561'/>
<id>urn:sha1:be4ff75d7d5ac6ed15feb245ef3cec59b4bad561</id>
<content type='text'>
* src/gpgme.h.in (struct _gpgme_signature): Remove field 'tofu'.  Add
field 'key'.
(struct _gpgme_key): Add field 'fpr'.
(struct _gpgme_user_id): Add field 'tofu'.
(struct _gpgme_tofu_info): Remove fields 'address' and 'fpr'.
* src/key.c (gpgme_key_unref): Release TOFU and FPR.
* src/keylist.c (keylist_colon_handler): Store the fingerprint of the
first subkey also in KEY.
* src/verify.c (release_tofu_info): Remove.
(release_op_data): Release KEY.
(parse_tofu_user): Rewrite for new data structure.
(parse_tofu_stats): Ditto.
(parse_tofu_stats_long): Ditto.
* tests/run-verify.c (print_result): Ditto.
* tests/run-keylist.c (main): Print more fields.
--

TOFU information are now associated with the user ID and not with a
separate object.

Note that this breaks code relying on the former non-released TOFU
feature.  The C++ bindings won't work right now.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>core: Extend gpgme_user_id_t with 'address'.</title>
<updated>2016-08-23T04:48:50Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2016-08-23T04:48:50Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=3955dce06e9d056599e5ec7d40301e66b9305195'/>
<id>urn:sha1:3955dce06e9d056599e5ec7d40301e66b9305195</id>
<content type='text'>
* src/mbox-util.c, src/mbox-util.h: Adjust for use in gpgme.
* src/Makefile.am (main_sources): Add mbox-util.
* src/key.c (_gpgme_key_append_name): Set 'address' field of uid.
(gpgme_key_unref): Free it.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>core: Extend gpgme_subkey_t to carry the keygrip.</title>
<updated>2016-08-04T14:17:01Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2016-08-04T14:17:01Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=6f3dc66634e30d86aa6250c4ac22f9b8f7ec1be9'/>
<id>urn:sha1:6f3dc66634e30d86aa6250c4ac22f9b8f7ec1be9</id>
<content type='text'>
* src/gpgme.h.in (struct _gpgme_subkey): Add file 'keygrip'.
* src/key.c (gpgme_key_unref): Free KEYGRIP.
* src/keylist.c (keylist_colon_handler): Parse GRP records.
* src/engine-gpg.c (gpg_keylist_build_options): Do not use
--with-fingerprint options for gpg versions &gt;= 2.1.15.

* tests/run-keylist.c (main): Print subkeys and keygrips.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Add field CURVE to the key info.</title>
<updated>2014-05-08T18:39:15Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2014-05-08T18:39:15Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=88f15336ec0eadde68ff2618349efb9006b8e801'/>
<id>urn:sha1:88f15336ec0eadde68ff2618349efb9006b8e801</id>
<content type='text'>
* src/gpgme.h.in (struct _gpgme_subkey): Add field CURVE.
* src/key.c (gpgme_key_unref): Free CURVE.
* src/keylist.c (keylist_colon_handler): Set CURVE.

* src/gpgme.c (gpgme_release): For failsafe reasons reset engine and
engine info after freeing.
--

The engine hack is useful in case the other release functions
accidently call engine release.
</content>
</entry>
<entry>
<title>Use gpg_error_from_syserror instead of directly accessing errno.</title>
<updated>2013-02-06T16:35:40Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2013-02-06T16:35:40Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=51fd6d8292cb41d743407e6ac9d86a5ab8e68d8c'/>
<id>urn:sha1:51fd6d8292cb41d743407e6ac9d86a5ab8e68d8c</id>
<content type='text'>
--

Also fixed a couple of minor thing; e.g. save the error before calling
cleanup functions.  Do not save the errno if only free is called
in between.
</content>
</entry>
</feed>
