From: weasel Date: Mon, 25 Jul 2005 23:24:14 +0000 (+0000) Subject: Add gpglist X-Git-Url: https://git.sthu.org/?a=commitdiff_plain;h=58faa57cde4806e393600162cd6b2a7b41a53f48;p=pgp-tools.git Add gpglist git-svn-id: svn://svn.debian.org/pgp-tools/trunk@139 b513b33f-fedd-0310-b452-c3deb5f4c849 --- diff --git a/gpglist/gpglist b/gpglist/gpglist new file mode 100755 index 0000000..68e10f5 --- /dev/null +++ b/gpglist/gpglist @@ -0,0 +1,82 @@ +#!/usr/bin/perl + +# small script to show in an intuitive way who signed which of your user ids +# +# Copyright (c) 2004 Uli Martens +# Copyright (c) 2005 Peter Palfrader +# All rights reserved. +# +# Released under a BSD style license as given in http://www.debian.org/misc/bsd.license + +use strict; +use warnings; + +my $key=shift @ARGV; +if ( $key eq "" ) { + die +} + +open SIGS, "gpg --fixed-list-mode --with-colons --list-sigs $key 2>/dev/null |" + or die "can't get gpg listing"; + +my $uid = ""; +my @uids; +my %sigs; +my %rev; +my %ids; +my %unknownID; +my $longkey; +while () { + if ( m/^uid:.:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:(.*):$/ ) { + $uid = $1; + push @uids, $1; + next; + } + if ( m/^sig:[^:]*:[^:]*:[^:]*:([0-9A-F]*):[^:]*:[^:]*:[^:]*:[^:]*:(.*):[^:]*:$/ ) { + $2 eq "[User id not found]" ? $unknownID{$1} = $1 : $ids{$2} = $1; + $sigs{$1}->{$uid} = "x" unless defined $sigs{$1}->{$uid}; + next; + } + if ( m/^rev:[^:]*:[^:]*:[^:]*:([0-9A-F]*):[^:]*:[^:]*:[^:]*:[^:]*:(.*):[^:]*:$/ ) { + $rev{$uid} = "x" if ($longkey eq $1); + $sigs{$1}->{$uid} = "R"; + next; + } + if ( m/^uat:.:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:(.*):$/ ) { + $uid = "Photo ID"; + push @uids, $uid; + next; + } + if ( m/^pub:[^:]*:[^:]*:[^:]*:([^:]*):[^:]*:[^:]*:[^:]*:[^:]*:(.*):$/ ) { + $longkey = $1; + next; + } + last if ( m/^(sub):/ ); + next if ( m/^(tru):/ ); + print STDERR "hi, i'm a bug. please report me to my owner"; + die "input: $_, key: $key"; +} +close SIGS; + +my $n = scalar @uids -1; +for ( my $a=0; $a <= $n; $a++ ) { + printf "| " x ($a) + . "+--" + . "---" x ($n-$a) + . (defined $rev{$uids[$a]} ? "R" : " ") + . "%2i $uids[$a]\n", $a+1; +} + +for ( my $a=0; $a <= $n; $a++ ) { + printf "%-2i ", $a+1; +} +print "\n"; + +for my $id (sort keys %ids) { + print((defined $sigs{$ids{$id}}->{$_} ? $sigs{$ids{$id}}->{$_} : " ") . " ") for (@uids); + print $ids{$id}." $id\n"; +} +for my $id (sort keys %unknownID) { + print((defined $sigs{$id}->{$_} ? $sigs{$id}->{$_} : " ") . " ") for (@uids); + print "$id [User id not found]\n"; +}