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