Acme-Indigest-Crypt
view release on metacpan or search on metacpan
bin/indigestable-crypt view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Acme::Indigest::Crypt;
use Term::ReadKey;
sub _readline {
my $prompt = shift;
if ( defined $prompt ) {
print $prompt;
}
ReadMode 2;
my $line = <STDIN>;
chomp $line;
ReadMode 0;
print "\n";
return $line;
}
sub _digest {
my $phrase = shift;
my $salt_string = shift;
my $rounds = shift;
defined or $_ = $ENV{ AIC_SALT_STRING } for $salt_string;
defined or $_ = $ENV{ AIC_ROUNDS } for $rounds;
return Acme::Indigest::Crypt->digest( $phrase, $salt_string, $rounds );
}
if ( -t STDIN ) {
if ( $ENV{ AIC_EMIT } ) {
my $phrase = _readline( 'Passphrase: ' );
print _digest $phrase;
}
else {
my $phrase = _readline( 'Passphrase: ' );
my $phrase_again = _readline( 'Passphrase (again): ' );
if ( $phrase ne $phrase_again ) {
die "Passphrase mismatch\n";
}
print _digest( $phrase ), "\n";
}
}
else {
print Acme::Indigest::Crypt->digest_multiple( join '', <STDIN> );
}
1;
( run in 2.080 seconds using v1.01-cache-2.11-cpan-6aa56a78535 )