File Coverage

blib/lib/Crypt/RIPEMD160.pm
Criterion Covered Total %
statement 45 45 100.0
branch 9 10 90.0
condition n/a
subroutine 10 10 100.0
pod 4 4 100.0
total 68 69 98.5


line stmt bran cond sub pod time code
1             package Crypt::RIPEMD160;
2              
3 5     5   545356 use strict;
  5         10  
  5         149  
4 5     5   25 use warnings;
  5         8  
  5         290  
5              
6             our $VERSION = '0.13';
7              
8 5     5   18 use XSLoader;
  5         6  
  5         186  
9             XSLoader::load('Crypt::RIPEMD160', $VERSION);
10              
11 5     5   28 use base 'Digest::base';
  5         9  
  5         619  
12              
13             #package RIPEMD160; # Package-Definition like in Crypt::IDEA
14              
15             #use strict;
16 5     5   21 use Carp;
  5         12  
  5         344  
17              
18             sub addfile
19             {
20 5     5   19 no strict 'refs';
  5         18  
  5         1840  
21 15     15 1 1496274 my ($self, $handle) = @_;
22 15         54 my ($package, $file, $line) = caller;
23 15         27 my ($data);
24              
25 15 100       44 if (!ref($handle)) {
26 2 50       15 $handle = $package . "::" . $handle unless ($handle =~ /(\:\:|\')/);
27             }
28 15         59 binmode($handle);
29 15         24 my $n;
30 15         313 while ($n = read($handle, $data, 8192)) {
31 11         580 $self->add($data);
32             }
33 15 100       360 croak "addfile read failed: $!" unless defined $n;
34 13         50 return $self;
35             }
36              
37             sub hexdigest
38             {
39 44     44 1 143795 my ($self) = shift;
40 44         49 my ($tmp);
41              
42 44         271 $tmp = unpack("H*", ($self->digest()));
43 44         266 return(substr($tmp, 0,8) . " " . substr($tmp, 8,8) . " " .
44             substr($tmp,16,8) . " " . substr($tmp,24,8) . " " .
45             substr($tmp,32,8));
46             }
47              
48             sub hash
49             {
50 54     54 1 5487 my($self, $data) = @_;
51              
52 54 100       125 if (ref($self)) {
53 1         4 $self->reset();
54             } else {
55 53         216 $self = Crypt::RIPEMD160->new;
56             }
57 54         274 $self->add($data);
58 54         366 $self->digest();
59             }
60              
61             sub hexhash
62             {
63 37     37 1 6252 my($self, $data) = @_;
64              
65 37 100       94 if (ref($self)) {
66 2         5 $self->reset();
67             } else {
68 35         111 $self = Crypt::RIPEMD160->new;
69             }
70 37         403 $self->add($data);
71 37         88 $self->hexdigest();
72             }
73              
74             1;
75             __END__