Alt-Digest-MD5-OpenSSL

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

t/Alt-Digest-MD5-OpenSSL/02-version.t
t/Alt-Digest-MD5-OpenSSL/03-openssl_diag.t
t/Digest-MD5/01-use.t
t/Digest-MD5/02-version.t
t/original/align.t
t/original/badfile.t
t/original/bits.t
t/original/clone.t
t/original/files.t
t/original/md5-aaa.t
t/original/utf8.t
t/original/warns.t
typemap
META.yml                                 Module YAML meta-data (added by MakeMaker)
META.json                                Module JSON meta-data (added by MakeMaker)

MD5.xs  view on Meta::CPAN

void
add(self, ...)
        SV* self
    PREINIT:
        MD5_CTX* context = get_md5_ctx(aTHX_ self);
        int i;
        unsigned char *data;
        STRLEN len;
    PPCODE:
        for (i = 1; i < items; i++) {
            U32 had_utf8 = SvUTF8(ST(i));
            data = (unsigned char *)(SvPVbyte(ST(i), len));
            MD5_Update(context, data, len);
            if (had_utf8)
                sv_utf8_upgrade(ST(i));
        }
        XSRETURN(1);  /* self */

void
digest(context)
        MD5_CTX* context
    ALIAS:
        Digest::MD5::digest    = F_BIN
        Digest::MD5::hexdigest = F_HEX
        Digest::MD5::b64digest = F_B64

MD5.xs  view on Meta::CPAN

                }
            }
            if (msg) {
                const char *f = (ix == F_BIN) ? "md5" :
                                (ix == F_HEX) ? "md5_hex" : "md5_base64";
                warn("&Digest::MD5::%s function %s", f, msg);
            }
        }

        for (i = 0; i < items; i++) {
            U32 had_utf8 = SvUTF8(ST(i));
            data = (unsigned char *)(SvPVbyte(ST(i), len));
            MD5_Update(&context, data, len);
            if (had_utf8)
                sv_utf8_upgrade(ST(i));
        }
        MD5_Final(digeststr, &context);
        ST(0) = make_mortal_sv(aTHX_ digeststr, ix);
        XSRETURN(1);

SIGNATURE  view on Meta::CPAN

SHA256 f72080f645486850cdd57d0e1c151ee3ca68ff93b394d965e88a5dbaeab44905 t/Alt-Digest-MD5-OpenSSL/02-version.t
SHA256 4ed9583911e524f89df95460c619a269d3d8c037c022db9f93b77d9b8e1036a4 t/Alt-Digest-MD5-OpenSSL/03-openssl_diag.t
SHA256 3aa504d7b6f3b9ef1cf5e9fe896e37af280ffc182286c99d2390d7c2c678fc24 t/Digest-MD5/01-use.t
SHA256 f972216627f17293c50958825b211c60f3f4763dcc20f65edefa74401fc0ce9d t/Digest-MD5/02-version.t
SHA256 64caa89cf5dba4e4b54ede554675e784c7f91506c078fbdc4b081e05acb509af t/original/align.t
SHA256 d09af30d817b9d4bf3851cfd172ecb3ab8d3bf53a3a67b03fcdc856a13bf66fa t/original/badfile.t
SHA256 39c8f076cb89fa53158d18b888864a72992b36b591d9b2eb6e07e5819c049872 t/original/bits.t
SHA256 d2c0d6c1dbdd8f3652adf38e67b2f50e8fc08423393692330150fddab4e84649 t/original/clone.t
SHA256 e3ca1c628e8817ce37fac4eb504a5696e4dcea6e030b5c0af15531086ce83fd9 t/original/files.t
SHA256 2c2496dc5f9397b1eef602eeb7c731f83ba3e775155fd8fe22f8403a52c56623 t/original/md5-aaa.t
SHA256 7b95d9f995f4f072a76139fb9c686b8be07d5e6fa65a046d41d5ee9da198f32e t/original/utf8.t
SHA256 bb8d8c31a5bf978b9ff68408afb34a3505f15cc2dbda0ccfe70959ef4b5023c5 t/original/warns.t
SHA256 a16b2e85d921449e419a4bd86574ea939795ebe47837f4603286be6ee0b48732 typemap
-----BEGIN PGP SIGNATURE-----

iQGzBAEBAwAdFiEEbhzVZugfHqSVNvE7YSp92FNcjtAFAmXE3PcACgkQYSp92FNc
jtCiRQwAgjaH8CT2sHHUGbWaVsDxjQU6HW0fDGt3QM/hnaGfWxoCk08aMc0vh48K
nxRbv7SDnyXb6GCBWh47DrGoraNEgwL2VBwZvPTPelSFtJZGpaikXLYiyedSG9bB
w4MA63smnNREWx1GP4xae5IhPwCVwnHjR8y1d9EV8y9MGPSZj8La9y4GH8leDT5A
fyeLTAjIsPwxlKcLLCiXZS4SAcwt2NA3wBta8TY8CKOe3GHnwNM6IhPfnfrKGzqy
1XQzeZ/1sNFbLMVtq9Q68c5FYgHTkPOMZDgWG/xmpI/D3xbSY2m/EJ7TrkbxloNr

lib/Alt/Digest/MD5/OpenSSL.pm  view on Meta::CPAN

use strict;
use warnings;

our $AUTHORITY = 'cpan:SKIM';
our $VERSION = 0.04;

1;

=pod

=encoding utf8

=head1 NAME

Alt::Digest::MD5::OpenSSL - Alternative Digest::MD5 based on OpenSSL.

=head1 DESCRIPTION

This is a modification of the Digest::MD5 module to remove bundled C code for
MD5 algorithm.

lib/Digest/MD5.pm  view on Meta::CPAN

if ($@) {
	my $err = $@;
	*add_bits = sub { die $err };
}

XSLoader::load('Digest::MD5', $VERSION);
*reset = \&new;

1;

=encoding utf8

=head1 NAME

Digest::MD5 - Perl interface to the MD5 Algorithm

=head1 SYNOPSIS

 # Functional style
 use Digest::MD5 qw(md5 md5_hex md5_base64);

lib/Digest/MD5.pm  view on Meta::CPAN

such input data:

    use Digest::MD5 qw(md5_hex);

    my $str = "abc\x{300}";
    print md5_hex($str), "\n";  # croaks
    # Wide character in subroutine entry

What you can do is calculate the MD5 checksum of the UTF-8
representation of such strings.  This is achieved by filtering the
string through encode_utf8() function:

    use Digest::MD5 qw(md5_hex);
    use Encode qw(encode_utf8);

    my $str = "abc\x{300}";
    print md5_hex(encode_utf8($str)), "\n";
    # 8c2d46911f3f5a326455f0ed7a8ed3b3

=head1 SEE ALSO

L<Digest>,
L<Digest::MD2>,
L<Digest::SHA>,
L<Digest::HMAC>

L<md5sum(1)>

t/original/utf8.t  view on Meta::CPAN

# reference
print "not " unless md5_hex("foo\xFF") eq $exp;
print "ok 3\n";

# autopromotion
if ($] >= 5.007003) {

my $unistring = "Oslo.pm har sosialt medlemsmøte onsdag 1. April 2008, klokken 18:30. Vi treffes på Marhaba Café, Keysersgate 1.";

require Encode;
$unistring = Encode::decode_utf8($unistring);
print "not " if ( not utf8::is_utf8($unistring));
print "ok 4\n";

md5_hex($unistring, "");
print "not " if ( not utf8::is_utf8($unistring));
print "ok 5\n"

} else {
    print "ok 4 # SKIP Your perl is too old to properly test unicode semantics\nok 5 # SKIP No, really\n";
}



( run in 1.235 second using v1.01-cache-2.11-cpan-49f99fa48dc )