📄 getsigs.pl
字号:
#!/usr/bin/perl# Terribly ugly hack of a script to verify the signatures on the release# tarballs and produce the list of who signed them in the format we use for# the announcements.## To use just run it in the directory with the signatures and tarballs and# pass the version of subversion you want to check. It assumes gpg is on# you path, if it isn't you should fix that. :D## Script will die if any gpg process returns an error.my $version = $ARGV[0];my @extensions = qw(tar.bz2 tar.gz zip);my %good_sigs;foreach my $extension (@extensions) { $filename = "subversion-$version.$extension.asc"; my $gpg_output = `gpg --logger-fd 1 --verify $filename`; if ($? >> 8 ) { # gpg exited with a non zero exit value, die with an error print $gpg_output; die "BAD SIGNATURE in $filename"; } foreach my $line (split /\n/, $gpg_output) { # Extract the keyid from the GPG output. my ($keyid) = $line =~ /^gpg: Signature made .*? using \w+ key ID (\w+)/; if (defined($keyid)) { # Put the resulting key in a hash to remove duplicates. $good_sigs{$keyid}++; } }}foreach my $keyid (keys %good_sigs) { my $gpg_output = `gpg --fingerprint $keyid`; if ($? >> 8 ) { # gpg exited with a non zero exit value, die with an error print $gpg_output; die "UNABLE TO GET FINGERPRINT FOR $keyid"; } my ($long_keyid, $fingerprint, $null, $name) = $gpg_output =~ /^pub\s+(\w+\/\w+)[^\n]*\n\s+Key\sfingerprint\s=((\s+[0-9A-F]{4}){10})\nuid\s+([^<\(]+)\s/; unless (defined($long_keyid) && defined($name) && defined($fingerprint)) { # Hmm some value didn't get filled in, error out. die "Empty value, possible error in gpg output parsing."; } print <<"EOL"; $name [$long_keyid] with fingerprint: $fingerprintEOL}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -