Finance-Bank-Cahoot

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

abstract:           ~
author:
    - Jon Connell <cpan@figsandfudge.com>
license:            unknown
distribution_type:  module
configure_requires:
    ExtUtils::MakeMaker:  0
requires:
    Carp:                 0
    Class::Accessor:      0
    Crypt::CBC:           0
    Crypt::DES_PP:        0
    Date::Parse:          0
    Digest::MD5:          0
    English:              0
    ExtUtils::MakeMaker:  0
    File::Slurp:          0
    File::Spec:           0
    HTML::Form:           0
    HTML::TableExtract:   0
    IO::File:             0

Makefile.PL  view on Meta::CPAN

use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
	      'NAME'	     => 'Finance::Bank::Cahoot',
              'AUTHOR'       => 'Jon Connell <cpan@figsandfudge.com>',
	      'VERSION_FROM' => 'lib/Finance/Bank/Cahoot.pm', # finds $VERSION
	      'PREREQ_PM'    => { 'Carp' => 0,
				  'Class::Accessor' => 0,
				  'Crypt::CBC' => 0,
				  'Crypt::DES_PP' => 0,
                                  'Date::Parse' => 0,
                                  'Digest::MD5' => 0,
                                  'English' => 0,
                                  'ExtUtils::MakeMaker' => 0,
                                  'File::Slurp' => 0,
                                  'File::Spec' => 0,
                                  'HTML::Form' => 0,
                                  'HTML::TableExtract' => 0,
                                  'IO::File' => 0,

lib/Finance/Bank/Cahoot/CredentialsProvider/CryptFile.pm  view on Meta::CPAN

package Finance::Bank::Cahoot::CredentialsProvider::CryptFile;
use base qw(Finance::Bank::Cahoot::CredentialsProvider);

use strict;
use warnings 'all';
use vars qw($VERSION);

$VERSION = '1.07';

use Carp qw(croak);
use Crypt::CBC;
use English '-no_match_vars';
use File::Slurp qw(slurp);
use IO::File;

sub _init
{
  my ($self, $options) = @_;

  croak 'No key provided' if not defined $options->{key};
  my $cipher = Crypt::CBC->new(-key    => $options->{key},
			       -cipher => 'DES_PP');
  my $keyfile = $options->{keyfile};
  $keyfile = $ENV{HOME}.'/.cahoot' if not defined $keyfile;

  if (-e $keyfile) {
    my $fh = new IO::File $keyfile, 'r'
      or croak "Can't open $keyfile for reading: $OS_ERROR";
    my $data = slurp $fh;
    my $plaintext = $cipher->decrypt($data);
    for (split /\n/, $plaintext) {

t/05-cryptfile.t  view on Meta::CPAN

		      );

while (my ($message, $credentials) = each %invalid_details) {
  if ($message =~ /open.*reading/) {
    new IO::File $credentials->{options}->{keyfile}, 'w';
    chmod 000, $credentials->{options}->{keyfile};
  } else {
    unlink 'temp_keyfile';
  }
  dies_ok {
    local $^W = 0;  ## supress UNIVERSAL::can warning from Crypt::CBC
    my $provider =
      Finance::Bank::Cahoot::CredentialsProvider::CryptFile->new(%{$credentials});
  } $message.': expected to fail';
  my $re = $message;
  $re =~ s/\s*\(\d+\)$//;
  like($@, qr/$re at/, 'exception: '.$message);
  foreach (qw(account password username)) {
    no strict 'refs';
    undef *{"Finance::Bank::Cahoot::CredentialsProvider::CryptFile::$_"};
    undef *{"Finance::Bank::Cahoot::CredentialsProvider::Constant::$_"};



( run in 1.373 second using v1.01-cache-2.11-cpan-df04353d9ac )