<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src, branch gpgme-1.6.0</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.6.0</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.6.0'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2015-08-26T07:16:36Z</updated>
<entry>
<title>Make use of GPGRT macros is available.</title>
<updated>2015-08-26T07:16:36Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-26T07:16:36Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=c4f4b5c0a6fc172f7ceedc1a0021169e7f31b941'/>
<id>urn:sha1:c4f4b5c0a6fc172f7ceedc1a0021169e7f31b941</id>
<content type='text'>
* src/gpgme.h.in (_GPGME_INLINE): Define using GPGRT_INLINE if
possible.  Fix problem with -Wundef by adding an extra "defined()".
(_GPGME_GCC_VERSION): Define using GPGRT_ macro if possible.
</content>
</entry>
<entry>
<title>Avoid -Wundef warnings if gpgme.h is used by g++.</title>
<updated>2015-08-25T19:04:15Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-25T19:04:15Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=3f53d3d5d9e73a053b1e89073ef8f7cf01bfc8e6'/>
<id>urn:sha1:3f53d3d5d9e73a053b1e89073ef8f7cf01bfc8e6</id>
<content type='text'>
* src/gpgme.h.in (_GPGME_INLINE): Move definition into the
extern-C-scope.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Relax ttyname_r error checks</title>
<updated>2015-08-25T17:11:30Z</updated>
<author>
<name>Daiki Ueno</name>
<email>ueno@gnu.org</email>
</author>
<published>2015-07-27T07:19:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=028a0ef3336c5180797fb247448683195376c007'/>
<id>urn:sha1:028a0ef3336c5180797fb247448683195376c007</id>
<content type='text'>
* src/engine-assuan.c (llass_new): Don't treat ttyname_r error as
fatal.
* src/engine-g13.c (g13_new): Likewise.
* src/engine-gpg.c (gpg_new): Likewise.
* src/engine-gpgsm.c (gpgsm_new): Likewise.
* src/engine-uiserver.c (uiserver_new): Likewise.

--
Even though isatty() returns 1, ttyname_r() may fail in many ways, e.g.,
when /dev/pts is not accessible under chroot.  Since all our uses of
ttyname_r() require that the function works, we can treat the failure as
if isatty() fails.

Signed-off-by: Daiki Ueno &lt;ueno@gnu.org&gt;
</content>
</entry>
<entry>
<title>Cleanup layout of gpgme.h</title>
<updated>2015-08-25T16:10:14Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-25T16:06:24Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=97f1f3e883808743da5ee144abab25de062f34ac'/>
<id>urn:sha1:97f1f3e883808743da5ee144abab25de062f34ac</id>
<content type='text'>
* src/gpgme.h.in: Reorder prototypes.  Chnage some comments.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Improve error return by checking the FAILURE status.</title>
<updated>2015-08-25T11:23:51Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-25T11:22:43Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=8ddc5801ade02297924447df5745c8877a96e5e3'/>
<id>urn:sha1:8ddc5801ade02297924447df5745c8877a96e5e3</id>
<content type='text'>
* src/gpgme.h.in (GPGME_STATUS_FAILURE): New.
* src/status-table.c (FAILURE): New.
* src/op-support.c (_gpgme_parse_failure): New.
* src/passphrase.c (_gpgme_passphrase_status_handler): Forward FAILURE
status line to the status callback.

* src/decrypt.c (op_data_t): Add field failure_code.
(_gpgme_decrypt_status_handler): Parse that code and act upon it on EOF.
* src/encrypt.c (op_data_t): Add field failure_code.
(_gpgme_encrypt_status_handler): Parse that code and act upon it on EOF.
* src/genkey.c (op_data_t): Add field failure_code.
(genkey_status_handler): Parse that code and act upon it on EOF.
* src/passwd.c (op_data_t): Add field failure_code.
(passwd_status_handler): Parse that code and act upon it on EOF.
* src/sign.c (op_data_t): Add field failure_code.
(_gpgme_sign_status_handler): Parse that code and act upon it on EOF.
* src/verify.c (op_data_t): Add field failure_code.
(_gpgme_verify_status_handler): Parse that code and act upon it on EOF.

--

This requires GnuPG 2.1.8 to actually make a difference.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Call status_cb for an ERROR status seen in the passphrase handler.</title>
<updated>2015-08-24T19:17:21Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-24T19:17:21Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=ad46f4f655e653580343c15f1b0b365b7d307d1b'/>
<id>urn:sha1:ad46f4f655e653580343c15f1b0b365b7d307d1b</id>
<content type='text'>
* src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb.
--

Frankly, we should have a more generic way of feeding the status_cb
handler than our current ad-hoc method.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>w32: Look for gpgconf in the new GnuPG 2.1 install dir.</title>
<updated>2015-08-24T17:59:43Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-24T17:59:43Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=a7dbab23ea4976d106d649aa515ffb2968a085ed'/>
<id>urn:sha1:a7dbab23ea4976d106d649aa515ffb2968a085ed</id>
<content type='text'>
* src/w32-util.c (_gpgme_get_gpgconf_path): Try another location of
gpgconf.exe.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>w32: Expect gpgme-w32spawn.exe only in the gpgme installation dir.</title>
<updated>2015-08-24T14:34:29Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-24T14:34:29Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=06d6fd8ca01354c8f7cfc847c4ac1b868268cbaa'/>
<id>urn:sha1:06d6fd8ca01354c8f7cfc847c4ac1b868268cbaa</id>
<content type='text'>
* src/w32-util.c (find_program_at_standard_place): Remove.
(_gpgme_get_gpg_path): Make the search order more explicit.
(_gpgme_get_gpgconf_path): Ditto.
(_gpgme_get_w32spawn_path): Search only in the inst_dir.
--

This tries to avoid possible unclear bug reports by removing the
fallback to the current gpg4win installation directory for the gpgme
helper.  It is expected that users of gpgme installing their own gpgme
version also install the matching helper.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>w32: Print the installation directory in debug mode.</title>
<updated>2015-08-24T13:03:20Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-24T13:03:20Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=df098d6a437109c57516db75addf3764a6dfda81'/>
<id>urn:sha1:df098d6a437109c57516db75addf3764a6dfda81</id>
<content type='text'>
* src/debug.c (debug_init) [W32]: Show libgpgme installation dir.
--

I expect that gpgme will be distributed by applications and thus it
will be helpful to see in the debug log which gpgme is actually used.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Add an export secret key feature.</title>
<updated>2015-08-24T10:41:24Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-08-24T10:41:24Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=2b632bbb78eee2b94c122f66d171a7c80e9c4fb0'/>
<id>urn:sha1:2b632bbb78eee2b94c122f66d171a7c80e9c4fb0</id>
<content type='text'>
* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET): New.
(GPGME_EXPORT_MODE_RAW): New.
(GPGME_EXPORT_MODE_PKCS12): New.
* src/export.c (export_start, export_ext_start): Allow new flags.
* src/engine-gpg.c (export_common): Support secret key export.
* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto.

* src/gpgme-tool.c (cmd_export): Add options --secret, --raw,
and --pkcs12.
* tests/run-export.c (main): Likewise.
--

Note that exporting secret X.509 keys requires GnuPG 2.1.8.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
</feed>
