Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F26446232
ring-a-party
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
2 KB
Subscribers
None
ring-a-party
View Options
#!/bin/sh
# ring-a-party - print a keyring suitable for a key signing party
if
[
$#
-lt
1
]
;
then
echo
"usage: ring-a-party keyring [headerline]"
>
&
2
exit
1
fi
keyring
=
"
$1
"
hdrline
=
"
$1
"
if
[
$#
-gt
1
]
;
then
hdrline
=
"
$2
"
fi
if
[
! -f
$keyring
]
;
then
echo
"ring-a-party: '
$keyring
': no such file"
>
&
2
exit
1
fi
echo
"ring-a-party: output will be written to 'a.pub'"
>
&
2
gpg --dry-run --with-fingerprint --with-colons
$keyring
\
|
gawk -v
"KEYRING=
$hdrline
"
'
BEGIN { FS=":"
algos[1] = "RSA";
algos[16] = "ElGamal";
algos[17] = "DSA";
any = 0;
lines = -1;
page = 0;
now = strftime("%b %d %H:%M %Y");
}
END {
if (any) myflush();
}
$1 == "pub" {
if( any ) myflush();
uidcount = 0;
signencrypt = 0;
uids[uidcount++] = $10;
nbits = $3;
keyid = substr($5,9);
created = $6;
expires = $7;
algostr = mapalgo($4);
if( $4 == 20 || $4 == 1 ) signencrypt = 1;
any = 1;
}
$1 == "fpr" { fpr = $10 }
$1 == "uid" { uids[uidcount++] = $10 }
$1 == "sub" { if( $4 != 17 && $4 != 3 ) signencrypt=1 }
function myflush()
{
# fixme: take lines to print here into account
if( lines > 50 || lines == -1 ) {
if( lines != -1 ) printf "\f";
page++;
printf "%s %-50.50s Page %d\n\n", now, KEYRING, page ;
printf "Type Bits KeyID Created Expires Algorithm Use\n";
lines = 1;
}
printf "pub %04d 0x%s %10s %10s %-10s %15s\n",
nbits, keyid, created, expires == ""? "----------":expires, algostr,
signencrypt == 1? "Sign & Encrypt":"Sign only";
length(fpr) == 40 ? printfpr20( fpr ) : printfpr16( fpr );
lnes += 2;
for( i=0; i < uidcount; i++ ) {
printf "uid %s\n", uids[i];
lines++;
}
printf "\n\n";
lines += 2;
}
function mapalgo( no )
{
if( no in algos )
return algos[no];
return sprintf( "algoID=%ds", no );
}
function printfpr16( s )
{
printf "f16 Fingerprint16 =";
for(i=0; i < 16; i++ ) {
if( i == 8 ) printf " ";
printf " %s", substr( s, i*2+1, 2 );
}
printf "\n"
}
function printfpr20( s )
{
printf "f20 Fingerprint20 =";
for(i=0; i < 10; i++ ) {
if( i == 5 ) printf " ";
printf " %s", substr( s, i*4+1, 4 );
}
printf "\n"
}
'
|
tee a.pub
|
gpg --print-mds
File Metadata
Details
Attached
Mime Type
text/x-shellscript
Expires
Thu, Jul 17, 12:46 AM (1 d, 8 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
8a/23/6a129068b2b3790a88e1f57913ec
Attached To
rG GnuPG
Event Timeline
Log In to Comment