This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to Digest-MD5-2.39
[perl5.git] / ext / Digest-MD5 / Changes
1 2009-06-09   Gisle Aas <gisle@ActiveState.com>
2
3    Release 2.39
4
5    Nicholas Clark (2):
6       Get rid of the PERL_CORE hacks
7       Sync core: Rename ext/Digest/MD5 to ext/Digest-MD5
8
9    Jerry Hedden (1):
10       Handle non-numeric version numbers in ext/Digest/MD5/Makefile.PL
11
12
13
14 2008-11-14   Gisle Aas <gisle@ActiveState.com>
15
16    Release 2.38
17
18    The 2.37 tarball was infected by various '._*' files.
19    Thank you, Mac OS X!
20
21    Applied warning fix from Geoff Richards [RT#19643]
22
23    Applied compatiblity fix from Alexandr Ciornii [RT#30348]
24
25
26
27 2008-11-12   Gisle Aas <gisle@ActiveState.com>
28
29    Release 2.37
30
31    Sync up with consting changes from the perl core.
32
33
34
35 2005-11-30   Gisle Aas <gisle@ActiveState.com>
36
37    Release 2.36
38
39    Fix documentation typo.
40
41
42
43 2005-11-26   Gisle Aas <gisle@ActiveState.com>
44
45    Release 2.35
46
47    Forgot to incorporate fixes already applied to bleadperl :-(
48      - doc typo
49      - consting
50      - unused my_na
51      - USE_HEAP_INSTEAD_OF_STACK for Symbian
52
53
54
55 2005-11-26   Gisle Aas <gisle@ActiveState.com>
56
57    Release 2.34
58
59    Document that it is now easy to generate different messages that produce the
60    same MD5 digest.
61
62    Use XSLoader; perl-5.6 is now required.
63
64    Tweaks to the processing of $? after running the test program.
65
66
67
68 2003-12-07   Gisle Aas <gisle@ActiveState.com>
69
70    Release 2.33
71    
72    Enable explicit context passing for slight performance
73    improvement in threaded perls.
74    
75    Tweaks to the Makefile.PL so that it is suitable both for
76    core and CPAN use.
77
78
79
80 2003-12-05   Gisle Aas <gisle@ActiveState.com>
81
82    Release 2.32
83
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>.
86
87    Fixed documentation typo.
88
89
90
91 2003-11-28   Gisle Aas <gisle@ActiveState.com>
92
93    Release 2.31
94
95    Inherit add_bits() from Digest::base if available.
96
97
98
99 2003-10-09   Gisle Aas <gisle@ActiveState.com>
100
101    Release 2.30
102
103    Some tweaks to make the module build on perl-5.004 and
104    perl-5.005 again.
105
106
107
108 2003-10-06   Gisle Aas <gisle@ActiveState.com>
109
110    Release 2.29
111
112    Another try.  Forgot to update the test checksums.
113
114
115
116 2003-10-06   Gisle Aas <gisle@ActiveState.com>
117
118    Release 2.28
119
120    Fix minor documentation typo.
121
122
123
124 2003-08-04   Gisle Aas <gisle@ActiveState.com>
125
126    Release 2.27
127
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.
131
132
133
134 2003-07-21   Gisle Aas <gisle@ActiveState.com>
135
136    Release 2.26
137
138    Don't assume PerlIO_read() works like fread() even though
139    it was documented like that for perl 5.6.  It returns negative
140    on read failure.
141
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.
145
146
147
148 2003-07-04   Gisle Aas <gisle@ActiveState.com>
149
150    Release 2.25
151
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.
157
158    Improved documentation.
159
160    Sync up with bleadperl; even safer patchlevel include.
161
162
163
164 2003-03-09   Gisle Aas <gisle@ActiveState.com>
165
166    Release 2.24
167
168    Don't let the $^W test get confused by lexical warnings.
169
170    Sync up with bleadperl; safer patchlevel include.
171
172
173
174 2003-01-18   Gisle Aas <gisle@ActiveState.com>
175
176    Release 2.23
177
178    Override INSTALLDIRS for 5.8 as suggested by
179    Guido Ostkamp <Guido.Ostkamp@t-online.de>.
180
181
182
183 2003-01-04   Gisle Aas <gisle@ActiveState.com>
184
185    Release 2.22.
186
187    Added clone method.
188    Contributed by Holger Smolinski <holger@kunterbunt.bb.bawue.de>
189
190
191
192 2002-12-27   Gisle Aas <gisle@ActiveState.com>
193
194    Release 2.21
195
196    Minor tweaks sync up with bleadperl:
197      - VMS optimizer tweaks to the Makefile.PL
198      - MacOS support
199      - Added alignment test
200
201    Added example to the MD5 POD that shows how to calculate the
202    digest of Unicode strings.
203
204
205
206 2002-05-05   Gisle Aas <gisle@ActiveState.com>
207
208    Release 2.20
209
210    More synchronization with tweaks Jarkko have done to the
211    bleadperl test suite. This time various EBCDIC hacks.
212
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>
216
217
218
219 2002-05-01   Gisle Aas <gisle@ActiveState.com>
220
221    Release 2.19
222
223    One more test suite update from Jarkko to sync it
224    even better with bleadperl.
225
226
227
228 2002-05-01   Gisle Aas <gisle@ActiveState.com>
229
230    Release 2.18
231
232    Changes #12954 and #16173 from bleadperl.  Documentation typo fix
233    and some signed/unsigned mismatches that Microsoft's C compiler
234    complained about.
235
236    The EBCDIC-aware md5-aaa.t from bleadperl.
237
238
239
240 2002-04-25   Gisle Aas <gisle@ActiveState.com>
241
242    Release 2.17
243
244    The SvPVbyte in perl-5.6.1 is buggy.  Use the one from 5.7.3
245    instead.
246
247    Give warning if the function interface is used as instance
248    methods:  $md5->md5_hex().
249
250
251
252 2001-09-07   Gisle Aas <gisle@ActiveState.com>
253
254    Release 2.16
255
256    Sync up with the bleadperl version:
257       - use SvPVbyte() if available
258       - fixes to make the code 'gcc -Wall'-clean
259
260
261
262 2001-08-27   Gisle Aas <gisle@ActiveState.com>
263
264    Release 2.15
265
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>.
269
270
271
272 2001-07-18   Gisle Aas <gisle@ActiveState.com>
273
274    Release 2.14
275
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
278    enabled.
279
280    Document the missing padding for the base64 digests.
281
282    If both XS bootstrap and locating Digest::Perl::MD5 fails
283    re-raise the original XS bootstrap exception.
284
285
286
287 2001-03-13   Gisle Aas <gisle@ActiveState.com>
288
289    Release 2.13
290
291    Moved all other Digest:: modules out of the Digest-MD5 dist.
292
293
294
295 2000-09-18   Gisle Aas <gisle@ActiveState.com>
296
297    Release 2.12
298
299    Avoid pointer cast warning for machines with bigger ints
300    than pointers.  Patch by Robin Barker <rmb1@cise.npl.co.uk>.
301
302
303
304 2000-08-19   Gisle Aas <gisle@ActiveState.com>
305
306    Release 2.11
307    
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>.
311
312
313
314 2000-08-18   Gisle Aas <gisle@ActiveState.com>
315
316    Release 2.10
317
318    Digest::MD5 will now try to fallback to the pure perl
319    implementation of Digest::Perl::MD5 if bootstrap fails.
320
321    Added a bit internal paranoia about casting the IV
322    in the Digest::MD5 object to the MD5_CTX* pointer.
323
324
325
326 1999-08-06   Gisle Aas <gisle@aas.no>
327
328    Release 2.09
329
330    Documentation update.
331
332
333
334 1999-07-28   Gisle Aas <gisle@aas.no>
335
336    Release 2.08
337
338    The addfile() methods could trigger a core dump when passed
339    a filehandle that had failed to open.
340
341
342
343 1999-04-26   Gisle Aas <gisle@aas.no>
344
345    Release 2.07
346
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
350    SHA module did.
351
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.
354
355    Assume we know the outcome of the alignment test on VMS. Patch by
356    Chuck Lane <lane@duphy4.physics.drexel.edu>
357
358
359
360 1999-03-26   Gisle Aas <gisle@aas.no>
361
362    Release 2.06
363
364    Avoid LONG and BYTE types in SHA.xs as they was in conflict
365    with similar definitions in <winnt.h>.
366
367    Patch by Marko Asplund <aspa@hip.fi> to make the the alignment
368    test program link successfully with sfio-perl.
369
370    Fixed a typo in MD5.xs that might have affected 64-bit systems.
371    Spotted by Nick Ing-Simmons
372
373
374
375 1999-03-15   Gisle Aas <gisle@aas.no>
376
377    Release 2.05
378
379    Included Digest::SHA1 based on Uwe Hollerbach's SHA module.
380
381
382
383 1999-03-05   Gisle Aas <gisle@aas.no>
384
385    Release 2.04
386
387    Avoid the -o option when compiling alignment test program
388    for Win32 as suggested by Gurusamy Sarathy.
389
390    DEC Compiler bug workaround.  Contributed by D Roland Walker
391    <walker@ncbi.nlm.nih.gov>
392
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.
396
397
398
399 1999-02-27   Gisle Aas <gisle@aas.no>
400
401    Release 2.03
402
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.
406
407    Got rid of references to PL_na.
408
409
410
411 1999-01-31   Gisle Aas <gisle@aas.no>
412
413    Release 2.02
414
415    Added a hints file as workaround for an IRIX compiler bug.
416    Contributed by D Roland Walker <walker@ncbi.nlm.nih.gov>.
417
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.
421
422
423
424 1998-12-18   Gisle Aas <aas@sn.no>
425
426    Release 2.01
427
428    Some casts and tweaks to make picky compilers more happy.
429
430
431
432 1998-11-04   Gisle Aas <aas@sn.no>
433
434    Release 2.00.
435
436    Taken out Digest::SHA1 as this module will be provided from Uwe
437    Hollerbach later.
438
439    Some tweaks to MD2.xs and MD5.xs since "na" disappeared in
440    perl5.005_53
441
442
443
444 1998-10-30   Gisle Aas <aas@sn.no>
445
446    Release 1.99_60
447
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>.
451
452
453
454 1998-10-28   Gisle Aas <aas@sn.no>
455
456    Release 1.99_59
457
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
461    debugging this.
462
463
464
465 1998-10-28   Gisle Aas <aas@sn.no>
466
467    Release 1.99_58
468
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.
471
472    Added a Digest::MD2 implementation.
473
474    Wrote Digest.pm documentation.  This define the interface that all
475    Digest:: modules should provide.
476
477    Avoided some code duplication in MD5.xs
478
479    Fixed typo, that prevented Digest::SHA1::sha1_base64() from working.
480
481
482
483 1998-10-27   Gisle Aas <aas@sn.no>
484
485    Release 1.99_57
486
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):
492
493    First tested calculation of the digest of a 31 MB file, using
494    perl -le 'print Digest::MD5->new->addfile(*STDIN)->hexdigest'
495    and similar stuff:
496
497       MD5-1.7:                 21.06s
498       Digest::MD5-1.99_57:      5.23s
499       md5sum (GNU textutils):   4.90s
500
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.
506
507    Then we calculated the digest of the same 6 byte sting, 20000
508    times:
509
510       MD5-1.7:                 11.81s
511       Digest::MD5-1.99_57:      1.68s
512
513    Digest::MD5 benefit from making this into a plain procedure call
514    instead of a static method call.
515
516
517    Other changes in this release are:
518
519    Documentation update
520
521    Internal MD5.xs cleanup.
522
523    $md5->digest will automatically reset now.
524
525    Digest::HMAC methods add() and addfile() did not return the
526    correct object.
527
528    Added Digest.pm loading module.  I am not sure this is a good idea.
529
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.
533
534
535
536 1998-10-25   Gisle Aas <aas@sn.no>
537
538    Release 1.99_56
539
540    Fix memcpy_byteswap() function in MD5.xs.  Must be careful with
541    htovl() as it might evaluate its arguments more than once.
542
543
544
545 1998-10-25   Gisle Aas <aas@sn.no>
546
547    Release 1.99_55
548
549    Grahams HMAC_MD5.pm splitted into two modules.  Digest::HMAC and
550    Digest::HMAC_MD5.  Also provide functional interface.  Documentation
551    is still lacking.
552
553    Included RFC 2202 based test for HMAC-MD5.
554
555
556
557 1998-10-24   Gisle Aas <aas@sn.no>
558
559    Release 1.99_54
560
561    Included HMAC_MD5.pm, contributed by Graham Barr <gbarr@ti.com>.
562
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.
565
566    Try to Encode/Decode with memcpy_byteswap for 32-bit big-endian
567    machines.
568
569
570
571 1998-10-23   Gisle Aas <aas@sn.no>
572
573    Release 1.99_53
574
575    Renamed core module as Digest::MD5.  Leave a MD5.pm stub for
576    legacy code.
577
578    The md5() function renamed as md5_bin().
579
580    The constructor, Digest::MD5->new, no longer takes any extra
581    arguments.
582
583    Added some new tests.
584
585    Updated the documentation.
586
587    $md5->b64digest implemented with same base64 encoder as md5_base64.
588
589
590
591 1998-10-23   Gisle Aas <aas@sn.no>
592
593    Release 1.99_52
594
595    Patch from Graham Barr which make it work for big-endian machines
596    again.
597
598
599
600 1998-10-22   Gisle Aas <aas@sn.no>
601
602    Release 1.99_51
603
604    The MD5 class is now subclassable.
605
606    The add() and addfile() methods now return $self.
607
608    The reset() method is just an alias for new().
609
610    The constructor (MD5->new) now takes optional arguments which are
611    automatically added.  It means that we can now write:
612
613       MD5->new($data)->hexdigest;
614
615    New $md5->b64digest method.
616
617    New functions that are exported on request: md5, md5_hex, md5_base64
618
619    Included RFC 1321
620
621    Barely started to update the documentation.
622
623
624
625 1998-10-22   Gisle Aas <aas@sn.no>
626
627    Release 1.99_50
628
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.
632
633    The addfile() and hexdigest() methods are now XS implemented.
634
635    All RSA functions now included in MD5.xs and made static.
636
637    Use perl's Copy/Zero.
638
639    Random cleanup, simplifications and reformatting.
640    Merged things better with the perl configuration.
641
642
643
644 Neil Winton's versions below:
645
646
647 *** 96/06/20 Version 1.7
648
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.
656
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 :-)
663
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 ...
668
669 And finally, a minor compilation warning (unsigned char * used with
670 function having char * prototype) has also been eliminated.
671
672 *** 96/04/09 Version 1.6
673
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.
680
681 *** 96/03/14 Version 1.5.3
682
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.
687
688 *** 96/03/12 Version 1.5.2
689
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).
692
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).
696
697 *** 96/03/08 Version 1.5.1
698
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)
701
702 *** 96/03/05 Version 1.5
703
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.
707
708 *** 96/02/27 Version 1.4
709
710 Finally fixed the pesky Solaris dynamic loading bug. All kudos to Ken
711 Pizzini <kenp@spry.com>!
712
713 *** 95/11/29 Version 1.3.1
714
715 Add explanations of current known problems.
716
717 *** 95/06/02 Version 1.3
718
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.
722  
723 *** 95/05/23 Version 1.2.1
724
725 [Changes pre 1.2.1 not recorded]