[PATCH] cli: crypto: tell gmime to use gpg-agent

Tomi Ollila tomi.ollila at iki.fi
Wed Feb 27 00:45:28 PST 2013


On Wed, Feb 27 2013, Jani Nikula <jani at nikula.org> wrote:

> For decryption, we expect there to be a functioning gpg-agent, and we
> want gpg to talk to it for any needed credentials. There's a gmime
> function to declare that: g_mime_gpg_context_set_use_agent() [1], [2].
> Start using it.
>
> I had gpg-agent running, but gpg "use-agent" configuration option
> disabled. This resulted in an error message from 'notmuch show':
>
>   Failed to decrypt part: Canceled.
>
> and json had this:
>
>   "encstatus" : [ { "status" : "bad" } ]
>
> One could argue the "use-agent" option should be enabled, but I'd like
> to use the agent only as a last resort. I think that's irrelevant
> though. There's a gmime function to declare what we expect, so we
> should use it. Conveniently it also fixes the problem in a user
> friendly way.

I agree fully. The code looks good to me.

Tomi

>
> [1] http://git.gnome.org/browse/gmime/commit/?id=ed985397843a9da3745a8b5de3d1d652acd24724
> [2] https://bugzilla.gnome.org/show_bug.cgi?id=651826
> ---
>  crypto.c |    3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/crypto.c b/crypto.c
> index fbe5aeb..cb361e1 100644
> --- a/crypto.c
> +++ b/crypto.c
> @@ -45,6 +45,9 @@ notmuch_crypto_get_context (notmuch_crypto_t *crypto, const char *protocol)
>  	    g_object_unref (session);
>  #endif
>  	    if (crypto->gpgctx) {
> +#ifdef GMIME_ATLEAST_26
> +		g_mime_gpg_context_set_use_agent ((GMimeGpgContext*) crypto->gpgctx, TRUE);
> +#endif
>  		g_mime_gpg_context_set_always_trust ((GMimeGpgContext*) crypto->gpgctx, FALSE);
>  	    } else {
>  		fprintf (stderr, "Failed to construct gpg context.\n");
> -- 
> 1.7.10.4


More information about the notmuch mailing list