1 2009-06-09 Gisle Aas <gisle@ActiveState.com>
6 Get rid of the PERL_CORE hacks
7 Sync core: Rename ext/Digest/MD5 to ext/Digest-MD5
10 Handle non-numeric version numbers in ext/Digest/MD5/Makefile.PL
14 2008-11-14 Gisle Aas <gisle@ActiveState.com>
18 The 2.37 tarball was infected by various '._*' files.
21 Applied warning fix from Geoff Richards [RT#19643]
23 Applied compatiblity fix from Alexandr Ciornii [RT#30348]
27 2008-11-12 Gisle Aas <gisle@ActiveState.com>
31 Sync up with consting changes from the perl core.
35 2005-11-30 Gisle Aas <gisle@ActiveState.com>
39 Fix documentation typo.
43 2005-11-26 Gisle Aas <gisle@ActiveState.com>
47 Forgot to incorporate fixes already applied to bleadperl :-(
51 - USE_HEAP_INSTEAD_OF_STACK for Symbian
55 2005-11-26 Gisle Aas <gisle@ActiveState.com>
59 Document that it is now easy to generate different messages that produce the
62 Use XSLoader; perl-5.6 is now required.
64 Tweaks to the processing of $? after running the test program.
68 2003-12-07 Gisle Aas <gisle@ActiveState.com>
72 Enable explicit context passing for slight performance
73 improvement in threaded perls.
75 Tweaks to the Makefile.PL so that it is suitable both for
80 2003-12-05 Gisle Aas <gisle@ActiveState.com>
84 Don't run u32align test program on HP-UX 10.20 as it
85 will hang. Patch by H.Merijn Brand <h.m.brand@hccnet.nl>.
87 Fixed documentation typo.
91 2003-11-28 Gisle Aas <gisle@ActiveState.com>
95 Inherit add_bits() from Digest::base if available.
99 2003-10-09 Gisle Aas <gisle@ActiveState.com>
103 Some tweaks to make the module build on perl-5.004 and
108 2003-10-06 Gisle Aas <gisle@ActiveState.com>
112 Another try. Forgot to update the test checksums.
116 2003-10-06 Gisle Aas <gisle@ActiveState.com>
120 Fix minor documentation typo.
124 2003-08-04 Gisle Aas <gisle@ActiveState.com>
128 Avoid having to figure how to compile alignment test program
129 on MS-Windows by just assume free alignment as for i386. Source
130 builds on Windows was apparently broken.
134 2003-07-21 Gisle Aas <gisle@ActiveState.com>
138 Don't assume PerlIO_read() works like fread() even though
139 it was documented like that for perl 5.6. It returns negative
142 Kill test #3 in t/badfile.t. I don't know a reliable way
143 to test read failures on a file handle. Seems better not to
144 test than to make many worry.
148 2003-07-04 Gisle Aas <gisle@ActiveState.com>
152 The $md5->addfile method now croaks if it discovers
153 errors on the handle after reading from it. This should
154 make it more difficult to end up with the wrong digest
155 just because you are to lazy to check the error status
156 on your file handles after reading from them.
158 Improved documentation.
160 Sync up with bleadperl; even safer patchlevel include.
164 2003-03-09 Gisle Aas <gisle@ActiveState.com>
168 Don't let the $^W test get confused by lexical warnings.
170 Sync up with bleadperl; safer patchlevel include.
174 2003-01-18 Gisle Aas <gisle@ActiveState.com>
178 Override INSTALLDIRS for 5.8 as suggested by
179 Guido Ostkamp <Guido.Ostkamp@t-online.de>.
183 2003-01-04 Gisle Aas <gisle@ActiveState.com>
188 Contributed by Holger Smolinski <holger@kunterbunt.bb.bawue.de>
192 2002-12-27 Gisle Aas <gisle@ActiveState.com>
196 Minor tweaks sync up with bleadperl:
197 - VMS optimizer tweaks to the Makefile.PL
199 - Added alignment test
201 Added example to the MD5 POD that shows how to calculate the
202 digest of Unicode strings.
206 2002-05-05 Gisle Aas <gisle@ActiveState.com>
210 More synchronization with tweaks Jarkko have done to the
211 bleadperl test suite. This time various EBCDIC hacks.
213 Outside PERL_CORE the md5-aaa.t test loaded the wrong version of
214 the module (and would fail if no previous Digest::MD5 was installed).
215 Patch by Mike Stok <mike@stok.co.uk>
219 2002-05-01 Gisle Aas <gisle@ActiveState.com>
223 One more test suite update from Jarkko to sync it
224 even better with bleadperl.
228 2002-05-01 Gisle Aas <gisle@ActiveState.com>
232 Changes #12954 and #16173 from bleadperl. Documentation typo fix
233 and some signed/unsigned mismatches that Microsoft's C compiler
236 The EBCDIC-aware md5-aaa.t from bleadperl.
240 2002-04-25 Gisle Aas <gisle@ActiveState.com>
244 The SvPVbyte in perl-5.6.1 is buggy. Use the one from 5.7.3
247 Give warning if the function interface is used as instance
248 methods: $md5->md5_hex().
252 2001-09-07 Gisle Aas <gisle@ActiveState.com>
256 Sync up with the bleadperl version:
257 - use SvPVbyte() if available
258 - fixes to make the code 'gcc -Wall'-clean
262 2001-08-27 Gisle Aas <gisle@ActiveState.com>
266 Avoid exit() in Makefile.PL and bleadperl redefinition of printf
267 in the alignment test program.
268 Patch by Doug MacEachern <dougm@covalent.net>.
272 2001-07-18 Gisle Aas <gisle@ActiveState.com>
276 Try to warn if the functional interface is used as methods,
277 i.e. Digest::MD5->md5_hex("foo") will make noise if -w is
280 Document the missing padding for the base64 digests.
282 If both XS bootstrap and locating Digest::Perl::MD5 fails
283 re-raise the original XS bootstrap exception.
287 2001-03-13 Gisle Aas <gisle@ActiveState.com>
291 Moved all other Digest:: modules out of the Digest-MD5 dist.
295 2000-09-18 Gisle Aas <gisle@ActiveState.com>
299 Avoid pointer cast warning for machines with bigger ints
300 than pointers. Patch by Robin Barker <rmb1@cise.npl.co.uk>.
304 2000-08-19 Gisle Aas <gisle@ActiveState.com>
308 The fallback code introduced in 2.10 did only work for
309 perl-5.6.0. It should now for for perl5.004 and 5.005
310 as well. Patch by Ville Skyttä <ville@office.popsystems.com>.
314 2000-08-18 Gisle Aas <gisle@ActiveState.com>
318 Digest::MD5 will now try to fallback to the pure perl
319 implementation of Digest::Perl::MD5 if bootstrap fails.
321 Added a bit internal paranoia about casting the IV
322 in the Digest::MD5 object to the MD5_CTX* pointer.
326 1999-08-06 Gisle Aas <gisle@aas.no>
330 Documentation update.
334 1999-07-28 Gisle Aas <gisle@aas.no>
338 The addfile() methods could trigger a core dump when passed
339 a filehandle that had failed to open.
343 1999-04-26 Gisle Aas <gisle@aas.no>
347 The Digest::SHA1 module failed on some 64-bit systems, because I
348 assumed there was a correspondence between the U32 size and
349 BYTEORDER. This version use 'unsigned long' as Uwe's original
352 The module should now work better when liked statically with perl,
353 because we now use a safer module-loaded test in Digest.pm.
355 Assume we know the outcome of the alignment test on VMS. Patch by
356 Chuck Lane <lane@duphy4.physics.drexel.edu>
360 1999-03-26 Gisle Aas <gisle@aas.no>
364 Avoid LONG and BYTE types in SHA.xs as they was in conflict
365 with similar definitions in <winnt.h>.
367 Patch by Marko Asplund <aspa@hip.fi> to make the the alignment
368 test program link successfully with sfio-perl.
370 Fixed a typo in MD5.xs that might have affected 64-bit systems.
371 Spotted by Nick Ing-Simmons
375 1999-03-15 Gisle Aas <gisle@aas.no>
379 Included Digest::SHA1 based on Uwe Hollerbach's SHA module.
383 1999-03-05 Gisle Aas <gisle@aas.no>
387 Avoid the -o option when compiling alignment test program
388 for Win32 as suggested by Gurusamy Sarathy.
390 DEC Compiler bug workaround. Contributed by D Roland Walker
391 <walker@ncbi.nlm.nih.gov>
393 Having references to a local variable called "na" was not
394 very safe either. Some older versions of Perl can apparently
395 macroize this into something completely different.
399 1999-02-27 Gisle Aas <gisle@aas.no>
403 Patch from Christopher J. Madsen <chris_madsen@geocities.com> that
404 should help getting the u32align test program to compile with
405 Visual C++ 5 on Windows NT.
407 Got rid of references to PL_na.
411 1999-01-31 Gisle Aas <gisle@aas.no>
415 Added a hints file as workaround for an IRIX compiler bug.
416 Contributed by D Roland Walker <walker@ncbi.nlm.nih.gov>.
418 Note that the rfc2202 test can still fail on some DEC Alpha,
419 because of a compiler bug that affects the perl 'x' operator.
420 The Digest:: modules should work and be safe to install anyway.
424 1998-12-18 Gisle Aas <aas@sn.no>
428 Some casts and tweaks to make picky compilers more happy.
432 1998-11-04 Gisle Aas <aas@sn.no>
436 Taken out Digest::SHA1 as this module will be provided from Uwe
439 Some tweaks to MD2.xs and MD5.xs since "na" disappeared in
444 1998-10-30 Gisle Aas <aas@sn.no>
448 The 1.99_59 release introduced compilation problems for big-endian
449 systems with free U32 alignment. Bug reported, and fix suggested
450 by Paul J. Schinder <schinder@pobox.com>.
454 1998-10-28 Gisle Aas <aas@sn.no>
458 Makefile.PL will run a test program to find out if U32 values can
459 be aligned anywhere. This hopefully cures the core dumps reported
460 on Solaris and other big endian systems. Thanks to Graham Barr for
465 1998-10-28 Gisle Aas <aas@sn.no>
469 Should be very close to a 2.00 release now. Need some success
470 reports from people running on big-endian machines first I think.
472 Added a Digest::MD2 implementation.
474 Wrote Digest.pm documentation. This define the interface that all
475 Digest:: modules should provide.
477 Avoided some code duplication in MD5.xs
479 Fixed typo, that prevented Digest::SHA1::sha1_base64() from working.
483 1998-10-27 Gisle Aas <aas@sn.no>
487 Rewritten most of the MD5 C code to make it real fast (especially
488 on little-endian machines without alignment restrictions for U32).
489 Compared to MD5-1.7 we can process files 4 times as fast and we
490 digest small stuff in memory 7 times faster. I came to these
491 conclusions after these tests (gcc -O2, i586, Linux):
493 First tested calculation of the digest of a 31 MB file, using
494 perl -le 'print Digest::MD5->new->addfile(*STDIN)->hexdigest'
498 Digest::MD5-1.99_57: 5.23s
499 md5sum (GNU textutils): 4.90s
501 As you can see, we do nearly as good as the md5sum program. I
502 think the reason we don't beat md5sum is that perl always insist on
503 loading extra modules like Config.pm, Carp.pm, strict.pm, vars.pm,
504 AutoLoader.pm and DynaLoader.pm. When I simply wrapped the MD5.xs
505 hasher code in a C program I managed to process the file in 4.68s.
507 Then we calculated the digest of the same 6 byte sting, 20000
511 Digest::MD5-1.99_57: 1.68s
513 Digest::MD5 benefit from making this into a plain procedure call
514 instead of a static method call.
517 Other changes in this release are:
521 Internal MD5.xs cleanup.
523 $md5->digest will automatically reset now.
525 Digest::HMAC methods add() and addfile() did not return the
528 Added Digest.pm loading module. I am not sure this is a good idea.
530 Added Digest::SHA1 and Digest::HMAC_SHA1 module. The Digest::SHA1
531 module is just a wrapper around SHA.pm. I hope to get the author
532 of SHA.pm to move his module to the Digest:: category.
536 1998-10-25 Gisle Aas <aas@sn.no>
540 Fix memcpy_byteswap() function in MD5.xs. Must be careful with
541 htovl() as it might evaluate its arguments more than once.
545 1998-10-25 Gisle Aas <aas@sn.no>
549 Grahams HMAC_MD5.pm splitted into two modules. Digest::HMAC and
550 Digest::HMAC_MD5. Also provide functional interface. Documentation
553 Included RFC 2202 based test for HMAC-MD5.
557 1998-10-24 Gisle Aas <aas@sn.no>
561 Included HMAC_MD5.pm, contributed by Graham Barr <gbarr@ti.com>.
563 I have a hard time to make up my mind :-) md5_bin() renamed back
564 to md5(). Functions are not exported by default any more.
566 Try to Encode/Decode with memcpy_byteswap for 32-bit big-endian
571 1998-10-23 Gisle Aas <aas@sn.no>
575 Renamed core module as Digest::MD5. Leave a MD5.pm stub for
578 The md5() function renamed as md5_bin().
580 The constructor, Digest::MD5->new, no longer takes any extra
583 Added some new tests.
585 Updated the documentation.
587 $md5->b64digest implemented with same base64 encoder as md5_base64.
591 1998-10-23 Gisle Aas <aas@sn.no>
595 Patch from Graham Barr which make it work for big-endian machines
600 1998-10-22 Gisle Aas <aas@sn.no>
604 The MD5 class is now subclassable.
606 The add() and addfile() methods now return $self.
608 The reset() method is just an alias for new().
610 The constructor (MD5->new) now takes optional arguments which are
611 automatically added. It means that we can now write:
613 MD5->new($data)->hexdigest;
615 New $md5->b64digest method.
617 New functions that are exported on request: md5, md5_hex, md5_base64
621 Barely started to update the documentation.
625 1998-10-22 Gisle Aas <aas@sn.no>
629 Much better performance (more than twice as fast now). Mostly
630 because we use Copy/Zero instead of the original MD5_memcpy and
631 MD5_memset functions.
633 The addfile() and hexdigest() methods are now XS implemented.
635 All RSA functions now included in MD5.xs and made static.
637 Use perl's Copy/Zero.
639 Random cleanup, simplifications and reformatting.
640 Merged things better with the perl configuration.
644 Neil Winton's versions below:
647 *** 96/06/20 Version 1.7
649 MD5 is now completely 64-bit clean (I hope). The basic MD5 code uses
650 32-bit quantities and requires a typedef UINT4 to be defined in
651 global.h. Perl configuration data (the value of BYTEORDER) is used to
652 determine if unsigned longs have 4 or 8 bytes. On 64-bit platforms (eg
653 DEC Alpha) then it assumes that "unsigned int" will be a 32-bit type.
654 If this is incorrect then adding -DUINT4_IS_LONG to the DEFINES line in
655 Makefile.PL will override this.
657 On some machines (at least Cray that I know of) there is no 32-bit
658 integer type. In this case defining TRUNCATE_UINT4 (which is done
659 automatically for a Cray) will ensure that 64-bit values are masked
660 down to 32 bits. I have done my best to test this but without easy
661 access to a true 64-bit machine I can not totally guarantee it (unless
662 anyone wants to lend me a spare Cray :-)
664 There is one remaining limitation for 64-bit enabled processors. The
665 amount of data passed to any single call to the underlying MD5
666 routines is limited to (2^32 - 1) bytes -- that's 4 gigabytes. I'm
667 sorry if that's a real problem for you ...
669 And finally, a minor compilation warning (unsigned char * used with
670 function having char * prototype) has also been eliminated.
672 *** 96/04/09 Version 1.6
674 Re-generated module framework using h2xs to pick up the latest module
675 conventions for versions etc. You can now say "use MD5 1.6;" and things
676 should work correctly. MD5.pod has been integrated into MD5.pm and
677 CHANGES renamed to Changes. There is a fairly comprehensive test.pl
678 which can be invoked via "make test". There are no functional changes
679 to the MD5 routines themselves.
681 *** 96/03/14 Version 1.5.3
683 Fixed addfile method to accept type-glob references for the file-handle
684 (eg \*STDOUT). This is more consistent with other routines and is now the
685 recommended way of passing file-handles. The documentation now gives more
686 examples as to how the routines might be used.
688 *** 96/03/12 Version 1.5.2
690 Minor fixes from Christopher J Madsen <madsen@computek.net> to provide
691 support for building on OS/2 (and to work around a perl -w bug).
693 Remove warning about possible difference between add('foo', 'bar') and
694 add('foobar'). This is not true (it may have been true in the earliest
695 version of the module but is no longer the case).
697 *** 96/03/08 Version 1.5.1
699 Add CHANGES file to make it easier for people to figure out what has
700 been going on. (Meant to do this as part of 1.5)
702 *** 96/03/05 Version 1.5
704 Add hash() and hexhash() methods at the suggestion/request of Gary
705 Howland <gary@kampai.euronet.nl> before inclusion in a wider library
706 of cryptography modules.
708 *** 96/02/27 Version 1.4
710 Finally fixed the pesky Solaris dynamic loading bug. All kudos to Ken
711 Pizzini <kenp@spry.com>!
713 *** 95/11/29 Version 1.3.1
715 Add explanations of current known problems.
717 *** 95/06/02 Version 1.3
719 Fix problems with scope resolution in addfile() reported by
720 Jean-Claude Giese <Jean-Claude.Giese@loria.fr>. Basically ARGV is
721 always implicitly in package main while other filehandles aren't.
723 *** 95/05/23 Version 1.2.1
725 [Changes pre 1.2.1 not recorded]