Gnus development mailing list
 help / color / mirror / Atom feed
From: Simon Josefsson <jas@extundo.com>
Cc: "Daiki Ueno \(pgg author\)" <ueno@unixuser.org>,
	ding@gnus.org, emacs-devel@gnu.org
Subject: Re: Small patch to enable use of gpg-agent with pgg
Date: Tue, 21 Mar 2006 15:32:22 +0100	[thread overview]
Message-ID: <87pskfq361.fsf@latte.josefsson.org> (raw)
In-Reply-To: <m2ek0zihbl.fsf_-_@kenny.sha-bang.de> (Sascha Wilde's message of "Sat, 18 Mar 2006 22:17:02 +0100")

Sascha Wilde <wilde@sha-bang.de> writes:

> Hi,
>
> I wrote a small patch, which makes it possible to use the GnuPG agent
> (which is part of gpg 1.9 and considered ready to use by Werner) with
> the GnuPG backend of pgg.
>
> I have done very little testing yet, but it seems to work fine.[0]
>
> To test it: 
> set up your gpg-agent as usual and set pgg-gpg-use-agent to t.

Your patch didn't work well for me:

1) Non-agent mode didn't work at all (the args list contained 'nil' so
   invoking gpg failed with a lisp error).

2) After fixing the above, the patch made the passphrase be 't', which
   broke the passphrase cache, causing a lisp error.

How about this patch instead?  It works for me.  I've also improved
the pgg-use-agent default value.  I've installed this on Emacs CVS
trunk, Gnus v5-10 and Gnus CVS.

Thanks for working on this, it is quite useful.

--- pgg-gpg.el	21 Mar 2006 14:53:00 +0100	1.4
+++ pgg-gpg.el	21 Mar 2006 15:22:38 +0100	
@@ -51,6 +51,13 @@
   :type '(choice (const :tag "New `--recipient' option" "--recipient")
 		 (const :tag "Old `--remote-user' option" "--remote-user")))
 
+(defcustom pgg-gpg-use-agent (if (getenv "GPG_AGENT_INFO") t nil)
+  "Whether to use gnupg agent for key caching.
+By default, it will be enabled iff the environment variable
+\"GPG_AGENT_INFO\" is set."
+  :group 'pgg-gpg
+  :type 'boolean)
+
 (defvar pgg-gpg-user-id nil
   "GnuPG ID of your default identity.")
 
@@ -58,7 +65,8 @@
   (let* ((output-file-name (pgg-make-temp-file "pgg-output"))
 	 (args
 	  `("--status-fd" "2"
-	    ,@(if passphrase '("--passphrase-fd" "0"))
+	    ,@(if pgg-gpg-use-agent '("--use-agent")
+		(if passphrase '("--passphrase-fd" "0")))
 	    "--yes" ; overwrite
 	    "--output" ,output-file-name
 	    ,@pgg-gpg-extra-args ,@args))
@@ -100,7 +108,8 @@
       (set-default-file-modes orig-mode))))
 
 (defun pgg-gpg-possibly-cache-passphrase (passphrase &optional key notruncate)
-  (if (and pgg-cache-passphrase
+  (if (and passphrase
+	   pgg-cache-passphrase
 	   (progn
 	     (goto-char (point-min))
 	     (re-search-forward "^\\[GNUPG:] \\(GOOD_PASSPHRASE\\>\\)\\|\\(SIG_CREATED\\)" nil t)))
@@ -182,7 +191,7 @@
 passphrase cache or user."
   (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id))
 	 (passphrase (or passphrase
-                         (when sign
+			 (when (and sign (not pgg-gpg-use-agent))
                            (pgg-read-passphrase
                             (format "GnuPG passphrase for %s: "
                                     pgg-gpg-user-id)
@@ -214,8 +223,9 @@
 If optional PASSPHRASE is not specified, it will be obtained from the
 passphrase cache or user."
   (let* ((passphrase (or passphrase
+			 (when (not pgg-gpg-use-agent)
                          (pgg-read-passphrase
-                          "GnuPG passphrase for symmetric encryption: ")))
+			    "GnuPG passphrase for symmetric encryption: "))))
 	 (args
 	  (append (list "--batch" "--armor" "--symmetric" )
 		  (if pgg-text-mode (list "--textmode")))))
@@ -242,12 +252,13 @@
 	 (pgg-gpg-user-id (or key-id key
 	                      pgg-gpg-user-id pgg-default-user-id))
 	 (passphrase (or passphrase
+			 (when (not pgg-gpg-use-agent)
                          (pgg-read-passphrase
                           (format (if (pgg-gpg-symmetric-key-p message-keys)
                                       "Passphrase for symmetric decryption: "
                                     "GnuPG passphrase for %s: ")
                                   (or key-owner "??"))
-                          pgg-gpg-user-id)))
+			    pgg-gpg-user-id))))
 	 (args '("--batch" "--decrypt")))
     (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
     (with-current-buffer pgg-errors-buffer
@@ -277,9 +288,11 @@
   "Make detached signature from text between START and END."
   (let* ((pgg-gpg-user-id (or pgg-gpg-user-id pgg-default-user-id))
 	 (passphrase (or passphrase
+			 (when (not pgg-gpg-use-agent)
                          (pgg-read-passphrase
-                          (format "GnuPG passphrase for %s: " pgg-gpg-user-id)
-                          pgg-gpg-user-id)))
+			    (format "GnuPG passphrase for %s: "
+				    pgg-gpg-user-id)
+			    pgg-gpg-user-id))))
 	 (args
 	  (append (list (if cleartext "--clearsign" "--detach-sign")
 			"--armor" "--batch" "--verbose"

  parent reply	other threads:[~2006-03-21 14:32 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2cd46e7f0510031250u66ea1349yb437d539ce4027ef@mail.gmail.com>
     [not found] ` <2cd46e7f0510061541w73bb6a92wb6d22829b6e804ae@mail.gmail.com>
     [not found]   ` <20051007100014.GB4850@kenny.sha-bang.local>
     [not found]     ` <2cd46e7f0510071106k3d4d3e6agc36f16a37d8b6bc6@mail.gmail.com>
     [not found]       ` <20051007214952.GA30235@kenny.sha-bang.local>
     [not found]         ` <iluvf08mm1w.fsf@latte.josefsson.org>
     [not found]           ` <20051008103627.GA1218@kenny.sha-bang.local>
     [not found]             ` <2cd46e7f0510081131h14e2bbeaga7f1a33ebd6347c8@mail.gmail.com>
     [not found]               ` <2cd46e7f0510101415t76825ea7u9749fe23da54ce@mail.gmail.com>
     [not found]                 ` <2cd46e7f0510121647x3c51fb65pc883ed61f4e864ab@mail.gmail.com>
     [not found]                   ` <2cd46e7f0510200708x4640d1c2t50743cf439e52dd4@mail.gmail.com>
     [not found]                     ` <ilur7ag8efp.fsf@latte.josefsson.org>
2006-03-18 21:17                       ` Sascha Wilde
2006-03-18 23:30                         ` Daniel Pittman
2006-03-19  0:46                           ` Miles Bader
2006-03-19  3:45                             ` Daniel Pittman
2006-03-19 18:28                               ` Miles Bader
2006-03-19  9:49                           ` Sascha Wilde
2006-03-19 17:30                             ` Sascha Wilde
2006-03-21 14:32                         ` Simon Josefsson [this message]
2006-03-21 21:29                           ` Reiner Steib
2006-03-22  9:49                             ` Simon Josefsson
2006-03-22  8:36                           ` Sascha Wilde
2006-03-22  9:16                             ` Daiki Ueno
2006-03-22  9:48                               ` Simon Josefsson
2006-03-22 11:03                               ` Sascha Wilde
2006-03-22 11:13                                 ` Simon Josefsson
2006-03-22 12:25                                   ` Daiki Ueno
2006-03-23 10:40                                     ` Daiki Ueno
2006-03-23 11:00                                       ` Simon Josefsson
2006-03-23 12:18                                         ` Daiki Ueno
2006-03-23 13:08                                           ` Simon Josefsson
2006-03-24  5:51                                             ` Daiki Ueno
2006-03-26  0:29                                               ` Daiki Ueno
2006-03-26  1:08                                                 ` Simon Josefsson
2006-03-26  3:29                                                   ` Miles Bader
2006-03-26  5:06                                                     ` Daiki Ueno
2006-03-26 17:05                                                       ` Simon Josefsson
2006-03-26 18:24                                                         ` Sascha Wilde
2006-03-27  9:36                                                           ` Simon Josefsson
2006-03-31  7:10                                                             ` Romain Francoise
2006-04-01  9:06                                                               ` Simon Josefsson
2006-04-01  9:23                                                                 ` Romain Francoise
2006-04-03  8:14                                                                   ` "[GNUPG:] TRUST_UNDEFINED" not indicated (was: Small patch to enable use of gpg-agent with pgg) Reiner Steib
2006-04-03  8:32                                                                     ` "[GNUPG:] TRUST_UNDEFINED" not indicated Daiki Ueno
2006-04-03  8:48                                                                       ` Romain Francoise
2006-04-03  9:00                                                                         ` Daiki Ueno
2006-04-03  9:28                                                                           ` Romain Francoise
2006-04-03  9:29                                                                             ` Simon Josefsson
2006-04-03 16:42                                                                               ` Adam Sjøgren
2006-04-03 17:00                                                                                 ` Romain Francoise
2006-04-03 17:13                                                                                   ` Adam Sjøgren
2006-04-04  2:39                                                                               ` Daiki Ueno
2006-04-04  7:18                                                                                 ` Romain Francoise
2006-04-04 10:35                                                                                   ` Simon Josefsson
2006-04-04 22:58                                                                                     ` Reiner Steib
2006-04-04 23:30                                                                                       ` Simon Josefsson
2006-04-03  8:49                                                                     ` "[GNUPG:] TRUST_UNDEFINED" not indicated (was: Small patch to Simon Josefsson
2006-04-05  1:52                                                         ` pgg-gpg: BEGIN_SIGNING Daiki Ueno
2006-04-05  8:40                                                           ` Simon Josefsson
2006-04-05 10:06                                                             ` Daiki Ueno
2006-04-05 11:02                                                               ` Simon Josefsson
2006-04-05 11:46                                                                 ` Daiki Ueno
2006-04-05 13:01                                                                   ` Simon Josefsson
2006-04-05 15:21                                                                     ` Please test current GPG features (was: pgg-gpg: BEGIN_SIGNING) Reiner Steib
2006-04-05 15:31                                                                       ` Please test current GPG features Simon Josefsson
2006-04-05 16:17                                                                         ` Reiner Steib
2006-04-18  8:56                                                                           ` Simon Josefsson
2006-04-19 10:03                                                                             ` Daiki Ueno
2006-04-19 10:39                                                                               ` Simon Josefsson
2006-04-06 10:40                                                                         ` Reiner Steib
2006-04-06 11:02                                                                           ` Simon Josefsson
2006-04-06 13:01                                                                             ` Reiner Steib
2006-04-06 13:41                                                                               ` Simon Josefsson
2006-04-06 16:20                                                                               ` Romain Francoise
2006-04-06 18:08                                                                                 ` Romain Francoise
2006-04-06 18:27                                                                                   ` Reiner Steib
2006-04-06 18:36                                                                                     ` Romain Francoise
2006-03-23 12:52                                       ` Small patch to enable use of gpg-agent with pgg Sascha Wilde
2006-03-23 20:07                                         ` Daiki Ueno
2006-03-23 22:16                                           ` Sascha Wilde
2006-04-05  9:13                                             ` pgg-gpg broken? Sascha Wilde
2006-04-05  9:42                                               ` Daiki Ueno
2006-04-05 10:18                                                 ` Sascha Wilde
2006-04-05 21:33                                                   ` Daiki Ueno
2006-04-06  9:00                                                     ` Sascha Wilde
2006-04-06  9:21                                                       ` Daiki Ueno
2006-04-06  9:58                                                         ` Sascha Wilde
2006-04-06 10:13                                                           ` Daiki Ueno
2006-04-07 10:32                                                           ` gpg-agent support removed?! (was: pgg-gpg broken?) Sascha Wilde
2006-04-07 12:11                                                             ` Simon Josefsson
2006-04-07 12:14                                                             ` gpg-agent support removed?! Romain Francoise
2006-04-07 13:00                                                               ` Sascha Wilde
2006-04-07 13:30                                                                 ` Simon Josefsson
2006-04-07 20:59                                                                   ` Reiner Steib
2006-04-08  9:36                                                                 ` Romain Francoise
2006-04-08 10:05                                                                   ` Sascha Wilde
2006-04-07 12:35                                                             ` Reiner Steib
2006-04-07 13:02                                                               ` Daiki Ueno
2006-04-07 13:08                                                                 ` Sascha Wilde
2006-04-07 13:26                                                                   ` Daiki Ueno
2006-04-09 16:04                                                                     ` Sascha Wilde
2006-04-10 18:04                                                                       ` Reiner Steib
2006-04-07 13:40                                                                   ` Reiner Steib
2006-04-07 14:05                                                                 ` Thomas Baumann
2006-04-07 14:40                                                                   ` Daiki Ueno
2006-04-07 15:45                                                                     ` Reiner Steib
2006-04-07 20:55                                                                       ` Daiki Ueno
2006-04-07 21:22                                                                         ` Reiner Steib
2006-04-08  7:03                                                                           ` Thomas Baumann
2006-04-08 10:18                                                                           ` Daiki Ueno
     [not found]                                                               ` <E1FRydQ-0007gN-9f@fencepost.gnu.org>
     [not found]                                                                 ` <873bgo4d0e.fsf@pacem.orebokech.com>
     [not found]                                                                   ` <d215ebff-cfee-4d23-852b-86f1f0d955b8@well-done.deisui.org>
     [not found]                                                                     ` <87r7482tjt.fsf@pacem.orebokech.com>
     [not found]                                                                       ` <fa2c4f80-3b38-4a6c-99ac-ff8dbd1c99f4@well-done.deisui.org>
2006-04-10 18:04                                                                         ` PGG maintainance (was: gpg-agent support removed?!) Reiner Steib
2006-04-05 16:14                                               ` pgg-gpg broken? Reiner Steib
2006-04-05 19:22                                                 ` Sascha Wilde
2006-03-22  9:46                             ` Small patch to enable use of gpg-agent with pgg Simon Josefsson
2006-03-22 16:13                             ` Simon Josefsson
2006-03-22 23:01                               ` Katsumi Yamaoka
2006-03-22 23:45                                 ` Simon Josefsson
2006-03-23  0:58                                   ` Katsumi Yamaoka
2006-03-23  9:12                                     ` Simon Josefsson
2006-03-23 10:26                                       ` Sascha Wilde
2006-03-23 10:54                                         ` Simon Josefsson
2006-03-23 11:12                                           ` Simon Josefsson
2006-03-23 11:16                                             ` Simon Josefsson
2006-03-23 12:51                                               ` Reiner Steib
2006-03-23 13:07                                                 ` Sascha Wilde
2006-03-23 13:10                                                   ` Simon Josefsson
2006-03-23 12:00                                             ` Sascha Wilde
2006-03-23 13:00                                               ` Simon Josefsson
2006-03-26 18:11                                                 ` Sascha Wilde
     [not found]                                             ` <m2wtels74l.fsf@kenny.sha-bang .de>
2006-03-23 23:09                                               ` Miles Bader
2006-04-02  0:30                                                 ` Ken Manheimer
2006-04-02  8:28                                                   ` Daiki Ueno

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pskfq361.fsf@latte.josefsson.org \
    --to=jas@extundo.com \
    --cc=ding@gnus.org \
    --cc=emacs-devel@gnu.org \
    --cc=ueno@unixuser.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).