[Pgp-tools-commit] r335 - in trunk: caff debian

weasel at alioth.debian.org weasel at alioth.debian.org
Tue Jul 3 13:53:50 UTC 2007


Author: weasel
Date: 2007-07-03 13:53:50 +0000 (Tue, 03 Jul 2007)
New Revision: 335

Modified:
   trunk/caff/caff
   trunk/debian/changelog
Log:
Try to handle expired keys specified in also-encrypt-to better


Modified: trunk/caff/caff
===================================================================
--- trunk/caff/caff	2007-07-03 13:41:04 UTC (rev 334)
+++ trunk/caff/caff	2007-07-03 13:53:50 UTC (rev 335)
@@ -477,6 +477,9 @@
 	unless (defined $CONFIG{'mail-template'}) {
 		$CONFIG{'mail-template'} .= $_ foreach <DATA>;
 	}
+	if ((defined $CONFIG{'also-encrypt-to'}) && ! (ref($CONFIG{'also-encrypt-to'}) eq 'ARRAY')) {
+		$CONFIG{'also-encrypt-to'} = [ $CONFIG{'also-encrypt-to'} ];
+	};
 };
 
 sub make_gpg_fds() {
@@ -766,19 +769,23 @@
 		my ($inputfd, $stdoutfd, $stderrfd, $statusfd, $handles) = make_gpg_fds();
 		$gpg->options->push_recipients( $key_id );
 		if (defined $CONFIG{'also-encrypt-to'}) {
-			if (ref($CONFIG{'also-encrypt-to'})) {
-				$gpg->options->push_recipients($_)
-					foreach @{$CONFIG{'also-encrypt-to'}};
-			} else {
-				$gpg->options->push_recipients($CONFIG{'also-encrypt-to'});
-			}
+			$gpg->options->push_recipients($_) foreach @{$CONFIG{'also-encrypt-to'}};
 		}
 		my $pid = $gpg->encrypt(handles => $handles);
 		my ($stdout, $stderr, $status) = readwrite_gpg($message, $inputfd, $stdoutfd, $stderrfd, $statusfd);
 		waitpid $pid, 0;
 		if ($stdout eq '') {
-			warn ("No data from gpg for encrypting mail\n");
-			next;
+			if (($status =~ /^\[GNUPG:\] INV_RECP ([0-9]+) ([0-9A-F]+)/m) and
+			    (defined $CONFIG{'also-encrypt-to'})) {
+				my $reason = $1;
+				my $keyid = $2;
+				if (grep { %_ eq $keyid } @{$CONFIG{'also-encrypt-to'}}) {
+					warn("Could not encrypt to $keyid, spezified in CONFIG{'also-encrypt-to'}.  Try to update the key using gpg --homedir=\$HOME/caff/gnupghome --import <keyd>.");
+					return;
+				};
+			};
+			warn ("No data from gpg for encrypting mail.  STDERR was:\n$stderr\nstatus output was:\n$status\n");
+			return;
 		};
 		$message = $stdout;
 

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2007-07-03 13:41:04 UTC (rev 334)
+++ trunk/debian/changelog	2007-07-03 13:53:50 UTC (rev 335)
@@ -7,8 +7,9 @@
 
   [ Peter Palfrader ]
   * Fix a warning message in caff when encrypting fails.
+  * Try to handle expired keys specified in also-encrypt-to better
 
- -- Peter Palfrader <weasel at debian.org>  Tue,  3 Jul 2007 15:40:34 +0200
+ -- Peter Palfrader <weasel at debian.org>  Tue,  3 Jul 2007 15:53:27 +0200
 
 signing-party (0.4.11-1) unstable; urgency=low
 




More information about the Pgp-tools-commit mailing list