File Coverage

lib/Crypt/CBC/PBKDF.pm
Criterion Covered Total %
statement 1608 1608 100.0
branch 2 4 50.0
condition n/a
subroutine 536 536 100.0
pod 0 4 0.0
total 2146 2152 99.7


line stmt bran cond sub pod time code
1             package Crypt::CBC::PBKDF;
2              
3             # just a virtual base class for passphrase=>key derivation functions
4 14     14   7941 use strict;
  14         32  
  14         361  
5 14     14   104 use File::Basename 'dirname','basename';
  14         25  
  14         1055  
6 13     13   78 use Carp 'croak';
  13         21  
  13         4394  
7              
8             sub new {
9 1768     1768 0 2792 my $class = shift;
10 1768         1779 my $subclass = shift;
11 1768         1700 my $options = shift;
12              
13 1768         2718 my $package = __PACKAGE__."::$subclass";
14 12 50   12   3880 eval "use $package; 1" or
  12     12   29  
  12     11   200  
  12     10   717  
  12     10   28  
  12     10   150  
  11     10   472  
  11     10   21  
  11     10   146  
  10     10   623  
  10     10   18  
  10     10   117  
  10     10   66  
  10     10   16  
  10     9   114  
  10     9   77  
  10     9   18  
  10     9   108  
  10     9   72  
  10     9   19  
  10     9   124  
  10     9   70  
  10     9   18  
  10     9   119  
  10     9   67  
  10     9   17  
  10     9   121  
  10     9   86  
  10     9   19  
  10     9   119  
  10     9   656  
  10     9   28  
  10     9   143  
  10     9   68  
  10     9   19  
  10     9   130  
  10     9   70  
  10     9   20  
  10     9   134  
  10     9   73  
  10     9   18  
  10     9   121  
  9     9   62  
  9     9   17  
  9     9   99  
  9     9   59  
  9     9   17  
  9     9   116  
  9     9   56  
  9     9   17  
  9     9   109  
  9     9   57  
  9     9   18  
  9     9   120  
  9     9   59  
  9     9   18  
  9     9   173  
  9     9   61  
  9     3   92  
  9     3   135  
  9     3   59  
  9     3   14  
  9     3   170  
  9     3   69  
  9     3   18  
  9     3   97  
  9     3   116  
  9     3   20  
  9     3   123  
  9     3   61  
  9     3   74  
  9     3   115  
  9     3   60  
  9     3   60  
  9     3   110  
  9     3   60  
  9     3   17  
  9     3   104  
  9     3   59  
  9     3   19  
  9     3   106  
  9     3   58  
  9     3   25  
  9     3   118  
  9     3   59  
  9     3   15  
  9     3   103  
  9     3   60  
  9     3   14  
  9     3   102  
  9     3   57  
  9     3   16  
  9     3   113  
  9     3   65  
  9     3   25  
  9     3   110  
  9     3   64  
  9     3   14  
  9     3   105  
  9     3   60  
  9     3   15  
  9     3   104  
  9     3   62  
  9     3   11  
  9     3   104  
  9     3   59  
  9     3   18  
  9     3   105  
  9     3   64  
  9     3   15  
  9     3   120  
  9     3   62  
  9     3   19  
  9     3   115  
  9     3   60  
  9     3   16  
  9     3   103  
  9     3   61  
  9     3   17  
  9     3   108  
  9     3   59  
  9     3   16  
  9     3   104  
  9     3   59  
  9     3   16  
  9     3   108  
  9     3   58  
  9     3   11  
  9     3   100  
  9     3   65  
  9     3   14  
  9     3   101  
  9     3   60  
  9     3   19  
  9     3   110  
  9     3   61  
  9     3   15  
  9     3   106  
  9     3   59  
  9     3   16  
  9     3   107  
  9     3   92  
  9     3   48  
  9     3   108  
  9     3   58  
  9     3   16  
  9     3   96  
  9     3   67  
  9     3   17  
  9     3   137  
  9     3   60  
  9     3   17  
  9     3   104  
  9     3   61  
  9     3   24  
  9     3   105  
  9     3   59  
  9     3   17  
  9     3   102  
  9     3   58  
  9     3   18  
  9     3   97  
  9     3   59  
  9     3   15  
  9     3   113  
  9     3   56  
  9     3   16  
  9     3   95  
  9     3   58  
  9     3   23  
  9     3   107  
  9     3   61  
  9     3   26  
  9     3   164  
  1768     3   87208  
  3     3   16  
  3     3   6  
  3     3   27  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   5  
  3     3   28  
  3     3   16  
  3     3   11  
  3     3   30  
  3     3   15  
  3     3   5  
  3     3   27  
  3     3   16  
  3     3   5  
  3     3   25  
  3     3   15  
  3     3   5  
  3     3   28  
  3     3   18  
  3     3   5  
  3     3   26  
  3     3   14  
  3     3   7  
  3     3   44  
  3     3   18  
  3     3   6  
  3     3   38  
  3     3   15  
  3     3   4  
  3     3   27  
  3     3   15  
  3     3   7  
  3     3   26  
  3     3   15  
  3     3   5  
  3     3   26  
  3     3   15  
  3     3   7  
  3     3   27  
  3     3   29  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   5  
  3     3   28  
  3     3   15  
  3     3   5  
  3     3   27  
  3     3   17  
  3     3   120  
  3     3   31  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   4  
  3     3   27  
  3     3   17  
  3     3   113  
  3     3   32  
  3     3   16  
  3     3   3  
  3     3   29  
  3     3   15  
  3     3   5  
  3     3   29  
  3     3   15  
  3     3   5  
  3     3   66  
  3     3   16  
  3     3   4  
  3     3   29  
  3     3   17  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   3  
  3     3   29  
  3     3   15  
  3     3   4  
  3     3   27  
  3     3   17  
  3     3   3  
  3     3   29  
  3     3   17  
  3     3   5  
  3     3   27  
  3     3   16  
  3     3   3  
  3     3   28  
  3     3   16  
  3     3   5  
  3     3   30  
  3     3   17  
  3     3   5  
  3     3   28  
  3     3   15  
  3     3   5  
  3     3   26  
  3     3   17  
  3     3   5  
  3     3   27  
  3     3   17  
  3     3   11  
  3     3   33  
  3     3   15  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   4  
  3     3   26  
  3     3   16  
  3     3   4  
  3     3   28  
  3     3   16  
  3     3   6  
  3     3   26  
  3     3   15  
  3     3   6  
  3     3   27  
  3     3   16  
  3     3   4  
  3     3   28  
  3     3   18  
  3     3   5  
  3     3   30  
  3     3   15  
  3     3   12  
  3     3   30  
  3     3   15  
  3     3   5  
  3     3   29  
  3     3   17  
  3     3   4  
  3     3   28  
  3     3   16  
  3     3   4  
  3     3   26  
  3     3   18  
  3     3   4  
  3     3   28  
  3     3   16  
  3     3   7  
  3     3   27  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   15  
  3     3   6  
  3     3   27  
  3     3   16  
  3     3   3  
  3     3   29  
  3     3   16  
  3     3   4  
  3     3   28  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   18  
  3     3   3  
  3     3   28  
  3     3   27  
  3     3   5  
  3     3   29  
  3     3   16  
  3     3   4  
  3     3   30  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   4  
  3     3   27  
  3     3   17  
  3     3   4  
  3     3   27  
  3     3   18  
  3     3   7  
  3     3   26  
  3     3   16  
  3     3   5  
  3     3   25  
  3     3   17  
  3     3   5  
  3     3   27  
  3     3   16  
  3     3   5  
  3     3   29  
  3     3   17  
  3     3   4  
  3     3   31  
  3     3   17  
  3     3   4  
  3     3   27  
  3     3   18  
  3     3   4  
  3     3   27  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   6  
  3     3   27  
  3     3   16  
  3     3   6  
  3     3   26  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   17  
  3     3   5  
  3     3   30  
  3     3   16  
  3     3   6  
  3     3   27  
  3     3   18  
  3     3   6  
  3     3   38  
  3     3   17  
  3     3   6  
  3     3   40  
  3     3   14  
  3     3   5  
  3     3   28  
  3     3   15  
  3     3   6  
  3     3   28  
  3     3   17  
  3     3   6  
  3     3   28  
  3     3   15  
  3     3   4  
  3     3   30  
  3     3   16  
  3     3   5  
  3     3   28  
  3     3   18  
  3     3   6  
  3     1   27  
  3     1   17  
  3     1   4  
  3     1   29  
  3     1   16  
  3     1   8  
  3     1   27  
  3     1   16  
  3     1   5  
  3     1   28  
  3     1   15  
  3     1   5  
  3     1   40  
  3     1   15  
  3     1   6  
  3     1   30  
  3     1   19  
  3     1   4  
  3     1   28  
  3     1   17  
  3     1   5  
  3     1   29  
  3     1   17  
  3     1   4  
  3     1   38  
  3     1   17  
  3     1   3  
  3     1   32  
  3     1   16  
  3     1   5  
  3     1   37  
  3     1   16  
  3     1   4  
  3     1   30  
  3     1   18  
  3     1   5  
  3     1   27  
  3     1   17  
  3     1   3  
  3     1   28  
  3     1   17  
  3     1   13  
  3     1   32  
  3     1   17  
  3     1   4  
  3     1   29  
  3     1   18  
  3     1   17  
  3     1   28  
  3     1   17  
  3     1   6  
  3     1   28  
  3     1   17  
  3     1   5  
  3     1   28  
  3     1   17  
  3     1   5  
  3     1   28  
  3     1   17  
  3     1   5  
  3     1   28  
  3     1   16  
  3     1   6  
  3     1   30  
  3     1   17  
  3     1   5  
  3     1   30  
  3     1   17  
  3     1   5  
  3     1   28  
  3     1   17  
  3     1   5  
  3     1   28  
  3     1   16  
  3     1   6  
  3     1   30  
  3     1   18  
  3     1   4  
  3     1   28  
  3     1   19  
  3     1   6  
  3     1   30  
  3     1   18  
  3     1   5  
  3     1   29  
  3     1   18  
  3     1   5  
  3     1   28  
  3     1   17  
  3     1   4  
  3     1   27  
  3     1   18  
  3     1   5  
  3     1   29  
  3     1   17  
  3     1   8  
  3     1   29  
  3     1   16  
  3     1   5  
  3     1   53  
  3     1   16  
  3     1   7  
  3     1   37  
  3     1   17  
  3     1   6  
  3     1   29  
  3         18  
  3         4  
  3         29  
  3         17  
  3         6  
  3         50  
  3         16  
  3         4  
  3         28  
  3         17  
  3         4  
  3         28  
  3         18  
  3         5  
  3         28  
  3         17  
  3         5  
  3         29  
  3         16  
  3         5  
  3         27  
  3         16  
  3         6  
  3         27  
  3         18  
  3         5  
  3         37  
  3         17  
  3         5  
  3         28  
  3         19  
  3         11  
  3         32  
  3         31  
  3         7  
  3         31  
  3         18  
  3         6  
  3         30  
  3         18  
  3         4  
  3         29  
  3         17  
  3         6  
  3         26  
  3         17  
  3         5  
  3         39  
  3         17  
  3         12  
  3         30  
  3         17  
  3         7  
  3         29  
  3         17  
  3         6  
  3         27  
  3         15  
  3         5  
  3         30  
  3         17  
  3         5  
  3         28  
  3         15  
  3         4  
  3         39  
  3         19  
  3         7  
  3         25  
  3         17  
  3         5  
  3         28  
  3         3084  
  3         9  
  3         52  
  3         17  
  3         4  
  3         30  
  3         18  
  3         7  
  3         28  
  3         18  
  3         5  
  3         29  
  3         16  
  3         6  
  3         39  
  3         18  
  3         6  
  3         27  
  3         17  
  3         7  
  3         27  
  3         18  
  3         5  
  3         29  
  3         17  
  3         4  
  3         29  
  3         16  
  3         5  
  3         28  
  3         17  
  3         5  
  3         29  
  3         17  
  3         6  
  3         27  
  3         17  
  3         7  
  3         30  
  3         17  
  3         5  
  3         28  
  3         15  
  3         4  
  3         28  
  3         17  
  3         6  
  3         26  
  3         17  
  3         7  
  3         36  
  3         18  
  3         4  
  3         29  
  3         16  
  3         4  
  3         28  
  3         17  
  3         5  
  3         27  
  3         25  
  3         5  
  3         33  
  3         28  
  3         5  
  3         29  
  3         15  
  3         4  
  3         29  
  3         16  
  3         6  
  3         27  
  3         18  
  3         4  
  3         27  
  3         15  
  3         5  
  3         27  
  3         17  
  3         6  
  3         27  
  3         15  
  3         4  
  3         28  
  3         17  
  3         5  
  3         26  
  3         17  
  3         5  
  3         29  
  3         16  
  3         5  
  3         29  
  3         17  
  3         5  
  3         28  
  3         18  
  3         6  
  3         27  
  3         17  
  3         4  
  3         27  
  3         16  
  3         6  
  3         27  
  3         17  
  3         4  
  3         27  
  3         17  
  3         5  
  3         28  
  3         16  
  3         7  
  3         30  
  3         18  
  3         6  
  3         29  
  3         16  
  3         6  
  3         30  
  3         17  
  3         6  
  3         27  
  3         28  
  3         5  
  3         30  
  3         15  
  3         6  
  3         28  
  3         16  
  3         7  
  3         28  
  3         17  
  3         5  
  3         29  
  3         15  
  3         7  
  3         29  
  3         15  
  3         7  
  3         30  
  3         16  
  3         5  
  3         30  
  3         16  
  3         6  
  3         25  
  3         18  
  3         4  
  3         28  
  3         19  
  3         6  
  3         27  
  3         18  
  3         4  
  3         29  
  3         16  
  3         6  
  3         27  
  3         16  
  3         6  
  3         28  
  3         18  
  3         6  
  3         28  
  3         17  
  3         5  
  3         29  
  3         17  
  3         13  
  3         31  
  3         57  
  3         5  
  3         33  
  3         17  
  3         4  
  3         29  
  3         24  
  3         6  
  3         38  
  3         43  
  3         14  
  3         38  
  3         18  
  3         7  
  3         33  
  3         20  
  3         8  
  3         32  
  3         20  
  3         7  
  3         36  
  3         19  
  3         5  
  3         31  
  3         20  
  3         5  
  3         32  
  3         20  
  3         5  
  3         32  
  3         18  
  3         7  
  3         47  
  3         18  
  3         7  
  3         33  
  3         19  
  3         5  
  3         35  
  3         20  
  3         5  
  3         33  
  3         82  
  3         4  
  3         37  
  3         18  
  3         7  
  3         31  
  3         19  
  3         6  
  3         32  
  3         18  
  3         5  
  3         29  
  3         16  
  3         8  
  3         31  
  3         18  
  3         5  
  3         29  
  3         20  
  3         8  
  3         43  
  3         18  
  3         7  
  3         30  
  3         20  
  3         7  
  3         32  
  3         20  
  3         7  
  3         29  
  3         20  
  3         6  
  3         32  
  3         19  
  3         5  
  3         32  
  3         19  
  3         5  
  3         32  
  3         20  
  3         5  
  3         29  
  3         19  
  3         6  
  3         29  
  3         18  
  3         5  
  3         31  
  3         21  
  3         6  
  3         32  
  3         19  
  3         5  
  3         33  
  3         19  
  3         5  
  3         31  
  3         20  
  3         6  
  3         55  
  3         18  
  3         7  
  3         32  
  3         18  
  3         6  
  3         33  
  3         18  
  3         7  
  3         33  
  3         18  
  3         6  
  3         45  
  3         19  
  3         6  
  3         34  
  3         18  
  3         8  
  3         43  
  3         19  
  3         6  
  3         33  
  3         20  
  3         7  
  3         34  
  3         16  
  3         7  
  3         31  
  3         32  
  3         5  
  3         33  
  3         18  
  3         6  
  3         33  
  3         19  
  3         7  
  3         34  
  3         19  
  3         5  
  3         31  
  3         26  
  3         8  
  3         34  
  3         17  
  3         5  
  3         30  
  3         17  
  3         5  
  3         33  
  3         18  
  3         6  
  3         29  
  3         19  
  3         5  
  3         42  
  3         18  
  3         6  
  3         30  
  3         19  
  3         8  
  3         30  
  3         19  
  3         6  
  3         30  
  3         20  
  3         6  
  3         28  
  3         18  
  3         6  
  3         31  
  3         27  
  3         5  
  3         47  
  3         20  
  3         12  
  3         38  
  3         18  
  3         9  
  3         39  
  3         18  
  3         6  
  3         46  
  3         18  
  3         13  
  3         110  
  3         18  
  3         8  
  3         32  
  3         19  
  3         6  
  3         29  
  3         19  
  3         6  
  3         35  
  3         19  
  3         8  
  3         31  
  3         19  
  3         6  
  3         32  
  3         19  
  3         7  
  3         42  
  3         20  
  3         8  
  3         35  
  3         19  
  3         6  
  3         33  
  3         19  
  3         7  
  3         33  
  3         27  
  3         6  
  3         35  
  3         18  
  3         371  
  3         40  
  3         18  
  3         6  
  3         30  
  3         18  
  3         5  
  3         33  
  3         19  
  3         5  
  3         30  
  3         18  
  3         7  
  3         30  
  3         295  
  3         7  
  3         35  
  3         19  
  3         8  
  3         30  
  3         16  
  3         6  
  3         29  
  3         17  
  3         4  
  3         32  
  3         18  
  3         5  
  3         73  
  3         19  
  3         6  
  3         31  
  3         18  
  3         4  
  3         29  
  3         18  
  3         6  
  3         46  
  3         18  
  3         7  
  3         32  
  3         19  
  3         5  
  3         31  
  3         19  
  3         6  
  3         58  
  3         18  
  3         6  
  3         31  
  3         18  
  3         6  
  3         30  
  3         18  
  3         5  
  3         32  
  3         20  
  3         5  
  3         28  
  3         20  
  3         5  
  3         32  
  3         17  
  3         5  
  3         32  
  3         18  
  3         6  
  3         34  
  3         20  
  3         7  
  3         32  
  3         17  
  3         5  
  3         31  
  3         19  
  3         5  
  3         32  
  3         18  
  3         5  
  3         32  
  3         17  
  3         7  
  3         29  
  3         18  
  3         5  
  3         30  
  3         20  
  3         5  
  3         31  
  3         17  
  3         5  
  3         32  
  3         17  
  3         7  
  3         30  
  3         31  
  3         4  
  3         33  
  3         18  
  3         5  
  3         28  
  3         17  
  3         6  
  3         29  
  3         19  
  3         5  
  3         30  
  3         19  
  3         6  
  3         30  
  3         17  
  3         7  
  3         29  
  3         16  
  3         5  
  3         30  
  3         26  
  3         7  
  3         32  
  3         18  
  3         5  
  3         31  
  3         18  
  3         5  
  3         30  
  3         19  
  3         5  
  3         28  
  3         19  
  3         5  
  3         33  
  3         18  
  3         5  
  3         31  
  3         18  
  3         5  
  3         31  
  3         17  
  3         6  
  3         32  
  3         18  
  3         7  
  3         29  
  3         18  
  3         7  
  3         30  
  3         16  
  3         7  
  3         29  
  3         18  
  3         7  
  3         28  
  3         18  
  3         7  
  3         30  
  3         17  
  3         6  
  3         31  
  3         16  
  3         6  
  3         32  
  3         18  
  3         5  
  3         35  
  3         24  
  3         9  
  3         32  
  3         19  
  3         8  
  3         32  
  3         19  
  3         5  
  3         31  
  3         19  
  3         8  
  3         32  
  3         18  
  3         6  
  3         31  
  3         18  
  3         6  
  3         31  
  3         18  
  3         6  
  3         32  
  3         19  
  3         6  
  3         31  
  3         28  
  3         4  
  3         31  
  3         19  
  3         6  
  3         32  
  3         18  
  3         6  
  3         29  
  3         19  
  3         5  
  3         31  
  3         18  
  3         5  
  3         31  
  3         28  
  3         7  
  3         31  
  3         18  
  3         7  
  3         29  
  3         19  
  3         5  
  3         32  
  3         19  
  3         5  
  3         30  
  3         20  
  3         5  
  3         33  
  3         17  
  3         6  
  3         38  
  3         17  
  3         4  
  3         32  
  3         19  
  3         5  
  3         31  
  3         18  
  3         7  
  3         32  
  3         18  
  3         5  
  3         29  
  3         19  
  3         7  
  3         30  
  3         28  
  3         7  
  3         35  
  3         17  
  3         6  
  3         33  
  3         18  
  3         4  
  3         30  
  3         17  
  3         6  
  3         35  
  3         19  
  3         6  
  3         29  
  3         704  
  3         8  
  3         38  
  3         19  
  3         13  
  3         30  
  3         16  
  3         7  
  3         47  
  3         18  
  3         5  
  3         32  
  3         19  
  3         4  
  3         32  
  3         19  
  3         6  
  3         32  
  1         5  
  1         2  
  1         106  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         6  
  1         1  
  1         9  
  1         5  
  1         2  
  1         9  
  1         7  
  1         1  
  1         9  
  1         6  
  1         1  
  1         10  
  1         6  
  1         1  
  1         9  
  1         5  
  1         1  
  1         9  
  1         6  
  1         2  
  1         10  
  1         5  
  1         2  
  1         10  
  1         6  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         8  
  1         6  
  1         2  
  1         10  
  1         6  
  1         1  
  1         12  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         10  
  1         5  
  1         2  
  1         9  
  1         5  
  1         3  
  1         9  
  1         6  
  1         1  
  1         9  
  1         6  
  1         2  
  1         11  
  1         6  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         6  
  1         1  
  1         10  
  1         5  
  1         2  
  1         10  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         10  
  1         6  
  1         2  
  1         10  
  1         6  
  1         1  
  1         9  
  1         5  
  1         2  
  1         9  
  1         6  
  1         1  
  1         9  
  1         6  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         5  
  1         2  
  1         10  
  1         6  
  1         2  
  1         9  
  1         7  
  1         2  
  1         10  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         20  
  1         5  
  1         2  
  1         9  
  1         6  
  1         1  
  1         9  
  1         6  
  1         2  
  1         9  
  1         5  
  1         2  
  1         10  
  1         6  
  1         1  
  1         10  
  1         5  
  1         2  
  1         10  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         5  
  1         2  
  1         20  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         10  
  1         34  
  1         2  
  1         11  
  1         5  
  1         2  
  1         8  
  1         6  
  1         2  
  1         9  
  1         6  
  1         2  
  1         46  
  1         5  
  1         2  
  1         11  
  1         6  
  1         2  
  1         11  
  1         5  
  1         2  
  1         8  
  1         6  
  1         2  
  1         8  
  1         6  
  1         1  
  1         10  
  1         6  
  1         1  
  1         9  
  1         5  
  1         2  
  1         20  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         10  
  1         5  
  1         3  
  1         8  
  1         5  
  1         1  
  1         10  
  1         6  
  1         1  
  1         9  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         6  
  1         2  
  1         21  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         8  
  1         6  
  1         2  
  1         11  
  1         5  
  1         1  
  1         10  
  1         5  
  1         2  
  1         8  
  1         5  
  1         1  
  1         9  
  1         5  
  1         1  
  1         10  
  1         6  
  1         2  
  1         9  
  1         5  
  1         3  
  1         9  
  1         5  
  1         1  
  1         10  
  1         5  
  1         10  
  1         14  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         5  
  1         1  
  1         9  
  1         6  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         10  
  1         5  
  1         2  
  1         10  
  1         6  
  1         1  
  1         11  
  1         5  
  1         2  
  1         9  
  1         5  
  1         2  
  1         9  
  1         6  
  1         2  
  1         10  
  1         6  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         6  
  1         1  
  1         11  
  1         6  
  1         2  
  1         9  
  1         5  
  1         1  
  1         20  
  1         5  
  1         2  
  1         9  
  1         5  
  1         3  
  1         9  
  1         6  
  1         2  
  1         9  
15             croak "Could not load $subclass: $@";
16              
17 1768         8541 return $package->create(%$options);
18             }
19              
20             # returns a series of subclasses
21             sub list {
22 3     3 0 18 my $self = shift;
23 3         4 my $dir = dirname(__FILE__);
24 3         41 my @pm_files = <$dir/PBKDF/*.pm>;
25 3         17 my @subclasses;
26 3         4 foreach (@pm_files) {
27 3         28 my $base = basename($_);
28 3         21 $base =~ s/\.pm$//;
29 3         7 push @subclasses,$base;
30             }
31 3         28 return @subclasses;
32             }
33              
34             sub generate_hash {
35 3     3 0 17 my $self = shift;
36 3         6 my ($salt,$passphrase) = @_;
37 3         28 croak "generate() method not implemented in this class. Use one of the subclasses",join(',',$self->list);
38             }
39              
40             sub key_and_iv {
41 1767     1767 0 2103 my $self = shift;
42 1767 50       3099 croak 'usage $obj->salt_key_iv($salt,$passphrase)' unless @_ == 2;
43              
44 1767         3396 my $hash = $self->generate_hash(@_);
45              
46 1767         65205730 my $key = substr($hash,0,$self->{key_len});
47 1767         2600 my $iv = substr($hash,$self->{key_len},$self->{iv_len});
48 1767         4815 return ($key,$iv);
49             }
50              
51             1;