added pgoatp to misc dir, vimrc and backup tweaks
This commit is contained in:
parent
2af6453683
commit
426a39022a
|
@ -58,6 +58,7 @@ MINRE=""
|
||||||
MINRE+=" --exclude=/.fseventsd/"
|
MINRE+=" --exclude=/.fseventsd/"
|
||||||
MINRE+=" --exclude=/.Spotlight-V100/"
|
MINRE+=" --exclude=/.Spotlight-V100/"
|
||||||
MINRE+=" --exclude=/.Trashes/"
|
MINRE+=" --exclude=/.Trashes/"
|
||||||
|
MINRE+=" --exclude=/tmp/"
|
||||||
|
|
||||||
# before anything else, backup gpg keys if any:
|
# before anything else, backup gpg keys if any:
|
||||||
if [ -d ${HOME}/.gnupg ]; then
|
if [ -d ${HOME}/.gnupg ]; then
|
||||||
|
|
|
@ -0,0 +1,130 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
# This is PGoatP, for goatseing pgp keys
|
||||||
|
# 2011 sneak@datavibe.net
|
||||||
|
# sorry to everyone forever for pissing in the collective pool
|
||||||
|
# apologies to dfw for the name
|
||||||
|
# and thanks to MIT for using monospaced fonts on the web
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings qw( all );
|
||||||
|
|
||||||
|
our $keyserver = 'pgp.mit.edu';
|
||||||
|
our $tmpdir = '/tmp/pgoat.' . $$; # run only in single user mode, dumbass.
|
||||||
|
our $gpg_opts = qq{--batch --homedir '$tmpdir'};
|
||||||
|
|
||||||
|
main();
|
||||||
|
|
||||||
|
sub main {
|
||||||
|
if (@ARGV < 1) {
|
||||||
|
die "usage: $0 <target keyid> [ascii file]\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
pgoatp({
|
||||||
|
keyserver => $keyserver,
|
||||||
|
target => $ARGV[0],
|
||||||
|
ascii => [ split(/\n/,(@ARGV == 1) ? goatse() : readfile($ARGV[1])) ],
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sub pgoatp {
|
||||||
|
my $opts = shift;
|
||||||
|
unlink($tmpdir); # woo temp file race
|
||||||
|
mkdir($tmpdir) unless -d $tmpdir;
|
||||||
|
chmod 0700, $tmpdir;
|
||||||
|
my $target = $opts->{'target'};
|
||||||
|
print "fetching target key...\n";
|
||||||
|
`gpg $gpg_opts -q --keyserver $keyserver --recv-key $target`;
|
||||||
|
my $x = 0;
|
||||||
|
my @trollkeys;
|
||||||
|
foreach my $line (@{$opts->{'ascii'}}) {
|
||||||
|
next if $line =~ /^\s*$/;
|
||||||
|
printf(
|
||||||
|
"%i%% done generating keys\n",
|
||||||
|
($x/@{$opts->{'ascii'}})*100
|
||||||
|
);
|
||||||
|
my $keyid = gen_key({
|
||||||
|
name => $line
|
||||||
|
});
|
||||||
|
push(@trollkeys,$keyid);
|
||||||
|
`gpg -q $gpg_opts --yes --default-key $keyid --sign-key $target 2>&1`;
|
||||||
|
$x++;
|
||||||
|
}
|
||||||
|
|
||||||
|
print "preview:\n";
|
||||||
|
print `gpg $gpg_opts --list-sigs $target`;
|
||||||
|
|
||||||
|
print "\n\n*** you have ten seconds to control-c to cancel! *** \n\n";
|
||||||
|
sleep 10;
|
||||||
|
print `gpg $gpg_opts --keyserver $keyserver --send-key $target`;
|
||||||
|
foreach my $keyid (@trollkeys) {
|
||||||
|
print `gpg $gpg_opts --keyserver $keyserver --send-key $keyid`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub gen_key {
|
||||||
|
my $opts = shift;
|
||||||
|
open(FH,'>' . $tmpdir . '/input') or die;
|
||||||
|
my $format =
|
||||||
|
q{Key-Type: DSA
|
||||||
|
Key-Length: 1024
|
||||||
|
Subkey-Type: ELG-E
|
||||||
|
Subkey-Length: 1024
|
||||||
|
Name-Real: %s
|
||||||
|
Expire-Date: 0
|
||||||
|
%%pubring %s/pub
|
||||||
|
%%secring %s/sec
|
||||||
|
%%commit
|
||||||
|
};
|
||||||
|
|
||||||
|
printf FH $format,$opts->{'name'},$tmpdir,$tmpdir;
|
||||||
|
`gpg $gpg_opts --gen-key $tmpdir/input 2>&1 `;
|
||||||
|
my $out = `gpg $gpg_opts --import $tmpdir/sec $tmpdir/pub 2>&1 `;
|
||||||
|
unlink($tmpdir . '/sec');
|
||||||
|
unlink($tmpdir . '/pub');
|
||||||
|
#print $out; die;
|
||||||
|
die unless $out =~ /key (\S+?)\:/m;
|
||||||
|
return $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub readfile {
|
||||||
|
my $fn = shift;
|
||||||
|
open(FH,$fn) or die "can't open file $fn for reading: $!\n";
|
||||||
|
my $data;
|
||||||
|
read(FH,$data,1024*5); # 5kb ought to be enough for anyone
|
||||||
|
close(FH);
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub goatse { q{
|
||||||
|
* g o a t s e x * g o a t s e x * g o a t s e x *
|
||||||
|
g g
|
||||||
|
o / \ \ / \ o
|
||||||
|
a| | \ | | a
|
||||||
|
t| `. | | : t
|
||||||
|
s` | | \| | s
|
||||||
|
e \ | / / \\\\\ --__ \\\\ : e
|
||||||
|
x \ \/ _--~~ ~--__| \ | x
|
||||||
|
* \ \_-~ ~-_\ | *
|
||||||
|
g \_ \ _.--------.______\| | g
|
||||||
|
o \ \______// _ ___ _ (_(__> \ | o
|
||||||
|
a \ . C ___) ______ (_(____> | / a
|
||||||
|
t /\ | C ____)/ \ (_____> |_/ t
|
||||||
|
s / /\| C_____) | (___> / \ s
|
||||||
|
e | ( _C_____)\______/ // _/ / \ e
|
||||||
|
x | \ |__ \\\\_________// (__/ | x
|
||||||
|
* | \ \____) `---- --' | *
|
||||||
|
g | \_ ___\ /_ _/ | g
|
||||||
|
o | / | | \ | o
|
||||||
|
a | | / \ \ | a
|
||||||
|
t | / / | | \ |t
|
||||||
|
s | / / \__/\___/ | |s
|
||||||
|
e | / | | | |e
|
||||||
|
x | | | | | |x
|
||||||
|
* g o a t s e x * g o a t s e x * g o a t s e x *
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
__END__
|
|
@ -12,7 +12,7 @@ noremap! <Right> <Esc>
|
||||||
au InsertEnter * hi StatusLine term=reverse guibg=#005000
|
au InsertEnter * hi StatusLine term=reverse guibg=#005000
|
||||||
au InsertLeave * hi StatusLine term=reverse guibg=#444444
|
au InsertLeave * hi StatusLine term=reverse guibg=#444444
|
||||||
set number
|
set number
|
||||||
set tw=75
|
set tw=79
|
||||||
set encoding=utf-8
|
set encoding=utf-8
|
||||||
setglobal fileencoding=utf-8
|
setglobal fileencoding=utf-8
|
||||||
set nobomb
|
set nobomb
|
||||||
|
|
Loading…
Reference in New Issue