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