File Coverage

lib/Crypt/CBC/PBKDF/pbkdf2.pm
Criterion Covered Total %
statement 20 20 100.0
branch n/a
condition 8 8 100.0
subroutine 5 5 100.0
pod 0 2 0.0
total 33 35 94.2


line stmt bran cond sub pod time code
1             package Crypt::CBC::PBKDF::pbkdf2;
2 5     5   34 use strict;
  5         9  
  5         192  
3              
4 5     5   28 use base 'Crypt::CBC::PBKDF';
  5         8  
  5         626  
5 5     5   2925 use Crypt::PBKDF2;
  5         731760  
  5         924  
6              
7             # options:
8             # key_len => 32 default
9             # iv_len => 16 default
10             # iterations => 10000 default
11             # hash_class => 'HMACSHA2' default
12              
13             sub create {
14 123     123 0 333 my $class = shift;
15 123         536 my %options = @_;
16 123   100     501 $options{key_len} ||= 32;
17 123   100     465 $options{iv_len} ||= 16;
18 123   100     454 $options{iterations} ||= 10_000;
19 123   100     845 $options{hash_class} ||= 'HMACSHA2';
20 123         960 return bless \%options,$class;
21             }
22              
23             sub generate_hash {
24 122     122 0 215 my $self = shift;
25 122         299 my ($salt,$passphrase) = @_;
26             my $pbkdf2 = Crypt::PBKDF2->new(%$self,
27 122         3352 output_len => $self->{key_len} + $self->{iv_len});
28 122         203809 return $pbkdf2->PBKDF2($salt,$passphrase);
29             }
30              
31             1;