1 2005-11-26 Gisle Aas <gisle@ActiveState.com>
5 Forgot to incorporate fixes already applied to bleadperl :-(
9 - USE_HEAP_INSTEAD_OF_STACK for Symbian
13 2005-11-26 Gisle Aas <gisle@ActiveState.com>
17 Document that it is now easy to generate different messages that produce the
20 Use XSLoader; perl-5.6 is now required.
22 Tweaks to the processing of $? after running the test program.
26 2003-12-07 Gisle Aas <gisle@ActiveState.com>
30 Enable explicit context passing for slight performance
31 improvement in threaded perls.
33 Tweaks to the Makefile.PL so that it is suitable both for
38 2003-12-05 Gisle Aas <gisle@ActiveState.com>
42 Don't run u32align test program on HP-UX 10.20 as it
43 will hang. Patch by H.Merijn Brand <h.m.brand@hccnet.nl>.
45 Fixed documentation typo.
49 2003-11-28 Gisle Aas <gisle@ActiveState.com>
53 Inherit add_bits() from Digest::base if available.
57 2003-10-09 Gisle Aas <gisle@ActiveState.com>
61 Some tweaks to make the module build on perl-5.004 and
66 2003-10-06 Gisle Aas <gisle@ActiveState.com>
70 Another try. Forgot to update the test checksums.
74 2003-10-06 Gisle Aas <gisle@ActiveState.com>
78 Fix minor documentation typo.
82 2003-08-04 Gisle Aas <gisle@ActiveState.com>
86 Avoid having to figure how to compile alignment test program
87 on MS-Windows by just assume free alignment as for i386. Source
88 builds on Windows was apparently broken.
92 2003-07-21 Gisle Aas <gisle@ActiveState.com>
96 Don't assume PerlIO_read() works like fread() even though
97 it was documented like that for perl 5.6. It returns negative
100 Kill test #3 in t/badfile.t. I don't know a reliable way
101 to test read failures on a file handle. Seems better not to
102 test than to make many worry.
106 2003-07-04 Gisle Aas <gisle@ActiveState.com>
110 The $md5->addfile method now croaks if it discovers
111 errors on the handle after reading from it. This should
112 make it more difficult to end up with the wrong digest
113 just because you are to lazy to check the error status
114 on your file handles after reading from them.
116 Improved documentation.
118 Sync up with bleadperl; even safer patchlevel include.
122 2003-03-09 Gisle Aas <gisle@ActiveState.com>
126 Don't let the $^W test get confused by lexical warnings.
128 Sync up with bleadperl; safer patchlevel include.
132 2003-01-18 Gisle Aas <gisle@ActiveState.com>
136 Override INSTALLDIRS for 5.8 as suggested by
137 Guido Ostkamp <Guido.Ostkamp@t-online.de>.
141 2003-01-04 Gisle Aas <gisle@ActiveState.com>
146 Contributed by Holger Smolinski <holger@kunterbunt.bb.bawue.de>
150 2002-12-27 Gisle Aas <gisle@ActiveState.com>
154 Minor tweaks sync up with bleadperl:
155 - VMS optimizer tweaks to the Makefile.PL
157 - Added alignment test
159 Added example to the MD5 POD that shows how to calculate the
160 digest of Unicode strings.
164 2002-05-05 Gisle Aas <gisle@ActiveState.com>
168 More synchronization with tweaks Jarkko have done to the
169 bleadperl test suite. This time various EBCDIC hacks.
171 Outside PERL_CORE the md5-aaa.t test loaded the wrong version of
172 the module (and would fail if no previous Digest::MD5 was installed).
173 Patch by Mike Stok <mike@stok.co.uk>
177 2002-05-01 Gisle Aas <gisle@ActiveState.com>
181 One more test suite update from Jarkko to sync it
182 even better with bleadperl.
186 2002-05-01 Gisle Aas <gisle@ActiveState.com>
190 Changes #12954 and #16173 from bleadperl. Documentation typo fix
191 and some signed/unsigned mismatches that Microsoft's C compiler
194 The EBCDIC-aware md5-aaa.t from bleadperl.
198 2002-04-25 Gisle Aas <gisle@ActiveState.com>
202 The SvPVbyte in perl-5.6.1 is buggy. Use the one from 5.7.3
205 Give warning if the function interface is used as instance
206 methods: $md5->md5_hex().
210 2001-09-07 Gisle Aas <gisle@ActiveState.com>
214 Sync up with the bleadperl version:
215 - use SvPVbyte() if available
216 - fixes to make the code 'gcc -Wall'-clean
220 2001-08-27 Gisle Aas <gisle@ActiveState.com>
224 Avoid exit() in Makefile.PL and bleadperl redefinition of printf
225 in the alignment test program.
226 Patch by Doug MacEachern <dougm@covalent.net>.
230 2001-07-18 Gisle Aas <gisle@ActiveState.com>
234 Try to warn if the functional interface is used as methods,
235 i.e. Digest::MD5->md5_hex("foo") will make noise if -w is
238 Document the missing padding for the base64 digests.
240 If both XS bootstrap and locating Digest::Perl::MD5 fails
241 re-raise the original XS bootstrap exception.
245 2001-03-13 Gisle Aas <gisle@ActiveState.com>
249 Moved all other Digest:: modules out of the Digest-MD5 dist.
253 2000-09-18 Gisle Aas <gisle@ActiveState.com>
257 Avoid pointer cast warning for machines with bigger ints
258 than pointers. Patch by Robin Barker <rmb1@cise.npl.co.uk>.
262 2000-08-19 Gisle Aas <gisle@ActiveState.com>
266 The fallback code introduced in 2.10 did only work for
267 perl-5.6.0. It should now for for perl5.004 and 5.005
268 as well. Patch by Ville Skyttä <ville@office.popsystems.com>.
272 2000-08-18 Gisle Aas <gisle@ActiveState.com>
276 Digest::MD5 will now try to fallback to the pure perl
277 implementation of Digest::Perl::MD5 if bootstrap fails.
279 Added a bit internal paranoia about casting the IV
280 in the Digest::MD5 object to the MD5_CTX* pointer.
284 1999-08-06 Gisle Aas <gisle@aas.no>
288 Documentation update.
292 1999-07-28 Gisle Aas <gisle@aas.no>
296 The addfile() methods could trigger a core dump when passed
297 a filehandle that had failed to open.
301 1999-04-26 Gisle Aas <gisle@aas.no>
305 The Digest::SHA1 module failed on some 64-bit systems, because I
306 assumed there was a correspondence between the U32 size and
307 BYTEORDER. This version use 'unsigned long' as Uwe's original
310 The module should now work better when liked statically with perl,
311 because we now use a safer module-loaded test in Digest.pm.
313 Assume we know the outcome of the alignment test on VMS. Patch by
314 Chuck Lane <lane@duphy4.physics.drexel.edu>
318 1999-03-26 Gisle Aas <gisle@aas.no>
322 Avoid LONG and BYTE types in SHA.xs as they was in conflict
323 with similar definitions in <winnt.h>.
325 Patch by Marko Asplund <aspa@hip.fi> to make the the alignment
326 test program link successfully with sfio-perl.
328 Fixed a typo in MD5.xs that might have affected 64-bit systems.
329 Spotted by Nick Ing-Simmons
333 1999-03-15 Gisle Aas <gisle@aas.no>
337 Included Digest::SHA1 based on Uwe Hollerbach's SHA module.
341 1999-03-05 Gisle Aas <gisle@aas.no>
345 Avoid the -o option when compiling alignment test program
346 for Win32 as suggested by Gurusamy Sarathy.
348 DEC Compiler bug workaround. Contributed by D Roland Walker
349 <walker@ncbi.nlm.nih.gov>
351 Having references to a local variable called "na" was not
352 very safe either. Some older versions of Perl can apparently
353 macroize this into something completely different.
357 1999-02-27 Gisle Aas <gisle@aas.no>
361 Patch from Christopher J. Madsen <chris_madsen@geocities.com> that
362 should help getting the u32align test program to compile with
363 Visual C++ 5 on Windows NT.
365 Got rid of references to PL_na.
369 1999-01-31 Gisle Aas <gisle@aas.no>
373 Added a hints file as workaround for an IRIX compiler bug.
374 Contributed by D Roland Walker <walker@ncbi.nlm.nih.gov>.
376 Note that the rfc2202 test can still fail on some DEC Alpha,
377 because of a compiler bug that affects the perl 'x' operator.
378 The Digest:: modules should work and be safe to install anyway.
382 1998-12-18 Gisle Aas <aas@sn.no>
386 Some casts and tweaks to make picky compilers more happy.
390 1998-11-04 Gisle Aas <aas@sn.no>
394 Taken out Digest::SHA1 as this module will be provided from Uwe
397 Some tweaks to MD2.xs and MD5.xs since "na" disappeared in
402 1998-10-30 Gisle Aas <aas@sn.no>
406 The 1.99_59 release introduced compilation problems for big-endian
407 systems with free U32 alignment. Bug reported, and fix suggested
408 by Paul J. Schinder <schinder@pobox.com>.
412 1998-10-28 Gisle Aas <aas@sn.no>
416 Makefile.PL will run a test program to find out if U32 values can
417 be aligned anywhere. This hopefully cures the core dumps reported
418 on Solaris and other big endian systems. Thanks to Graham Barr for
423 1998-10-28 Gisle Aas <aas@sn.no>
427 Should be very close to a 2.00 release now. Need some success
428 reports from people running on big-endian machines first I think.
430 Added a Digest::MD2 implementation.
432 Wrote Digest.pm documentation. This define the interface that all
433 Digest:: modules should provide.
435 Avoided some code duplication in MD5.xs
437 Fixed typo, that prevented Digest::SHA1::sha1_base64() from working.
441 1998-10-27 Gisle Aas <aas@sn.no>
445 Rewritten most of the MD5 C code to make it real fast (especially
446 on little-endian machines without alignment restrictions for U32).
447 Compared to MD5-1.7 we can process files 4 times as fast and we
448 digest small stuff in memory 7 times faster. I came to these
449 conclusions after these tests (gcc -O2, i586, Linux):
451 First tested calculation of the digest of a 31 MB file, using
452 perl -le 'print Digest::MD5->new->addfile(*STDIN)->hexdigest'
456 Digest::MD5-1.99_57: 5.23s
457 md5sum (GNU textutils): 4.90s
459 As you can see, we do nearly as good as the md5sum program. I
460 think the reason we don't beat md5sum is that perl always insist on
461 loading extra modules like Config.pm, Carp.pm, strict.pm, vars.pm,
462 AutoLoader.pm and DynaLoader.pm. When I simply wrapped the MD5.xs
463 hasher code in a C program I managed to process the file in 4.68s.
465 Then we calculated the digest of the same 6 byte sting, 20000
469 Digest::MD5-1.99_57: 1.68s
471 Digest::MD5 benefit from making this into a plain procedure call
472 instead of a static method call.
475 Other changes in this release are:
479 Internal MD5.xs cleanup.
481 $md5->digest will automatically reset now.
483 Digest::HMAC methods add() and addfile() did not return the
486 Added Digest.pm loading module. I am not sure this is a good idea.
488 Added Digest::SHA1 and Digest::HMAC_SHA1 module. The Digest::SHA1
489 module is just a wrapper around SHA.pm. I hope to get the author
490 of SHA.pm to move his module to the Digest:: category.
494 1998-10-25 Gisle Aas <aas@sn.no>
498 Fix memcpy_byteswap() function in MD5.xs. Must be careful with
499 htovl() as it might evaluate its arguments more than once.
503 1998-10-25 Gisle Aas <aas@sn.no>
507 Grahams HMAC_MD5.pm splitted into two modules. Digest::HMAC and
508 Digest::HMAC_MD5. Also provide functional interface. Documentation
511 Included RFC 2202 based test for HMAC-MD5.
515 1998-10-24 Gisle Aas <aas@sn.no>
519 Included HMAC_MD5.pm, contributed by Graham Barr <gbarr@ti.com>.
521 I have a hard time to make up my mind :-) md5_bin() renamed back
522 to md5(). Functions are not exported by default any more.
524 Try to Encode/Decode with memcpy_byteswap for 32-bit big-endian
529 1998-10-23 Gisle Aas <aas@sn.no>
533 Renamed core module as Digest::MD5. Leave a MD5.pm stub for
536 The md5() function renamed as md5_bin().
538 The constructor, Digest::MD5->new, no longer takes any extra
541 Added some new tests.
543 Updated the documentation.
545 $md5->b64digest implemented with same base64 encoder as md5_base64.
549 1998-10-23 Gisle Aas <aas@sn.no>
553 Patch from Graham Barr which make it work for big-endian machines
558 1998-10-22 Gisle Aas <aas@sn.no>
562 The MD5 class is now subclassable.
564 The add() and addfile() methods now return $self.
566 The reset() method is just an alias for new().
568 The constructor (MD5->new) now takes optional arguments which are
569 automatically added. It means that we can now write:
571 MD5->new($data)->hexdigest;
573 New $md5->b64digest method.
575 New functions that are exported on request: md5, md5_hex, md5_base64
579 Barely started to update the documentation.
583 1998-10-22 Gisle Aas <aas@sn.no>
587 Much better performance (more than twice as fast now). Mostly
588 because we use Copy/Zero instead of the original MD5_memcpy and
589 MD5_memset functions.
591 The addfile() and hexdigest() methods are now XS implemented.
593 All RSA functions now included in MD5.xs and made static.
595 Use perl's Copy/Zero.
597 Random cleanup, simplifications and reformatting.
598 Merged things better with the perl configuration.
602 Neil Winton's versions below:
605 *** 96/06/20 Version 1.7
607 MD5 is now completely 64-bit clean (I hope). The basic MD5 code uses
608 32-bit quantities and requires a typedef UINT4 to be defined in
609 global.h. Perl configuration data (the value of BYTEORDER) is used to
610 determine if unsigned longs have 4 or 8 bytes. On 64-bit platforms (eg
611 DEC Alpha) then it assumes that "unsigned int" will be a 32-bit type.
612 If this is incorrect then adding -DUINT4_IS_LONG to the DEFINES line in
613 Makefile.PL will override this.
615 On some machines (at least Cray that I know of) there is no 32-bit
616 integer type. In this case defining TRUNCATE_UINT4 (which is done
617 automatically for a Cray) will ensure that 64-bit values are masked
618 down to 32 bits. I have done my best to test this but without easy
619 access to a true 64-bit machine I can not totally guarantee it (unless
620 anyone wants to lend me a spare Cray :-)
622 There is one remaining limitation for 64-bit enabled processors. The
623 amount of data passed to any single call to the underlying MD5
624 routines is limited to (2^32 - 1) bytes -- that's 4 gigabytes. I'm
625 sorry if that's a real problem for you ...
627 And finally, a minor compilation warning (unsigned char * used with
628 function having char * prototype) has also been eliminated.
630 *** 96/04/09 Version 1.6
632 Re-generated module framework using h2xs to pick up the latest module
633 conventions for versions etc. You can now say "use MD5 1.6;" and things
634 should work correctly. MD5.pod has been integrated into MD5.pm and
635 CHANGES renamed to Changes. There is a fairly comprehensive test.pl
636 which can be invoked via "make test". There are no functional changes
637 to the MD5 routines themselves.
639 *** 96/03/14 Version 1.5.3
641 Fixed addfile method to accept type-glob references for the file-handle
642 (eg \*STDOUT). This is more consistent with other routines and is now the
643 recommended way of passing file-handles. The documentation now gives more
644 examples as to how the routines might be used.
646 *** 96/03/12 Version 1.5.2
648 Minor fixes from Christopher J Madsen <madsen@computek.net> to provide
649 support for building on OS/2 (and to work around a perl -w bug).
651 Remove warning about possible difference between add('foo', 'bar') and
652 add('foobar'). This is not true (it may have been true in the earliest
653 version of the module but is no longer the case).
655 *** 96/03/08 Version 1.5.1
657 Add CHANGES file to make it easier for people to figure out what has
658 been going on. (Meant to do this as part of 1.5)
660 *** 96/03/05 Version 1.5
662 Add hash() and hexhash() methods at the suggestion/request of Gary
663 Howland <gary@kampai.euronet.nl> before inclusion in a wider library
664 of cryptography modules.
666 *** 96/02/27 Version 1.4
668 Finally fixed the pesky Solaris dynamic loading bug. All kudos to Ken
669 Pizzini <kenp@spry.com>!
671 *** 95/11/29 Version 1.3.1
673 Add explanations of current known problems.
675 *** 95/06/02 Version 1.3
677 Fix problems with scope resolution in addfile() reported by
678 Jean-Claude Giese <Jean-Claude.Giese@loria.fr>. Basically ARGV is
679 always implicitly in package main while other filehandles aren't.
681 *** 95/05/23 Version 1.2.1
683 [Changes pre 1.2.1 not recorded]