[Pgp-tools-commit] r117 - trunk/gpgsigs

Peter Palfrader weasel at costa.debian.org
Wed Jul 6 11:47:00 UTC 2005


Author: weasel
Date: 2005-07-06 11:47:00 +0000 (Wed, 06 Jul 2005)
New Revision: 117

Modified:
   trunk/gpgsigs/gpgsigs
Log:
Handle multiple sigs with different classes properly

Modified: trunk/gpgsigs/gpgsigs
===================================================================
--- trunk/gpgsigs/gpgsigs	2005-07-06 11:41:31 UTC (rev 116)
+++ trunk/gpgsigs/gpgsigs	2005-07-06 11:47:00 UTC (rev 117)
@@ -196,8 +196,19 @@
 		} else {
 			$class = 's';
 		};
-		$sigs->{$key}->{$uid}->{$1.$2} = $class;
-		$sigs->{$key}->{$uid}->{$2} = $class;
+		# Handle the case where one UID was signed multiple times
+		# with different signature classes.
+		my $before = $sigs->{$key}->{$uid}->{$1.$2};
+		if (defined $before) {
+			if ($before eq 'S' || $before eq 's') {
+				$sigs->{$key}->{$uid}->{$1.$2} = $class;
+			} elsif ($before < $class) {
+				$sigs->{$key}->{$uid}->{$1.$2} = $class;
+			};
+		} else {
+			$sigs->{$key}->{$uid}->{$1.$2} .= $class;
+		};
+		$sigs->{$key}->{$uid}->{$2} = $sigs->{$key}->{$uid}->{$1.$2}
 		next;
 	}
 	if ( m/^uat:/ ) {





More information about the Pgp-tools-commit mailing list