File Coverage

blib/lib/Net/SSH/Perl/Cipher/AES_CBC.pm
Criterion Covered Total %
statement 29 29 100.0
branch 2 2 100.0
condition n/a
subroutine 10 11 90.9
pod 3 6 50.0
total 44 48 91.6


line stmt bran cond sub pod time code
1             package Net::SSH::Perl::Cipher::AES_CBC;
2              
3 2     2   16 use strict;
  2         5  
  2         62  
4              
5 2     2   14 use Net::SSH::Perl::Cipher;
  2         4  
  2         48  
6 2     2   9 use base qw( Net::SSH::Perl::Cipher );
  2         6  
  2         158  
7              
8 2     2   246 use Net::SSH::Perl::Cipher::CBC;
  2         5  
  2         88  
9 2     2   242 use Crypt::Cipher::AES;
  2         273  
  2         495  
10              
11             sub new {
12 7     7 1 15 my $class = shift;
13 7         21 my $ciph = bless { }, $class;
14 7 100       36 $ciph->init(@_) if @_;
15 7         96 $ciph;
16             }
17              
18       0 0   sub keysize { } # stub
19 10     10 0 58 sub blocksize { 16 } # 128 bits as required by AES
20              
21             sub init {
22 7     7 0 17 my $ciph = shift;
23 7         21 my($key, $iv) = @_;
24              
25 7         32 $key = substr($key,0,$ciph->keysize);
26 7         36 my $aes = Crypt::Cipher::AES->new($key);
27 7         377 $ciph->{cbc} = Net::SSH::Perl::Cipher::CBC->new($aes, substr($iv,0,$ciph->blocksize));
28             }
29              
30             sub encrypt {
31 3     3 1 3378 my($ciph, $text) = @_;
32 3         14 return $ciph->{cbc}->encrypt($text);
33             }
34              
35             sub decrypt {
36 4     4 1 27 my($ciph, $text) = @_;
37 4         18 return $ciph->{cbc}->decrypt($text);
38             }
39              
40             1;
41             __END__