Skip to content

Commit

Permalink
Move from Digest::SHA1 to Digest::SHA.
Browse files Browse the repository at this point in the history
Digest::SHA is a core module in newer versions of Perl and preferred over
Digest::SHA1.  Using Digest::SHA also allows for the use of the SHA-2 functions,
which have been added.
  • Loading branch information
bk2204 committed Jun 28, 2015
1 parent b070cd7 commit b1a5d8d
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 4 deletions.
2 changes: 1 addition & 1 deletion dist.ini
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Digest::MD5 = 0

; PGP5 compat.
Crypt::DES_EDE3 = 0
Digest::SHA1 = 0
Digest::SHA = 0

; GnuPG compat.
Crypt::CAST5_PP = 0
Expand Down
53 changes: 51 additions & 2 deletions lib/Crypt/OpenPGP/Digest.pm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ use vars qw( %ALG %ALG_BY_NAME );
1 => 'MD5',
2 => 'SHA1',
3 => 'RIPEMD160',
8 => 'SHA256',
9 => 'SHA384',
10 => 'SHA512',
11 => 'SHA224',
);
%ALG_BY_NAME = map { $ALG{$_} => $_ } keys %ALG;

Expand Down Expand Up @@ -64,8 +68,8 @@ use base qw( Crypt::OpenPGP::Digest );

sub init {
my $dig = shift;
require Digest::SHA1;
$dig->{md} = \&Digest::SHA1::sha1;
require Digest::SHA;
$dig->{md} = \&Digest::SHA::sha1;
$dig;
}

Expand All @@ -80,6 +84,51 @@ sub init {
$dig;
}

package Crypt::OpenPGP::Digest::SHA224;
use strict;
use base qw( Crypt::OpenPGP::Digest );

sub init {
my $dig = shift;
require Digest::SHA;
$dig->{md} = \&Digest::SHA::sha224;
$dig;
}

package Crypt::OpenPGP::Digest::SHA256;
use strict;
use base qw( Crypt::OpenPGP::Digest );

sub init {
my $dig = shift;
require Digest::SHA;
$dig->{md} = \&Digest::SHA::sha256;
$dig;
}

package Crypt::OpenPGP::Digest::SHA384;
use strict;
use base qw( Crypt::OpenPGP::Digest );

sub init {
my $dig = shift;
require Digest::SHA;
$dig->{md} = \&Digest::SHA::sha384;
$dig;
}

package Crypt::OpenPGP::Digest::SHA512;
use strict;
use base qw( Crypt::OpenPGP::Digest );

sub init {
my $dig = shift;
require Digest::SHA;
$dig->{md} = \&Digest::SHA::sha512;
$dig;
}


1;
__END__
Expand Down
6 changes: 5 additions & 1 deletion t/07-digest.t
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ my %TESTDATA = (
1 => [ 16, '6abb1d8ca3f00772440701359a8b2fcf' ],
2 => [ 20, '37316c7b5cd5c1953ba5d9752c4dabe959c8af53' ],
3 => [ 20, 'd3d53bea7a263f0086f6a1584c52dfae9e494ce8' ],
8 => [ 32, 'ba8a15767957c344dd23e38f6d00115cf00a2dfb1b7f28c5a85c863abd951746' ],
9 => [ 48, '0cee26e732f687308124849c6fd97f39acf5267d45246bd520fdae880e17c9c749ee4bc987642811eefb44e920c764b3' ],
10 => [ 64, '1849c153b7aaca8eedd1e774191770c94f347ad65be3cb4733406c1d56b17512122bb7cbbdf3e6377aa4c5b3c72433c64f590d321671dc3aa7fc93fdeafebd68' ],
11 => [ 28, '6576f1956f2ba82934ff3b540eb284168c371b9c66d4c6d7bc2a731a' ],
);

my $data = <<TEXT;
Expand Down Expand Up @@ -55,4 +59,4 @@ for my $did ( sort { $a <=> $b } keys %TESTS ) {
}
is $hash, pack( 'H*', $TESTDATA{$did}[1] ), 'digest data matches';
}
}
}

0 comments on commit b1a5d8d

Please sign in to comment.