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