/lib/AwesomeGrid/Keyring.pm
use strict;
use AwesomeGrid;
use AwesomeGrid::Config;
my $config = AwesomeGrid::Config::config();
my $gpg = $config->{ } || '/usr/bin/gpg';
{
system(qq!$gpg --no-default-keyring --keyring "$AwesomeGrid::confdir/keyring/pubring.gpg" --secret-keyring "$AwesomeGrid::confdir/keyring/secring.gpg" --trustdb-name "$AwesomeGrid::confdir/keyring/trustdb.gpg" ! . join(' ',@_));
}
{
my $passphrase = shift;
open GPG, qq!|$gpg --batch --passphrase-fd 0 --no-default-keyring --keyring "$AwesomeGrid::confdir/keyring/pubring.gpg" --secret-keyring "$AwesomeGrid::confdir/keyring/secring.gpg" --trustdb-name "$AwesomeGrid::confdir/keyring/trustdb.gpg" ! . join(' ',@_);
print GPG $passphrase;
close GPG;
}
{
if (-e "$AwesomeGrid::confdir/keyring/secring.gpg") {
print "Refusing to clobber existing keyring.\n";
return;
}
if (!-d "$AwesomeGrid::confdir/keyring") {
mkdir "$AwesomeGrid::confdir/keyring";
}
gpg('--gen-key');
}
{
my $file = shift;
gpg(qq{--import "$file"});
}
{
my $who = shift;
gpg(qq{--output $who-pubkey.asc --armor --export $who});
print "Wrote $who-pubkey.asc\n";
}
{
gpg('--list-keys');
}
{
my $who = shift;
my $in = shift;
my $out = shift;
my $passphrase = shift;
gpgpass($passphrase,qq{--recipient $who --sign --encrypt --output "$out" "$in"});
}
1;