/usr/share/perl5/Digest/MoreFallbacks.pm is in libcrypt-util-perl 0.11-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #!/usr/bin/perl
package Digest::MoreFallbacks;
use strict;
use warnings;
use Digest ();
for ( $Digest::MMAP{"RIPEMD-160"} ) {
s/PIPE/RIPE/ if defined;
}
_add_fallback($_, "Crypt::RIPEMD160") for "RIPEMD160", "RIPEMD-160";
foreach my $sha (1, 224, 256, 384, 512) {
_add_fallback("SHA$sha", [ "Digest::SHA::PurePerl", $sha ]);
_add_fallback("SHA-$sha", [ "Digest::SHA::PurePerl", $sha ]);
}
_add_fallback(MD5 => $_) for qw(Digest::MD5 Digest::Perl::MD5);
sub _add_fallback {
my ( $alg, @args ) = @_;
my $list;
if ( $list = $Digest::MMAP{$alg} ) {
unless ( ref $list eq 'ARRAY' ) {
$list = $Digest::MMAP{$alg} = [ $list ];
}
} else {
$list = $Digest::MMAP{$alg} = [];
}
_append_fallback($list, @args);
}
sub _append_fallback {
my ( $list, $impl ) = @_;
if ( ref $impl ) {
push @$list, $impl;
} else {
my %seen;
@$list = grep { ref($_) or !$seen{$_}++ } @$list, $impl;
}
}
__PACKAGE__;
__END__
=pod
=head1 NAME
Digest::MoreFallbacks - Provide additional fallbacks in L<Digest>'s MMAP table.
=head1 SYNOPSIS
use Digest::MoreFallbacks;
Digest->new("SHA-1")
=head1 DESCRIPTION
This module adds entries to L<Digest>'s algorithm to implementation table. The
intent is to provide better fallback facilities, including pure Perl modules
(L<Digest::SHA::PurePerl>, L<Digest::MD5>), and facilitating for modules that
don't match the naming convention (L<Crypt::RIPEMD160> would have worked if it
were named L<Digest::RIPEMD160>).
=cut
|