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