1 2010-07-03 Gisle Aas <gisle@ActiveState.com>
6 Safer alignment test [RT#35823]
12 Remove the MacOS branch of this test
16 2009-06-09 Gisle Aas <gisle@ActiveState.com>
21 Get rid of the PERL_CORE hacks
22 Sync core: Rename ext/Digest/MD5 to ext/Digest-MD5
25 Handle non-numeric version numbers in ext/Digest/MD5/Makefile.PL
29 2008-11-14 Gisle Aas <gisle@ActiveState.com>
33 The 2.37 tarball was infected by various '._*' files.
36 Applied warning fix from Geoff Richards [RT#19643]
38 Applied compatiblity fix from Alexandr Ciornii [RT#30348]
42 2008-11-12 Gisle Aas <gisle@ActiveState.com>
46 Sync up with consting changes from the perl core.
50 2005-11-30 Gisle Aas <gisle@ActiveState.com>
54 Fix documentation typo.
58 2005-11-26 Gisle Aas <gisle@ActiveState.com>
62 Forgot to incorporate fixes already applied to bleadperl :-(
66 - USE_HEAP_INSTEAD_OF_STACK for Symbian
70 2005-11-26 Gisle Aas <gisle@ActiveState.com>
74 Document that it is now easy to generate different messages that produce the
77 Use XSLoader; perl-5.6 is now required.
79 Tweaks to the processing of $? after running the test program.
83 2003-12-07 Gisle Aas <gisle@ActiveState.com>
87 Enable explicit context passing for slight performance
88 improvement in threaded perls.
90 Tweaks to the Makefile.PL so that it is suitable both for
95 2003-12-05 Gisle Aas <gisle@ActiveState.com>
99 Don't run u32align test program on HP-UX 10.20 as it
100 will hang. Patch by H.Merijn Brand <h.m.brand@hccnet.nl>.
102 Fixed documentation typo.
106 2003-11-28 Gisle Aas <gisle@ActiveState.com>
110 Inherit add_bits() from Digest::base if available.
114 2003-10-09 Gisle Aas <gisle@ActiveState.com>
118 Some tweaks to make the module build on perl-5.004 and
123 2003-10-06 Gisle Aas <gisle@ActiveState.com>
127 Another try. Forgot to update the test checksums.
131 2003-10-06 Gisle Aas <gisle@ActiveState.com>
135 Fix minor documentation typo.
139 2003-08-04 Gisle Aas <gisle@ActiveState.com>
143 Avoid having to figure how to compile alignment test program
144 on MS-Windows by just assume free alignment as for i386. Source
145 builds on Windows was apparently broken.
149 2003-07-21 Gisle Aas <gisle@ActiveState.com>
153 Don't assume PerlIO_read() works like fread() even though
154 it was documented like that for perl 5.6. It returns negative
157 Kill test #3 in t/badfile.t. I don't know a reliable way
158 to test read failures on a file handle. Seems better not to
159 test than to make many worry.
163 2003-07-04 Gisle Aas <gisle@ActiveState.com>
167 The $md5->addfile method now croaks if it discovers
168 errors on the handle after reading from it. This should
169 make it more difficult to end up with the wrong digest
170 just because you are to lazy to check the error status
171 on your file handles after reading from them.
173 Improved documentation.
175 Sync up with bleadperl; even safer patchlevel include.
179 2003-03-09 Gisle Aas <gisle@ActiveState.com>
183 Don't let the $^W test get confused by lexical warnings.
185 Sync up with bleadperl; safer patchlevel include.
189 2003-01-18 Gisle Aas <gisle@ActiveState.com>
193 Override INSTALLDIRS for 5.8 as suggested by
194 Guido Ostkamp <Guido.Ostkamp@t-online.de>.
198 2003-01-04 Gisle Aas <gisle@ActiveState.com>
203 Contributed by Holger Smolinski <holger@kunterbunt.bb.bawue.de>
207 2002-12-27 Gisle Aas <gisle@ActiveState.com>
211 Minor tweaks sync up with bleadperl:
212 - VMS optimizer tweaks to the Makefile.PL
214 - Added alignment test
216 Added example to the MD5 POD that shows how to calculate the
217 digest of Unicode strings.
221 2002-05-05 Gisle Aas <gisle@ActiveState.com>
225 More synchronization with tweaks Jarkko have done to the
226 bleadperl test suite. This time various EBCDIC hacks.
228 Outside PERL_CORE the md5-aaa.t test loaded the wrong version of
229 the module (and would fail if no previous Digest::MD5 was installed).
230 Patch by Mike Stok <mike@stok.co.uk>
234 2002-05-01 Gisle Aas <gisle@ActiveState.com>
238 One more test suite update from Jarkko to sync it
239 even better with bleadperl.
243 2002-05-01 Gisle Aas <gisle@ActiveState.com>
247 Changes #12954 and #16173 from bleadperl. Documentation typo fix
248 and some signed/unsigned mismatches that Microsoft's C compiler
251 The EBCDIC-aware md5-aaa.t from bleadperl.
255 2002-04-25 Gisle Aas <gisle@ActiveState.com>
259 The SvPVbyte in perl-5.6.1 is buggy. Use the one from 5.7.3
262 Give warning if the function interface is used as instance
263 methods: $md5->md5_hex().
267 2001-09-07 Gisle Aas <gisle@ActiveState.com>
271 Sync up with the bleadperl version:
272 - use SvPVbyte() if available
273 - fixes to make the code 'gcc -Wall'-clean
277 2001-08-27 Gisle Aas <gisle@ActiveState.com>
281 Avoid exit() in Makefile.PL and bleadperl redefinition of printf
282 in the alignment test program.
283 Patch by Doug MacEachern <dougm@covalent.net>.
287 2001-07-18 Gisle Aas <gisle@ActiveState.com>
291 Try to warn if the functional interface is used as methods,
292 i.e. Digest::MD5->md5_hex("foo") will make noise if -w is
295 Document the missing padding for the base64 digests.
297 If both XS bootstrap and locating Digest::Perl::MD5 fails
298 re-raise the original XS bootstrap exception.
302 2001-03-13 Gisle Aas <gisle@ActiveState.com>
306 Moved all other Digest:: modules out of the Digest-MD5 dist.
310 2000-09-18 Gisle Aas <gisle@ActiveState.com>
314 Avoid pointer cast warning for machines with bigger ints
315 than pointers. Patch by Robin Barker <rmb1@cise.npl.co.uk>.
319 2000-08-19 Gisle Aas <gisle@ActiveState.com>
323 The fallback code introduced in 2.10 did only work for
324 perl-5.6.0. It should now for for perl5.004 and 5.005
325 as well. Patch by Ville Skyttä <ville@office.popsystems.com>.
329 2000-08-18 Gisle Aas <gisle@ActiveState.com>
333 Digest::MD5 will now try to fallback to the pure perl
334 implementation of Digest::Perl::MD5 if bootstrap fails.
336 Added a bit internal paranoia about casting the IV
337 in the Digest::MD5 object to the MD5_CTX* pointer.
341 1999-08-06 Gisle Aas <gisle@aas.no>
345 Documentation update.
349 1999-07-28 Gisle Aas <gisle@aas.no>
353 The addfile() methods could trigger a core dump when passed
354 a filehandle that had failed to open.
358 1999-04-26 Gisle Aas <gisle@aas.no>
362 The Digest::SHA1 module failed on some 64-bit systems, because I
363 assumed there was a correspondence between the U32 size and
364 BYTEORDER. This version use 'unsigned long' as Uwe's original
367 The module should now work better when liked statically with perl,
368 because we now use a safer module-loaded test in Digest.pm.
370 Assume we know the outcome of the alignment test on VMS. Patch by
371 Chuck Lane <lane@duphy4.physics.drexel.edu>
375 1999-03-26 Gisle Aas <gisle@aas.no>
379 Avoid LONG and BYTE types in SHA.xs as they was in conflict
380 with similar definitions in <winnt.h>.
382 Patch by Marko Asplund <aspa@hip.fi> to make the the alignment
383 test program link successfully with sfio-perl.
385 Fixed a typo in MD5.xs that might have affected 64-bit systems.
386 Spotted by Nick Ing-Simmons
390 1999-03-15 Gisle Aas <gisle@aas.no>
394 Included Digest::SHA1 based on Uwe Hollerbach's SHA module.
398 1999-03-05 Gisle Aas <gisle@aas.no>
402 Avoid the -o option when compiling alignment test program
403 for Win32 as suggested by Gurusamy Sarathy.
405 DEC Compiler bug workaround. Contributed by D Roland Walker
406 <walker@ncbi.nlm.nih.gov>
408 Having references to a local variable called "na" was not
409 very safe either. Some older versions of Perl can apparently
410 macroize this into something completely different.
414 1999-02-27 Gisle Aas <gisle@aas.no>
418 Patch from Christopher J. Madsen <chris_madsen@geocities.com> that
419 should help getting the u32align test program to compile with
420 Visual C++ 5 on Windows NT.
422 Got rid of references to PL_na.
426 1999-01-31 Gisle Aas <gisle@aas.no>
430 Added a hints file as workaround for an IRIX compiler bug.
431 Contributed by D Roland Walker <walker@ncbi.nlm.nih.gov>.
433 Note that the rfc2202 test can still fail on some DEC Alpha,
434 because of a compiler bug that affects the perl 'x' operator.
435 The Digest:: modules should work and be safe to install anyway.
439 1998-12-18 Gisle Aas <aas@sn.no>
443 Some casts and tweaks to make picky compilers more happy.
447 1998-11-04 Gisle Aas <aas@sn.no>
451 Taken out Digest::SHA1 as this module will be provided from Uwe
454 Some tweaks to MD2.xs and MD5.xs since "na" disappeared in
459 1998-10-30 Gisle Aas <aas@sn.no>
463 The 1.99_59 release introduced compilation problems for big-endian
464 systems with free U32 alignment. Bug reported, and fix suggested
465 by Paul J. Schinder <schinder@pobox.com>.
469 1998-10-28 Gisle Aas <aas@sn.no>
473 Makefile.PL will run a test program to find out if U32 values can
474 be aligned anywhere. This hopefully cures the core dumps reported
475 on Solaris and other big endian systems. Thanks to Graham Barr for
480 1998-10-28 Gisle Aas <aas@sn.no>
484 Should be very close to a 2.00 release now. Need some success
485 reports from people running on big-endian machines first I think.
487 Added a Digest::MD2 implementation.
489 Wrote Digest.pm documentation. This define the interface that all
490 Digest:: modules should provide.
492 Avoided some code duplication in MD5.xs
494 Fixed typo, that prevented Digest::SHA1::sha1_base64() from working.
498 1998-10-27 Gisle Aas <aas@sn.no>
502 Rewritten most of the MD5 C code to make it real fast (especially
503 on little-endian machines without alignment restrictions for U32).
504 Compared to MD5-1.7 we can process files 4 times as fast and we
505 digest small stuff in memory 7 times faster. I came to these
506 conclusions after these tests (gcc -O2, i586, Linux):
508 First tested calculation of the digest of a 31 MB file, using
509 perl -le 'print Digest::MD5->new->addfile(*STDIN)->hexdigest'
513 Digest::MD5-1.99_57: 5.23s
514 md5sum (GNU textutils): 4.90s
516 As you can see, we do nearly as good as the md5sum program. I
517 think the reason we don't beat md5sum is that perl always insist on
518 loading extra modules like Config.pm, Carp.pm, strict.pm, vars.pm,
519 AutoLoader.pm and DynaLoader.pm. When I simply wrapped the MD5.xs
520 hasher code in a C program I managed to process the file in 4.68s.
522 Then we calculated the digest of the same 6 byte sting, 20000
526 Digest::MD5-1.99_57: 1.68s
528 Digest::MD5 benefit from making this into a plain procedure call
529 instead of a static method call.
532 Other changes in this release are:
536 Internal MD5.xs cleanup.
538 $md5->digest will automatically reset now.
540 Digest::HMAC methods add() and addfile() did not return the
543 Added Digest.pm loading module. I am not sure this is a good idea.
545 Added Digest::SHA1 and Digest::HMAC_SHA1 module. The Digest::SHA1
546 module is just a wrapper around SHA.pm. I hope to get the author
547 of SHA.pm to move his module to the Digest:: category.
551 1998-10-25 Gisle Aas <aas@sn.no>
555 Fix memcpy_byteswap() function in MD5.xs. Must be careful with
556 htovl() as it might evaluate its arguments more than once.
560 1998-10-25 Gisle Aas <aas@sn.no>
564 Grahams HMAC_MD5.pm splitted into two modules. Digest::HMAC and
565 Digest::HMAC_MD5. Also provide functional interface. Documentation
568 Included RFC 2202 based test for HMAC-MD5.
572 1998-10-24 Gisle Aas <aas@sn.no>
576 Included HMAC_MD5.pm, contributed by Graham Barr <gbarr@ti.com>.
578 I have a hard time to make up my mind :-) md5_bin() renamed back
579 to md5(). Functions are not exported by default any more.
581 Try to Encode/Decode with memcpy_byteswap for 32-bit big-endian
586 1998-10-23 Gisle Aas <aas@sn.no>
590 Renamed core module as Digest::MD5. Leave a MD5.pm stub for
593 The md5() function renamed as md5_bin().
595 The constructor, Digest::MD5->new, no longer takes any extra
598 Added some new tests.
600 Updated the documentation.
602 $md5->b64digest implemented with same base64 encoder as md5_base64.
606 1998-10-23 Gisle Aas <aas@sn.no>
610 Patch from Graham Barr which make it work for big-endian machines
615 1998-10-22 Gisle Aas <aas@sn.no>
619 The MD5 class is now subclassable.
621 The add() and addfile() methods now return $self.
623 The reset() method is just an alias for new().
625 The constructor (MD5->new) now takes optional arguments which are
626 automatically added. It means that we can now write:
628 MD5->new($data)->hexdigest;
630 New $md5->b64digest method.
632 New functions that are exported on request: md5, md5_hex, md5_base64
636 Barely started to update the documentation.
640 1998-10-22 Gisle Aas <aas@sn.no>
644 Much better performance (more than twice as fast now). Mostly
645 because we use Copy/Zero instead of the original MD5_memcpy and
646 MD5_memset functions.
648 The addfile() and hexdigest() methods are now XS implemented.
650 All RSA functions now included in MD5.xs and made static.
652 Use perl's Copy/Zero.
654 Random cleanup, simplifications and reformatting.
655 Merged things better with the perl configuration.
659 Neil Winton's versions below:
662 *** 96/06/20 Version 1.7
664 MD5 is now completely 64-bit clean (I hope). The basic MD5 code uses
665 32-bit quantities and requires a typedef UINT4 to be defined in
666 global.h. Perl configuration data (the value of BYTEORDER) is used to
667 determine if unsigned longs have 4 or 8 bytes. On 64-bit platforms (eg
668 DEC Alpha) then it assumes that "unsigned int" will be a 32-bit type.
669 If this is incorrect then adding -DUINT4_IS_LONG to the DEFINES line in
670 Makefile.PL will override this.
672 On some machines (at least Cray that I know of) there is no 32-bit
673 integer type. In this case defining TRUNCATE_UINT4 (which is done
674 automatically for a Cray) will ensure that 64-bit values are masked
675 down to 32 bits. I have done my best to test this but without easy
676 access to a true 64-bit machine I can not totally guarantee it (unless
677 anyone wants to lend me a spare Cray :-)
679 There is one remaining limitation for 64-bit enabled processors. The
680 amount of data passed to any single call to the underlying MD5
681 routines is limited to (2^32 - 1) bytes -- that's 4 gigabytes. I'm
682 sorry if that's a real problem for you ...
684 And finally, a minor compilation warning (unsigned char * used with
685 function having char * prototype) has also been eliminated.
687 *** 96/04/09 Version 1.6
689 Re-generated module framework using h2xs to pick up the latest module
690 conventions for versions etc. You can now say "use MD5 1.6;" and things
691 should work correctly. MD5.pod has been integrated into MD5.pm and
692 CHANGES renamed to Changes. There is a fairly comprehensive test.pl
693 which can be invoked via "make test". There are no functional changes
694 to the MD5 routines themselves.
696 *** 96/03/14 Version 1.5.3
698 Fixed addfile method to accept type-glob references for the file-handle
699 (eg \*STDOUT). This is more consistent with other routines and is now the
700 recommended way of passing file-handles. The documentation now gives more
701 examples as to how the routines might be used.
703 *** 96/03/12 Version 1.5.2
705 Minor fixes from Christopher J Madsen <madsen@computek.net> to provide
706 support for building on OS/2 (and to work around a perl -w bug).
708 Remove warning about possible difference between add('foo', 'bar') and
709 add('foobar'). This is not true (it may have been true in the earliest
710 version of the module but is no longer the case).
712 *** 96/03/08 Version 1.5.1
714 Add CHANGES file to make it easier for people to figure out what has
715 been going on. (Meant to do this as part of 1.5)
717 *** 96/03/05 Version 1.5
719 Add hash() and hexhash() methods at the suggestion/request of Gary
720 Howland <gary@kampai.euronet.nl> before inclusion in a wider library
721 of cryptography modules.
723 *** 96/02/27 Version 1.4
725 Finally fixed the pesky Solaris dynamic loading bug. All kudos to Ken
726 Pizzini <kenp@spry.com>!
728 *** 95/11/29 Version 1.3.1
730 Add explanations of current known problems.
732 *** 95/06/02 Version 1.3
734 Fix problems with scope resolution in addfile() reported by
735 Jean-Claude Giese <Jean-Claude.Giese@loria.fr>. Basically ARGV is
736 always implicitly in package main while other filehandles aren't.
738 *** 95/05/23 Version 1.2.1
740 [Changes pre 1.2.1 not recorded]