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