1 2003-07-21 Gisle Aas <gisle@ActiveState.com>
5 Don't assume PerlIO_read() works like fread() even though
6 it was documented like that for perl 5.6. It returns negative
9 Kill test #3 in t/badfile.t. I don't know a reliable way
10 to test read failures on a file handle. Seems better not to
11 test than to make many worry.
15 2003-07-04 Gisle Aas <gisle@ActiveState.com>
19 The $md5->addfile method now croaks if it discovers
20 errors on the handle after reading from it. This should
21 make it more difficult to end up with the wrong digest
22 just because you are to lazy to check the error status
23 on your file handles after reading from them.
25 Improved documentation.
27 Sync up with bleadperl; even safer patchlevel include.
31 2003-03-09 Gisle Aas <gisle@ActiveState.com>
35 Don't let the $^W test get confused by lexical warnings.
37 Sync up with bleadperl; safer patchlevel include.
41 2003-01-18 Gisle Aas <gisle@ActiveState.com>
45 Override INSTALLDIRS for 5.8 as suggested by
46 Guido Ostkamp <Guido.Ostkamp@t-online.de>.
50 2003-01-04 Gisle Aas <gisle@ActiveState.com>
55 Contributed by Holger Smolinski <holger@kunterbunt.bb.bawue.de>
59 2002-12-27 Gisle Aas <gisle@ActiveState.com>
63 Minor tweaks sync up with bleadperl:
64 - VMS optimizer tweaks to the Makefile.PL
66 - Added alignment test
68 Added example to the MD5 POD that shows how to calculate the
69 digest of Unicode strings.
73 2002-05-05 Gisle Aas <gisle@ActiveState.com>
77 More synchronization with tweaks Jarkko have done to the
78 bleadperl test suite. This time various EBCDIC hacks.
80 Outside PERL_CORE the md5-aaa.t test loaded the wrong version of
81 the module (and would fail if no previous Digest::MD5 was installed).
82 Patch by Mike Stok <mike@stok.co.uk>
86 2002-05-01 Gisle Aas <gisle@ActiveState.com>
90 One more test suite update from Jarkko to sync it
91 even better with bleadperl.
95 2002-05-01 Gisle Aas <gisle@ActiveState.com>
99 Changes #12954 and #16173 from bleadperl. Documentation typo fix
100 and some signed/unsigned mismatches that Microsoft's C compiler
103 The EBCDIC-aware md5-aaa.t from bleadperl.
107 2002-04-25 Gisle Aas <gisle@ActiveState.com>
111 The SvPVbyte in perl-5.6.1 is buggy. Use the one from 5.7.3
114 Give warning if the function interface is used as instance
115 methods: $md5->md5_hex().
119 2001-09-07 Gisle Aas <gisle@ActiveState.com>
123 Sync up with the bleadperl version:
124 - use SvPVbyte() if avaiable
125 - fixes to make the code 'gcc -Wall'-clean
129 2001-08-27 Gisle Aas <gisle@ActiveState.com>
133 Avoid exit() in Makefile.PL and bleedperls redefinition of printf
134 in the alignment test program.
135 Patch by Doug MacEachern <dougm@covalent.net>.
139 2001-07-18 Gisle Aas <gisle@ActiveState.com>
143 Try to warn if the functional interface is used as methods,
144 i.e. Digest::MD5->md5_hex("foo") will make noise if -w is
147 Document the missing padding for the base64 digests.
149 If both XS bootstrap and locating Digest::Perl::MD5 fails
150 reraise the original XS bootstrap exception.
154 2001-03-13 Gisle Aas <gisle@ActiveState.com>
158 Moved all other Digest:: modules out of the Digest-MD5 dist.
162 2000-09-18 Gisle Aas <gisle@ActiveState.com>
166 Avoid pointer cast warning for machines with bigger ints
167 than pointers. Patch by Robin Barker <rmb1@cise.npl.co.uk>.
171 2000-08-19 Gisle Aas <gisle@ActiveState.com>
175 The fallback code introduced in 2.10 did only work for
176 perl-5.6.0. It should now for for perl5.004 and 5.005
177 as well. Patch by Ville Skyttä <ville@office.popsystems.com>.
181 2000-08-18 Gisle Aas <gisle@ActiveState.com>
185 Digest::MD5 will now try to fallback to the pure perl
186 implementation of Digest::Perl::MD5 if bootstrap fails.
188 Added a bit internal paranoia about casting the IV
189 in the Digest::MD5 object to the MD5_CTX* pointer.
193 1999-08-06 Gisle Aas <gisle@aas.no>
197 Documentation update.
201 1999-07-28 Gisle Aas <gisle@aas.no>
205 The addfile() methods could trigger a core dump when passed
206 a filehandle that had failed to open.
210 1999-04-26 Gisle Aas <gisle@aas.no>
214 The Digest::SHA1 module failed on some 64-bit systems, because I
215 assumed there was a correspondence between the U32 size and
216 BYTEORDER. This version use 'unsigned long' as Uwe's original
219 The module should now work better when liked statically with perl,
220 because we now use a safer module-loaded test in Digest.pm.
222 Assume we know the outcome of the alignment test on VMS. Patch by
223 Chuck Lane <lane@duphy4.physics.drexel.edu>
227 1999-03-26 Gisle Aas <gisle@aas.no>
231 Avoid LONG and BYTE types in SHA.xs as they was in conflict
232 with similar definitions in <winnt.h>.
234 Patch by Marko Asplund <aspa@hip.fi> to make the the alignment
235 test program link successfully with sfio-perl.
237 Fixed a typo in MD5.xs that might have affected 64-bit systems.
238 Spotted by Nick Ing-Simmons
242 1999-03-15 Gisle Aas <gisle@aas.no>
246 Included Digest::SHA1 based on Uwe Hollerbach's SHA module.
250 1999-03-05 Gisle Aas <gisle@aas.no>
254 Avoid the -o option when compiling alignment test program
255 for Win32 as suggested by Gurusamy Sarathy.
257 DEC Compiler bug workaround. Contributed by D Roland Walker
258 <walker@ncbi.nlm.nih.gov>
260 Having references to a local variable called "na" was not
261 very safe either. Some older versions of Perl can apparently
262 macroize this into something completely different.
266 1999-02-27 Gisle Aas <gisle@aas.no>
270 Patch from Christopher J. Madsen <chris_madsen@geocities.com> that
271 should help getting the u32align test program to compile with
272 Visual C++ 5 on Windows NT.
274 Got rid of references to PL_na.
278 1999-01-31 Gisle Aas <gisle@aas.no>
282 Added a hints file as workaround for an IRIX compiler bug.
283 Contributed by D Roland Walker <walker@ncbi.nlm.nih.gov>.
285 Note that the rfc2202 test can still fail on some DEC Alpha,
286 because of a compiler bug that affects the perl 'x' operator.
287 The Digest:: modules should work and be safe to install anyway.
291 1998-12-18 Gisle Aas <aas@sn.no>
295 Some casts and tweaks to make picky compilers more happy.
299 1998-11-04 Gisle Aas <aas@sn.no>
303 Taken out Digest::SHA1 as this module will be provided from Uwe
306 Some tweaks to MD2.xs and MD5.xs since "na" disappeared in
311 1998-10-30 Gisle Aas <aas@sn.no>
315 The 1.99_59 release introduced compilation problems for big-endian
316 systems with free U32 alignment. Bug reported, and fix suggested
317 by Paul J. Schinder <schinder@pobox.com>.
321 1998-10-28 Gisle Aas <aas@sn.no>
325 Makefile.PL will run a test program to find out if U32 values can
326 be aligned anywhere. This hopefully cures the core dumps reported
327 on Solaris and other big endian systems. Thanks to Graham Barr for
332 1998-10-28 Gisle Aas <aas@sn.no>
336 Should be very close to a 2.00 release now. Need some success
337 reports from people running on big-endian machines first I think.
339 Added a Digest::MD2 implementation.
341 Wrote Digest.pm documentation. This define the interface that all
342 Digest:: modules should provide.
344 Avoided some code duplication in MD5.xs
346 Fixed typo, that prevented Digest::SHA1::sha1_base64() from working.
350 1998-10-27 Gisle Aas <aas@sn.no>
354 Rewritten most of the MD5 C code to make it real fast (especially
355 on little-endian machines without alignment restrictions for U32).
356 Compared to MD5-1.7 we can process files 4 times as fast and we
357 digest small stuff in memory 7 times faster. I came to these
358 conclusions after these tests (gcc -O2, i586, Linux):
360 First tested calculation of the digest of a 31 MB file, using
361 perl -le 'print Digest::MD5->new->addfile(*STDIN)->hexdigest'
365 Digest::MD5-1.99_57: 5.23s
366 md5sum (GNU textutils): 4.90s
368 As you can see, we do nearly as good as the md5sum program. I
369 think the reason we don't beat md5sum is that perl always insist on
370 loading extra modules like Config.pm, Carp.pm, strict.pm, vars.pm,
371 AutoLoader.pm and DynaLoader.pm. When I simply wrapped the MD5.xs
372 hasher code in a C program I managed to process the file in 4.68s.
374 Then we calculated the digest of the same 6 byte sting, 20000
378 Digest::MD5-1.99_57: 1.68s
380 Digest::MD5 benefit from making this into a plain procedure call
381 instead of a static method call.
384 Other changes in this release are:
388 Internal MD5.xs cleanup.
390 $md5->digest will automatically reset now.
392 Digest::HMAC methods add() and addfile() did not return the
395 Added Digest.pm loading module. I am not sure this is a good idea.
397 Added Digest::SHA1 and Digest::HMAC_SHA1 module. The Digest::SHA1
398 module is just a wrapper around SHA.pm. I hope to get the author
399 of SHA.pm to move his module to the Digest:: category.
403 1998-10-25 Gisle Aas <aas@sn.no>
407 Fix memcpy_byteswap() function in MD5.xs. Must be careful with
408 htovl() as it might evaluate its arguments more than once.
412 1998-10-25 Gisle Aas <aas@sn.no>
416 Grahams HMAC_MD5.pm splitted into two modules. Digest::HMAC and
417 Digest::HMAC_MD5. Also provide functional interface. Documentation
420 Included RFC 2202 based test for HMAC-MD5.
424 1998-10-24 Gisle Aas <aas@sn.no>
428 Included HMAC_MD5.pm, contributed by Graham Barr <gbarr@ti.com>.
430 I have a hard time to make up my mind :-) md5_bin() renamed back
431 to md5(). Functions are not exported by default any more.
433 Try to Encode/Decode with memcpy_byteswap for 32-bit big-endian
438 1998-10-23 Gisle Aas <aas@sn.no>
442 Renamed core module as Digest::MD5. Leave a MD5.pm stub for
445 The md5() function renamed as md5_bin().
447 The constructor, Digest::MD5->new, no longer takes any extra
450 Added some new tests.
452 Updated the documentation.
454 $md5->b64digest implemented with same base64 encoder as md5_base64.
458 1998-10-23 Gisle Aas <aas@sn.no>
462 Patch from Graham Barr which make it work for big-endian machines
467 1998-10-22 Gisle Aas <aas@sn.no>
471 The MD5 class is now subclassable.
473 The add() and addfile() methods now return $self.
475 The reset() method is just an alias for new().
477 The constructor (MD5->new) now takes optional arguments which are
478 automatically added. It means that we can now write:
480 MD5->new($data)->hexdigest;
482 New $md5->b64digest method.
484 New functions that are exported on request: md5, md5_hex, md5_base64
488 Barely started to update the documentation.
492 1998-10-22 Gisle Aas <aas@sn.no>
496 Much better performance (more than twice as fast now). Mostly
497 because we use Copy/Zero instead of the original MD5_memcpy and
498 MD5_memset functions.
500 The addfile() and hexdigest() methods are now XS implemented.
502 All RSA functions now included in MD5.xs and made static.
504 Use perl's Copy/Zero.
506 Random cleanup, simplifications and reformatting.
507 Merged things better with the perl configuration.
511 Neil Winton's versions below:
514 *** 96/06/20 Version 1.7
516 MD5 is now completely 64-bit clean (I hope). The basic MD5 code uses
517 32-bit quantities and requires a typedef UINT4 to be defined in
518 global.h. Perl configuration data (the value of BYTEORDER) is used to
519 determine if unsigned longs have 4 or 8 bytes. On 64-bit platforms (eg
520 DEC Alpha) then it assumes that "unsigned int" will be a 32-bit type.
521 If this is incorrect then adding -DUINT4_IS_LONG to the DEFINES line in
522 Makefile.PL will override this.
524 On some machines (at least Cray that I know of) there is no 32-bit
525 integer type. In this case defining TRUNCATE_UINT4 (which is done
526 automatically for a Cray) will ensure that 64-bit values are masked
527 down to 32 bits. I have done my best to test this but without easy
528 access to a true 64-bit machine I can not totally guarantee it (unless
529 anyone wants to lend me a spare Cray :-)
531 There is one remaining limitation for 64-bit enabled processors. The
532 amount of data passed to any single call to the underlying MD5
533 routines is limited to (2^32 - 1) bytes -- that's 4 gigabytes. I'm
534 sorry if that's a real problem for you ...
536 And finally, a minor complilation warning (unsigned char * used with
537 function having char * prototype) has also been eliminated.
539 *** 96/04/09 Version 1.6
541 Re-generated module framework using h2xs to pick up the latest module
542 conventions for versions etc. You can now say "use MD5 1.6;" and things
543 should work correctly. MD5.pod has been integrated into MD5.pm and
544 CHANGES renamed to Changes. There is a fairly comprehensive test.pl
545 which can be invoked via "make test". There are no functional changes
546 to the MD5 routines themselves.
548 *** 96/03/14 Version 1.5.3
550 Fixed addfile method to accept type-glob references for the file-handle
551 (eg \*STDOUT). This is more consistent with other routines and is now the
552 recommended way of passing file-handles. The documentation now gives more
553 examples as to how the routines might be used.
555 *** 96/03/12 Version 1.5.2
557 Minor fixes from Christopher J Madsen <madsen@computek.net> to provide
558 support for building on OS/2 (and to work arround a perl -w bug).
560 Remove warning about possible difference between add('foo', 'bar') and
561 add('foobar'). This is not true (it may have been true in the earliest
562 version of the module but is no longer the case).
564 *** 96/03/08 Version 1.5.1
566 Add CHANGES file to make it easier for people to figure out what has
567 been going on. (Meant to do this as part of 1.5)
569 *** 96/03/05 Version 1.5
571 Add hash() and hexhash() methods at the suggestion/request of Gary
572 Howland <gary@kampai.euronet.nl> before inclusion in a wider library
573 of cryptography modules.
575 *** 96/02/27 Version 1.4
577 Finally fixed the pesky Solaris dynamic loading bug. All kudos to Ken
578 Pizzini <kenp@spry.com>!
580 *** 95/11/29 Version 1.3.1
582 Add explanations of current known problems.
584 *** 95/06/02 Version 1.3
586 Fix problems with scope resolution in addfile() reported by
587 Jean-Claude Giese <Jean-Claude.Giese@loria.fr>. Basically ARGV is
588 always implicitly in package main while other filehandles aren't.
590 *** 95/05/23 Version 1.2.1
592 [Changes pre 1.2.1 not recorded]