ebx
view release on metacpan or search on metacpan
PassRing.pm view on Meta::CPAN
$self->{who} = $who;
return $self;
}
sub init_gnupg {
my $self = shift;
require GnuPG::Interface;
my $gpg = $self->{gnupg} = GnuPG::Interface->new();
$gpg->options->hash_init(
armor => 0,
always_trust => 1,
);
$gpg->options->meta_interactive(0);
$gpg->options->push_recipients($self->{who});
}
sub get_keyring {
my ($self, $pass) = @_;
$self->{passphrase} = $pass if defined $pass;
my $frozen;
open my $keyfile, $self->{keyfile};
read($keyfile, $frozen, 3);
PassRing.pm view on Meta::CPAN
return thaw(Crypt::Rijndael->new(
Digest::MD5::md5_hex($self->{passphrase}),
&Crypt::Rijndael::MODE_CBC,
)->decrypt($frozen->{data}));
}
sub thaw_gnupg {
my ($self, $frozen) = @_;
return thaw(scalar(
`echo $self->{passphrase} | gpg -d --no-tty --passphrase-fd=0 $self->{keyfile}`
)) if $^O eq 'cygwin'; # XXX: kludge, fixme.
local $/;
return unless -e $self->{keyfile};
open KEY, $self->{keyfile}
or die "can't open keyfile $self->{keyfile}: $!";
$self->init_gnupg;
-d enable debugging messages
-f enable per-site forking (Unix only)
-g skip passring check, use guest for all sites
-h show help message and usage info
-l enable per-site locking
-m <maxmsg> set maximal number of message to keep track
-o [logfile] output to log stdout instead of log files
-p post only; skip fetching articles
-r <delay> repeat sync every <delay> seconds
-s [interval] write config every [interval] updates (default 1)
-u <user> specify the owner of gpg passring
-x remove lockfiles and proceed anyway
-A sync archive *only*: ignore articles
-F force fetching of duplicate articles
-P preserve remote user id and headers
-R refresh message id, do nothing else
<boards>... process specified boards or source
<sites>... set passring against specified site identifiers
=head1 ENVIRONMENT
( run in 0.788 second using v1.01-cache-2.11-cpan-df04353d9ac )