App-Raps2

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

		'Test::Fatal' => 0,
		'Test::More' => 0,
		'Test::Pod' => 0,
	},
	license => 'unrestricted',
	module_name => 'App::Raps2',
	requires => {
		'perl' => '5.10.0',
		'Carp' => 0,
		'Config::Tiny' => 0,
		'Crypt::CBC' => 0,
		'Crypt::Eksblowfish' => 0,
		'Crypt::Eksblowfish::Bcrypt' => 0,
		'File::BaseDir' => 0,
		'File::Path' => 2.06_05,
		'File::Slurp' => 0,
		'Getopt::Long' => 0,
		'POSIX' => 0,
		'Term::ReadLine' => 0,
	},
	script_files => 'bin/',

META.json  view on Meta::CPAN

      },
      "configure" : {
         "requires" : {
            "Module::Build" : "0.42"
         }
      },
      "runtime" : {
         "requires" : {
            "Carp" : "0",
            "Config::Tiny" : "0",
            "Crypt::CBC" : "0",
            "Crypt::Eksblowfish" : "0",
            "Crypt::Eksblowfish::Bcrypt" : "0",
            "File::BaseDir" : "0",
            "File::Path" : "2.0605",
            "File::Slurp" : "0",
            "Getopt::Long" : "0",
            "POSIX" : "0",
            "Term::ReadLine" : "0",
            "perl" : "v5.10.0"
         }

META.yml  view on Meta::CPAN

    version: '0.54'
  App::Raps2::Password:
    file: lib/App/Raps2/Password.pm
    version: '0.54'
  App::Raps2::UI:
    file: lib/App/Raps2/UI.pm
    version: '0.54'
requires:
  Carp: '0'
  Config::Tiny: '0'
  Crypt::CBC: '0'
  Crypt::Eksblowfish: '0'
  Crypt::Eksblowfish::Bcrypt: '0'
  File::BaseDir: '0'
  File::Path: '2.0605'
  File::Slurp: '0'
  Getopt::Long: '0'
  POSIX: '0'
  Term::ReadLine: '0'
  perl: v5.10.0
version: '0.54'

README  view on Meta::CPAN

raps2 - "Right, another password store" take two
------------------------------------------------

* <http://finalrewind.org/projects/raps2>

Dependencies
------------

 * perl version 5.10 or newer
 * Config::Tiny
 * Crypt::CBC
 * Crypt::Eksblowfish
 * File::BaseDir
 * File::Path
 * File::Slurp

Installation
------------

$ perl Build.PL
$ perl Build

bin/raps2  view on Meta::CPAN


Note that commandline arguments always override options set in the
configuration file.

=head1 DEPENDENCIES

=over

=item * Config::Tiny

=item * Crypt::CBC

=item * Crypt::Eksblowfish

=item * File::BaseDir

=item * File::Path (usually included with perl core)

=item * File::Slurp

=item * pwgen (if you want C<< raps2 add >> to generate passwords)

lib/App/Raps2/Password.pm  view on Meta::CPAN

package App::Raps2::Password;

use strict;
use warnings;
use 5.010;

use Carp 'confess';
use Crypt::CBC;
use Crypt::Eksblowfish;
use Crypt::Eksblowfish::Bcrypt qw(bcrypt_hash en_base64 de_base64);

our $VERSION = '0.54';

sub new {
	my ( $obj, %conf ) = @_;

	$conf{cost} //= 12;

lib/App/Raps2/Password.pm  view on Meta::CPAN

}

sub encrypt {
	my ( $self, %opt ) = @_;

	$opt{salt} //= $self->{salt};
	$opt{cost} //= $self->{cost};

	my $eksblowfish
	  = Crypt::Eksblowfish->new( $opt{cost}, $opt{salt}, $self->{passphrase}, );
	my $cbc = Crypt::CBC->new( -cipher => $eksblowfish );

	return $cbc->encrypt_hex( $opt{data} );
}

sub decrypt {
	my ( $self, %opt ) = @_;

	$opt{cost} //= $self->{cost};
	$opt{salt} //= $self->{salt};

	my $eksblowfish
	  = Crypt::Eksblowfish->new( $opt{cost}, $opt{salt}, $self->{passphrase}, );
	my $cbc = Crypt::CBC->new( -cipher => $eksblowfish );

	return $cbc->decrypt_hex( $opt{data} );
}

sub bcrypt {
	my ($self) = @_;

	return en_base64(
		bcrypt_hash(
			{

lib/App/Raps2/Password.pm  view on Meta::CPAN


=back

=head1 DIAGNOSTICS

When anything goes wrong, App::Raps2::Password will use Carp(3pm)'s B<confess>
method to die with a backtrace.

=head1 DEPENDENCIES

Crypt::CBC(3pm), Crypt::Eksblowfish(3pm).

=head1 BUGS AND LIMITATIONS

Unknown.

=head1 SEE ALSO

Crypt::CBC(3pm), Crypt::Eksblowfish(3pm).

=head1 AUTHOR

Copyright (C) 2011-2015 by Daniel Friesel E<lt>derf@finalrewind.orgE<gt>

=head1 LICENSE

  0. You just DO WHAT THE FUCK YOU WANT TO.



( run in 0.685 second using v1.01-cache-2.11-cpan-e1769b4cff6 )