Remove a (UINT) cast to silence a VC6 compiler warning
[p5sagit/p5-mst-13.2.git] / ext / Digest / MD5 / Changes
1 2005-11-30   Gisle Aas <gisle@ActiveState.com>
2
3    Release 2.36
4
5    Fix documentation typo.
6
7
8
9 2005-11-26   Gisle Aas <gisle@ActiveState.com>
10
11    Release 2.35
12
13    Forgot to incorporate fixes already applied to bleadperl :-(
14      - doc typo
15      - consting
16      - unused my_na
17      - USE_HEAP_INSTEAD_OF_STACK for Symbian
18
19
20
21 2005-11-26   Gisle Aas <gisle@ActiveState.com>
22
23    Release 2.34
24
25    Document that it is now easy to generate different messages that produce the
26    same MD5 digest.
27
28    Use XSLoader; perl-5.6 is now required.
29
30    Tweaks to the processing of $? after running the test program.
31
32
33
34 2003-12-07   Gisle Aas <gisle@ActiveState.com>
35
36    Release 2.33
37    
38    Enable explicit context passing for slight performance
39    improvement in threaded perls.
40    
41    Tweaks to the Makefile.PL so that it is suitable both for
42    core and CPAN use.
43
44
45
46 2003-12-05   Gisle Aas <gisle@ActiveState.com>
47
48    Release 2.32
49
50    Don't run u32align test program on HP-UX 10.20 as it
51    will hang.  Patch by H.Merijn Brand <h.m.brand@hccnet.nl>.
52
53    Fixed documentation typo.
54
55
56
57 2003-11-28   Gisle Aas <gisle@ActiveState.com>
58
59    Release 2.31
60
61    Inherit add_bits() from Digest::base if available.
62
63
64
65 2003-10-09   Gisle Aas <gisle@ActiveState.com>
66
67    Release 2.30
68
69    Some tweaks to make the module build on perl-5.004 and
70    perl-5.005 again.
71
72
73
74 2003-10-06   Gisle Aas <gisle@ActiveState.com>
75
76    Release 2.29
77
78    Another try.  Forgot to update the test checksums.
79
80
81
82 2003-10-06   Gisle Aas <gisle@ActiveState.com>
83
84    Release 2.28
85
86    Fix minor documentation typo.
87
88
89
90 2003-08-04   Gisle Aas <gisle@ActiveState.com>
91
92    Release 2.27
93
94    Avoid having to figure how to compile alignment test program
95    on MS-Windows by just assume free alignment as for i386.  Source
96    builds on Windows was apparently broken.
97
98
99
100 2003-07-21   Gisle Aas <gisle@ActiveState.com>
101
102    Release 2.26
103
104    Don't assume PerlIO_read() works like fread() even though
105    it was documented like that for perl 5.6.  It returns negative
106    on read failure.
107
108    Kill test #3 in t/badfile.t.  I don't know a reliable way
109    to test read failures on a file handle.  Seems better not to
110    test than to make many worry.
111
112
113
114 2003-07-04   Gisle Aas <gisle@ActiveState.com>
115
116    Release 2.25
117
118    The $md5->addfile method now croaks if it discovers
119    errors on the handle after reading from it.  This should
120    make it more difficult to end up with the wrong digest
121    just because you are to lazy to check the error status
122    on your file handles after reading from them.
123
124    Improved documentation.
125
126    Sync up with bleadperl; even safer patchlevel include.
127
128
129
130 2003-03-09   Gisle Aas <gisle@ActiveState.com>
131
132    Release 2.24
133
134    Don't let the $^W test get confused by lexical warnings.
135
136    Sync up with bleadperl; safer patchlevel include.
137
138
139
140 2003-01-18   Gisle Aas <gisle@ActiveState.com>
141
142    Release 2.23
143
144    Override INSTALLDIRS for 5.8 as suggested by
145    Guido Ostkamp <Guido.Ostkamp@t-online.de>.
146
147
148
149 2003-01-04   Gisle Aas <gisle@ActiveState.com>
150
151    Release 2.22.
152
153    Added clone method.
154    Contributed by Holger Smolinski <holger@kunterbunt.bb.bawue.de>
155
156
157
158 2002-12-27   Gisle Aas <gisle@ActiveState.com>
159
160    Release 2.21
161
162    Minor tweaks sync up with bleadperl:
163      - VMS optimizer tweaks to the Makefile.PL
164      - MacOS support
165      - Added alignment test
166
167    Added example to the MD5 POD that shows how to calculate the
168    digest of Unicode strings.
169
170
171
172 2002-05-05   Gisle Aas <gisle@ActiveState.com>
173
174    Release 2.20
175
176    More synchronization with tweaks Jarkko have done to the
177    bleadperl test suite. This time various EBCDIC hacks.
178
179    Outside PERL_CORE the md5-aaa.t test loaded the wrong version of
180    the module (and would fail if no previous Digest::MD5 was installed).
181    Patch by Mike Stok <mike@stok.co.uk>
182
183
184
185 2002-05-01   Gisle Aas <gisle@ActiveState.com>
186
187    Release 2.19
188
189    One more test suite update from Jarkko to sync it
190    even better with bleadperl.
191
192
193
194 2002-05-01   Gisle Aas <gisle@ActiveState.com>
195
196    Release 2.18
197
198    Changes #12954 and #16173 from bleadperl.  Documentation typo fix
199    and some signed/unsigned mismatches that Microsoft's C compiler
200    complained about.
201
202    The EBCDIC-aware md5-aaa.t from bleadperl.
203
204
205
206 2002-04-25   Gisle Aas <gisle@ActiveState.com>
207
208    Release 2.17
209
210    The SvPVbyte in perl-5.6.1 is buggy.  Use the one from 5.7.3
211    instead.
212
213    Give warning if the function interface is used as instance
214    methods:  $md5->md5_hex().
215
216
217
218 2001-09-07   Gisle Aas <gisle@ActiveState.com>
219
220    Release 2.16
221
222    Sync up with the bleadperl version:
223       - use SvPVbyte() if available
224       - fixes to make the code 'gcc -Wall'-clean
225
226
227
228 2001-08-27   Gisle Aas <gisle@ActiveState.com>
229
230    Release 2.15
231
232    Avoid exit() in Makefile.PL and bleadperl redefinition of printf
233    in the alignment test program.
234    Patch by Doug MacEachern <dougm@covalent.net>.
235
236
237
238 2001-07-18   Gisle Aas <gisle@ActiveState.com>
239
240    Release 2.14
241
242    Try to warn if the functional interface is used as methods,
243    i.e. Digest::MD5->md5_hex("foo") will make noise if -w is
244    enabled.
245
246    Document the missing padding for the base64 digests.
247
248    If both XS bootstrap and locating Digest::Perl::MD5 fails
249    re-raise the original XS bootstrap exception.
250
251
252
253 2001-03-13   Gisle Aas <gisle@ActiveState.com>
254
255    Release 2.13
256
257    Moved all other Digest:: modules out of the Digest-MD5 dist.
258
259
260
261 2000-09-18   Gisle Aas <gisle@ActiveState.com>
262
263    Release 2.12
264
265    Avoid pointer cast warning for machines with bigger ints
266    than pointers.  Patch by Robin Barker <rmb1@cise.npl.co.uk>.
267
268
269
270 2000-08-19   Gisle Aas <gisle@ActiveState.com>
271
272    Release 2.11
273    
274    The fallback code introduced in 2.10 did only work for
275    perl-5.6.0.  It should now for for perl5.004 and 5.005
276    as well.  Patch by Ville Skyttä <ville@office.popsystems.com>.
277
278
279
280 2000-08-18   Gisle Aas <gisle@ActiveState.com>
281
282    Release 2.10
283
284    Digest::MD5 will now try to fallback to the pure perl
285    implementation of Digest::Perl::MD5 if bootstrap fails.
286
287    Added a bit internal paranoia about casting the IV
288    in the Digest::MD5 object to the MD5_CTX* pointer.
289
290
291
292 1999-08-06   Gisle Aas <gisle@aas.no>
293
294    Release 2.09
295
296    Documentation update.
297
298
299
300 1999-07-28   Gisle Aas <gisle@aas.no>
301
302    Release 2.08
303
304    The addfile() methods could trigger a core dump when passed
305    a filehandle that had failed to open.
306
307
308
309 1999-04-26   Gisle Aas <gisle@aas.no>
310
311    Release 2.07
312
313    The Digest::SHA1 module failed on some 64-bit systems, because I
314    assumed there was a correspondence between the U32 size and
315    BYTEORDER.  This version use 'unsigned long' as Uwe's original
316    SHA module did.
317
318    The module should now work better when liked statically with perl,
319    because we now use a safer module-loaded test in Digest.pm.
320
321    Assume we know the outcome of the alignment test on VMS. Patch by
322    Chuck Lane <lane@duphy4.physics.drexel.edu>
323
324
325
326 1999-03-26   Gisle Aas <gisle@aas.no>
327
328    Release 2.06
329
330    Avoid LONG and BYTE types in SHA.xs as they was in conflict
331    with similar definitions in <winnt.h>.
332
333    Patch by Marko Asplund <aspa@hip.fi> to make the the alignment
334    test program link successfully with sfio-perl.
335
336    Fixed a typo in MD5.xs that might have affected 64-bit systems.
337    Spotted by Nick Ing-Simmons
338
339
340
341 1999-03-15   Gisle Aas <gisle@aas.no>
342
343    Release 2.05
344
345    Included Digest::SHA1 based on Uwe Hollerbach's SHA module.
346
347
348
349 1999-03-05   Gisle Aas <gisle@aas.no>
350
351    Release 2.04
352
353    Avoid the -o option when compiling alignment test program
354    for Win32 as suggested by Gurusamy Sarathy.
355
356    DEC Compiler bug workaround.  Contributed by D Roland Walker
357    <walker@ncbi.nlm.nih.gov>
358
359    Having references to a local variable called "na" was not
360    very safe either.  Some older versions of Perl can apparently
361    macroize this into something completely different.
362
363
364
365 1999-02-27   Gisle Aas <gisle@aas.no>
366
367    Release 2.03
368
369    Patch from Christopher J. Madsen <chris_madsen@geocities.com> that
370    should help getting the u32align test program to compile with
371    Visual C++ 5 on Windows NT.
372
373    Got rid of references to PL_na.
374
375
376
377 1999-01-31   Gisle Aas <gisle@aas.no>
378
379    Release 2.02
380
381    Added a hints file as workaround for an IRIX compiler bug.
382    Contributed by D Roland Walker <walker@ncbi.nlm.nih.gov>.
383
384    Note that the rfc2202 test can still fail on some DEC Alpha,
385    because of a compiler bug that affects the perl 'x' operator.
386    The Digest:: modules should work and be safe to install anyway.
387
388
389
390 1998-12-18   Gisle Aas <aas@sn.no>
391
392    Release 2.01
393
394    Some casts and tweaks to make picky compilers more happy.
395
396
397
398 1998-11-04   Gisle Aas <aas@sn.no>
399
400    Release 2.00.
401
402    Taken out Digest::SHA1 as this module will be provided from Uwe
403    Hollerbach later.
404
405    Some tweaks to MD2.xs and MD5.xs since "na" disappeared in
406    perl5.005_53
407
408
409
410 1998-10-30   Gisle Aas <aas@sn.no>
411
412    Release 1.99_60
413
414    The 1.99_59 release introduced compilation problems for big-endian
415    systems with free U32 alignment.  Bug reported, and fix suggested
416    by Paul J. Schinder <schinder@pobox.com>.
417
418
419
420 1998-10-28   Gisle Aas <aas@sn.no>
421
422    Release 1.99_59
423
424    Makefile.PL will run a test program to find out if U32 values can
425    be aligned anywhere.  This hopefully cures the core dumps reported
426    on Solaris and other big endian systems.  Thanks to Graham Barr for
427    debugging this.
428
429
430
431 1998-10-28   Gisle Aas <aas@sn.no>
432
433    Release 1.99_58
434
435    Should be very close to a 2.00 release now.  Need some success
436    reports from people running on big-endian machines first I think.
437
438    Added a Digest::MD2 implementation.
439
440    Wrote Digest.pm documentation.  This define the interface that all
441    Digest:: modules should provide.
442
443    Avoided some code duplication in MD5.xs
444
445    Fixed typo, that prevented Digest::SHA1::sha1_base64() from working.
446
447
448
449 1998-10-27   Gisle Aas <aas@sn.no>
450
451    Release 1.99_57
452
453    Rewritten most of the MD5 C code to make it real fast (especially
454    on little-endian machines without alignment restrictions for U32).
455    Compared to MD5-1.7 we can process files 4 times as fast and we
456    digest small stuff in memory 7 times faster.  I came to these
457    conclusions after these tests (gcc -O2, i586, Linux):
458
459    First tested calculation of the digest of a 31 MB file, using
460    perl -le 'print Digest::MD5->new->addfile(*STDIN)->hexdigest'
461    and similar stuff:
462
463       MD5-1.7:                 21.06s
464       Digest::MD5-1.99_57:      5.23s
465       md5sum (GNU textutils):   4.90s
466
467    As you can see, we do nearly as good as the md5sum program.  I
468    think the reason we don't beat md5sum is that perl always insist on
469    loading extra modules like Config.pm, Carp.pm, strict.pm, vars.pm,
470    AutoLoader.pm and DynaLoader.pm.  When I simply wrapped the MD5.xs
471    hasher code in a C program I managed to process the file in 4.68s.
472
473    Then we calculated the digest of the same 6 byte sting, 20000
474    times:
475
476       MD5-1.7:                 11.81s
477       Digest::MD5-1.99_57:      1.68s
478
479    Digest::MD5 benefit from making this into a plain procedure call
480    instead of a static method call.
481
482
483    Other changes in this release are:
484
485    Documentation update
486
487    Internal MD5.xs cleanup.
488
489    $md5->digest will automatically reset now.
490
491    Digest::HMAC methods add() and addfile() did not return the
492    correct object.
493
494    Added Digest.pm loading module.  I am not sure this is a good idea.
495
496    Added Digest::SHA1 and Digest::HMAC_SHA1 module.  The Digest::SHA1
497    module is just a wrapper around SHA.pm.  I hope to get the author
498    of SHA.pm to move his module to the Digest:: category.
499
500
501
502 1998-10-25   Gisle Aas <aas@sn.no>
503
504    Release 1.99_56
505
506    Fix memcpy_byteswap() function in MD5.xs.  Must be careful with
507    htovl() as it might evaluate its arguments more than once.
508
509
510
511 1998-10-25   Gisle Aas <aas@sn.no>
512
513    Release 1.99_55
514
515    Grahams HMAC_MD5.pm splitted into two modules.  Digest::HMAC and
516    Digest::HMAC_MD5.  Also provide functional interface.  Documentation
517    is still lacking.
518
519    Included RFC 2202 based test for HMAC-MD5.
520
521
522
523 1998-10-24   Gisle Aas <aas@sn.no>
524
525    Release 1.99_54
526
527    Included HMAC_MD5.pm, contributed by Graham Barr <gbarr@ti.com>.
528
529    I have a hard time to make up my mind :-)  md5_bin() renamed back
530    to md5().   Functions are not exported by default any more.
531
532    Try to Encode/Decode with memcpy_byteswap for 32-bit big-endian
533    machines.
534
535
536
537 1998-10-23   Gisle Aas <aas@sn.no>
538
539    Release 1.99_53
540
541    Renamed core module as Digest::MD5.  Leave a MD5.pm stub for
542    legacy code.
543
544    The md5() function renamed as md5_bin().
545
546    The constructor, Digest::MD5->new, no longer takes any extra
547    arguments.
548
549    Added some new tests.
550
551    Updated the documentation.
552
553    $md5->b64digest implemented with same base64 encoder as md5_base64.
554
555
556
557 1998-10-23   Gisle Aas <aas@sn.no>
558
559    Release 1.99_52
560
561    Patch from Graham Barr which make it work for big-endian machines
562    again.
563
564
565
566 1998-10-22   Gisle Aas <aas@sn.no>
567
568    Release 1.99_51
569
570    The MD5 class is now subclassable.
571
572    The add() and addfile() methods now return $self.
573
574    The reset() method is just an alias for new().
575
576    The constructor (MD5->new) now takes optional arguments which are
577    automatically added.  It means that we can now write:
578
579       MD5->new($data)->hexdigest;
580
581    New $md5->b64digest method.
582
583    New functions that are exported on request: md5, md5_hex, md5_base64
584
585    Included RFC 1321
586
587    Barely started to update the documentation.
588
589
590
591 1998-10-22   Gisle Aas <aas@sn.no>
592
593    Release 1.99_50
594
595    Much better performance (more than twice as fast now).  Mostly
596    because we use Copy/Zero instead of the original MD5_memcpy and
597    MD5_memset functions.
598
599    The addfile() and hexdigest() methods are now XS implemented.
600
601    All RSA functions now included in MD5.xs and made static.
602
603    Use perl's Copy/Zero.
604
605    Random cleanup, simplifications and reformatting.
606    Merged things better with the perl configuration.
607
608
609
610 Neil Winton's versions below:
611
612
613 *** 96/06/20 Version 1.7
614
615 MD5 is now completely 64-bit clean (I hope). The basic MD5 code uses
616 32-bit quantities and requires a typedef UINT4 to be defined in
617 global.h. Perl configuration data (the value of BYTEORDER) is used to
618 determine if unsigned longs have 4 or 8 bytes. On 64-bit platforms (eg
619 DEC Alpha) then it assumes that "unsigned int" will be a 32-bit type.
620 If this is incorrect then adding -DUINT4_IS_LONG to the DEFINES line in
621 Makefile.PL will override this.
622
623 On some machines (at least Cray that I know of) there is no 32-bit
624 integer type. In this case defining TRUNCATE_UINT4 (which is done
625 automatically for a Cray) will ensure that 64-bit values are masked
626 down to 32 bits. I have done my best to test this but without easy
627 access to a true 64-bit machine I can not totally guarantee it (unless
628 anyone wants to lend me a spare Cray :-)
629
630 There is one remaining limitation for 64-bit enabled processors. The
631 amount of data passed to any single call to the underlying MD5
632 routines is limited to (2^32 - 1) bytes -- that's 4 gigabytes. I'm
633 sorry if that's a real problem for you ...
634
635 And finally, a minor compilation warning (unsigned char * used with
636 function having char * prototype) has also been eliminated.
637
638 *** 96/04/09 Version 1.6
639
640 Re-generated module framework using h2xs to pick up the latest module
641 conventions for versions etc. You can now say "use MD5 1.6;" and things
642 should work correctly. MD5.pod has been integrated into MD5.pm and
643 CHANGES renamed to Changes. There is a fairly comprehensive test.pl
644 which can be invoked via "make test". There are no functional changes
645 to the MD5 routines themselves.
646
647 *** 96/03/14 Version 1.5.3
648
649 Fixed addfile method to accept type-glob references for the file-handle
650 (eg \*STDOUT). This is more consistent with other routines and is now the
651 recommended way of passing file-handles. The documentation now gives more
652 examples as to how the routines might be used.
653
654 *** 96/03/12 Version 1.5.2
655
656 Minor fixes from Christopher J Madsen <madsen@computek.net> to provide
657 support for building on OS/2 (and to work around a perl -w bug).
658
659 Remove warning about possible difference between add('foo', 'bar') and
660 add('foobar'). This is not true (it may have been true in the earliest
661 version of the module but is no longer the case).
662
663 *** 96/03/08 Version 1.5.1
664
665 Add CHANGES file to make it easier for people to figure out what has
666 been going on. (Meant to do this as part of 1.5)
667
668 *** 96/03/05 Version 1.5
669
670 Add hash() and hexhash() methods at the suggestion/request of Gary
671 Howland <gary@kampai.euronet.nl> before inclusion in a wider library
672 of cryptography modules.
673
674 *** 96/02/27 Version 1.4
675
676 Finally fixed the pesky Solaris dynamic loading bug. All kudos to Ken
677 Pizzini <kenp@spry.com>!
678
679 *** 95/11/29 Version 1.3.1
680
681 Add explanations of current known problems.
682
683 *** 95/06/02 Version 1.3
684
685 Fix problems with scope resolution in addfile() reported by
686 Jean-Claude Giese <Jean-Claude.Giese@loria.fr>. Basically ARGV is
687 always implicitly in package main while other filehandles aren't.
688  
689 *** 95/05/23 Version 1.2.1
690
691 [Changes pre 1.2.1 not recorded]