1package Digest::MD5::M4p;
2
3use strict;
4use warnings;
5use vars qw($VERSION @ISA @EXPORT_OK);
6$VERSION = '0.01';
7
8require Exporter;
9*import = \&Exporter::import;
10@EXPORT_OK = qw(md5 md5_hex md5_base64);
11
12require DynaLoader;
13@ISA=qw(DynaLoader);
14
15eval {
16    require Digest::base;
17    push(@ISA, 'Digest::base');
18};
19if ($@) {
20    my $err = $@;
21    *add_bits = sub { die $err };
22}
23
24
25eval {
26    Digest::MD5::M4p->bootstrap($VERSION);
27};
28if ($@) {
29    my $olderr = $@;
30    eval {
31	# Try to load the pure perl version which does not exist so far
32	require Digest::Perl::MD5::M4p;
33
34	Digest::Perl::MD5::M4p->import(qw(md5 md5_hex md5_base64));
35	push(@ISA, "Digest::Perl::MD5");  # make OO interface work
36    };
37    if ($@) {
38	# restore the original error
39	die $olderr;
40    }
41}
42else {
43    *reset = \&new;
44}
45
461;
47__END__
48
49=head1 NAME
50
51Digest::MD5::M4p - Perl interface to a variant of the MD5 algorithm
52
53=head1 SYNOPSIS
54
55 See Digest::MD5.
56
57=head1 AUTHORS
58
59The original C<MD5> interface was written by Neil Winton
60(C<N.Winton@axion.bt.co.uk>).
61
62The current C<Digest::MD5> module was written by Gisle Aas <gisle@ActiveState.com>.
63
64Only minor hacks are required for this !! incompatible !! version.
65
66=cut
67