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