12010-07-03 Release 2.13 2 3 Mike McCauley (1): 4 Fix memory leak in sha1_transform 5 6 7 82009-05-23 Release 2.12 9 10 Gisle Aas (6): 11 Get rid of the old CVS ids 12 Avoid "redefined" error for ULONG on Win64 13 Less optimizations on IRIX [RT#8999] 14 Clean up the 'git status' output 15 Mention that SHA-1 might be weak [RT#11880] 16 Ensure more stuff in the META.yml file [RT#40757] 17 18 Steve Peters (1): 19 Quiet warnings when compiled with -Wwrite-strings [RT#31915] 20 21 22 232006-01-18 Gisle Aas <gisle@ActiveState.com> 24 25 Release 2.11 26 27 Internal cleanup to avoid some compiler warnings. 28 29 30 312004-04-05 Gisle Aas <gisle@ActiveState.com> 32 33 Release 2.10 34 35 Restore compatibility with perl-5.004 and perl-5.005. 36 37 38 392004-04-01 Gisle Aas <gisle@ActiveState.com> 40 41 Release 2.09 42 43 The 2.08 release did not compile with a threaded debugging 44 perl, because assert() then needs my_perl. Fixed by commenting 45 out the asserts. 46 47 48 492004-04-01 Gisle Aas <gisle@ActiveState.com> 50 51 Release 2.08 52 53 Enable PERL_NO_GET_CONTEXT for more more efficient execution 54 on a threaded perl. 55 56 Fix up md5 references. Patch by Ville Skyttä <ville.skytta@iki.fi>. 57 58 59 602003-12-05 Gisle Aas <gisle@ActiveState.com> 61 62 Release 2.07 63 64 Inherit add_bits() from Digest::base if available. 65 66 67 682003-10-13 Gisle Aas <gisle@ActiveState.com> 69 70 Release 2.06 71 72 The sha1_transform() function did not check that it was actually 73 passed any arguments. 74 75 Complete self-contained documentation included (copied from 76 Digest::MD5), since the Digest.pm manpage is not always available. 77 78 79 802003-10-06 Gisle Aas <gisle@ActiveState.com> 81 82 Release 2.05 83 84 Added missing cast to support C++ compilation. Patch by Jan Dubois. 85 86 Document that the sha1_base64 function and the b64digest method 87 does not pad their result. 88 89 90 912003-07-22 Gisle Aas <gisle@ActiveState.com> 92 93 Release 2.04 94 95 Don't assume PerlIO_read() works like fread() even though 96 it was documented like that for perl 5.6. It returns negative 97 on read failure. 98 99 Kill test #3 in t/badfile.t. I don't know a reliable way 100 to test read failures on a file handle. Seems better not to 101 test than to make many worry. 102 103 104 1052003-07-05 Gisle Aas <gisle@ActiveState.com> 106 107 Release 2.03 108 109 Implemented sha1_transform, required to implement NIST FIPS 186-2. 110 Contributed by Mike McCauley <mikem@open.com.au>. 111 112 Make it build on 64-bit platforms with 32-bit longs. At least 113 I hope it will. 114 115 Sync up with the Digest::MD5 implementation: 116 - added clone method 117 - addfile croaks if it can't read 118 - the sha1*() functions warn if called as method 119 or with reference arguments. 120 121 122 1232002-12-27 Gisle Aas <gisle@ActiveState.com> 124 125 Release 2.02 126 127 Make it work when there is a mismatch between the 128 sizeof(BYTEORDER) and sizeof(long). Based on patch 129 by Allen Smith <easmith@beatrice.rutgers.edu>. 130 131 Support UTF8 strings in newer versions of Perl. 132 133 134 1352001-12-30 Gisle Aas <gisle@ActiveState.com> 136 137 Release 2.01 138 139 Applied trivial win32 fix from Gurusamy Sarathy that 140 avoids stray temp files left after 'make test'. 141 142 143 1442001-03-13 Gisle Aas <gisle@ActiveState.com> 145 146 Release 2.00 147 148 Broken out of the Digest-MD5-2.12 distribution and made into 149 a separate dist. 150 151 152 153------------------------------------------------------------------- 154Changes below from the Digest-MD5 dist. 155 156 1572000-09-18 Gisle Aas <gisle@ActiveState.com> 158 159 Release 2.12 160 161 Avoid pointer cast warning for machines with bigger ints 162 than pointers. Patch by Robin Barker <rmb1@cise.npl.co.uk>. 163 164 165 1662000-08-19 Gisle Aas <gisle@ActiveState.com> 167 168 Release 2.11 169 170 The fallback code introduced in 2.10 did only work for 171 perl-5.6.0. It should now for for perl5.004 and 5.005 172 as well. Patch by Ville Skyttä <ville@office.popsystems.com>. 173 174 175 1762000-08-18 Gisle Aas <gisle@ActiveState.com> 177 178 Release 2.10 179 180 Digest::MD5 will now try to fallback to the pure perl 181 implementation of Digest::Perl::MD5 if bootstrap fails. 182 183 Added a bit internal paranoia about casting the IV 184 in the Digest::MD5 object to the MD5_CTX* pointer. 185 186 187 1881999-08-06 Gisle Aas <gisle@aas.no> 189 190 Release 2.09 191 192 Documentation update. 193 194 195 1961999-07-28 Gisle Aas <gisle@aas.no> 197 198 Release 2.08 199 200 The addfile() methods could trigger a core dump when passed 201 a filehandle that had failed to open. 202 203 204 2051999-04-26 Gisle Aas <gisle@aas.no> 206 207 Release 2.07 208 209 The Digest::SHA1 module failed on some 64-bit systems, because I 210 assumed there was a correspondence between the U32 size and 211 BYTEORDER. This version use 'unsigned long' as Uwe's original 212 SHA module did. 213 214 The module should now work better when liked statically with perl, 215 because we now use a safer module-loaded test in Digest.pm. 216 217 Assume we know the outcome of the alignment test on VMS. Patch by 218 Chuck Lane <lane@duphy4.physics.drexel.edu> 219 220 221 2221999-03-26 Gisle Aas <gisle@aas.no> 223 224 Release 2.06 225 226 Avoid LONG and BYTE types in SHA.xs as they was in conflict 227 with similar definitions in <winnt.h>. 228 229 Patch by Marko Asplund <aspa@hip.fi> to make the the alignment 230 test program link successfully with sfio-perl. 231 232 Fixed a typo in MD5.xs that might have affected 64-bit systems. 233 Spotted by Nick Ing-Simmons 234 235 236 2371999-03-15 Gisle Aas <gisle@aas.no> 238 239 Release 2.05 240 241 Included Digest::SHA1 based on Uwe Hollerbach's SHA module. 242 243 244 2451999-03-05 Gisle Aas <gisle@aas.no> 246 247 Release 2.04 248 249 Avoid the -o option when compiling alignment test program 250 for Win32 as suggested by Gurusamy Sarathy. 251 252 DEC Compiler bug workaround. Contributed by D Roland Walker 253 <walker@ncbi.nlm.nih.gov> 254 255 Having references to a local variable called "na" was not 256 very safe either. Some older versions of Perl can apparently 257 macroize this into something completely different. 258 259 260 2611999-02-27 Gisle Aas <gisle@aas.no> 262 263 Release 2.03 264 265 Patch from Christopher J. Madsen <chris_madsen@geocities.com> that 266 should help getting the u32align test program to compile with 267 Visual C++ 5 on Windows NT. 268 269 Got rid of references to PL_na. 270 271 272 2731999-01-31 Gisle Aas <gisle@aas.no> 274 275 Release 2.02 276 277 Added a hints file as workaround for an IRIX compiler bug. 278 Contributed by D Roland Walker <walker@ncbi.nlm.nih.gov>. 279 280 Note that the rfc2202 test can still fail on some DEC Alpha, 281 because of a compiler bug that affects the perl 'x' operator. 282 The Digest:: modules should work and be safe to install anyway. 283 284 285 2861998-12-18 Gisle Aas <aas@sn.no> 287 288 Release 2.01 289 290 Some casts and tweaks to make picky compilers more happy. 291 292 293 2941998-11-04 Gisle Aas <aas@sn.no> 295 296 Release 2.00. 297 298 Taken out Digest::SHA1 as this module will be provided from Uwe 299 Hollerbach later. 300 301 Some tweaks to MD2.xs and MD5.xs since "na" disappeared in 302 perl5.005_53 303 304 305 3061998-10-30 Gisle Aas <aas@sn.no> 307 308 Release 1.99_60 309 310 The 1.99_59 release introduced compilation problems for big-endian 311 systems with free U32 alignment. Bug reported, and fix suggested 312 by Paul J. Schinder <schinder@pobox.com>. 313 314 315 3161998-10-28 Gisle Aas <aas@sn.no> 317 318 Release 1.99_59 319 320 Makefile.PL will run a test program to find out if U32 values can 321 be aligned anywhere. This hopefully cures the core dumps reported 322 on Solaris and other big endian systems. Thanks to Graham Barr for 323 debugging this. 324 325 326 3271998-10-28 Gisle Aas <aas@sn.no> 328 329 Release 1.99_58 330 331 Should be very close to a 2.00 release now. Need some success 332 reports from people running on big-endian machines first I think. 333 334 Added a Digest::MD2 implementation. 335 336 Wrote Digest.pm documentation. This define the interface that all 337 Digest:: modules should provide. 338 339 Avoided some code duplication in MD5.xs 340 341 Fixed typo, that prevented Digest::SHA1::sha1_base64() from working. 342 343 344 3451998-10-27 Gisle Aas <aas@sn.no> 346 347 Release 1.99_57 348 349 Rewritten most of the MD5 C code to make it real fast (especially 350 on little-endian machines without alignment restrictions for U32). 351 Compared to MD5-1.7 we can process files 4 times as fast and we 352 digest small stuff in memory 7 times faster. I came to these 353 conclusions after these tests (gcc -O2, i586, Linux): 354 355 First tested calculation of the digest of a 31 MB file, using 356 perl -le 'print Digest::MD5->new->addfile(*STDIN)->hexdigest' 357 and similar stuff: 358 359 MD5-1.7: 21.06s 360 Digest::MD5-1.99_57: 5.23s 361 md5sum (GNU textutils): 4.90s 362 363 As you can see, we do nearly as good as the md5sum program. I 364 think the reason we don't beat md5sum is that perl always insist on 365 loading extra modules like Config.pm, Carp.pm, strict.pm, vars.pm, 366 AutoLoader.pm and DynaLoader.pm. When I simply wrapped the MD5.xs 367 hasher code in a C program I managed to process the file in 4.68s. 368 369 Then we calculated the digest of the same 6 byte sting, 20000 370 times: 371 372 MD5-1.7: 11.81s 373 Digest::MD5-1.99_57: 1.68s 374 375 Digest::MD5 benefit from making this into a plain procedure call 376 instead of a static method call. 377 378 379 Other changes in this release are: 380 381 Documentation update 382 383 Internal MD5.xs cleanup. 384 385 $md5->digest will automatically reset now. 386 387 Digest::HMAC methods add() and addfile() did not return the 388 correct object. 389 390 Added Digest.pm loading module. I am not sure this is a good idea. 391 392 Added Digest::SHA1 and Digest::HMAC_SHA1 module. The Digest::SHA1 393 module is just a wrapper around SHA.pm. I hope to get the author 394 of SHA.pm to move his module to the Digest:: category. 395 396 397 3981998-10-25 Gisle Aas <aas@sn.no> 399 400 Release 1.99_56 401 402 Fix memcpy_byteswap() function in MD5.xs. Must be careful with 403 htovl() as it might evaluate its arguments more than once. 404 405 406 4071998-10-25 Gisle Aas <aas@sn.no> 408 409 Release 1.99_55 410 411 Grahams HMAC_MD5.pm splitted into two modules. Digest::HMAC and 412 Digest::HMAC_MD5. Also provide functional interface. Documentation 413 is still lacking. 414 415 Included RFC 2202 based test for HMAC-MD5. 416 417 418 4191998-10-24 Gisle Aas <aas@sn.no> 420 421 Release 1.99_54 422 423 Included HMAC_MD5.pm, contributed by Graham Barr <gbarr@ti.com>. 424 425 I have a hard time to make up my mind :-) md5_bin() renamed back 426 to md5(). Functions are not exported by default any more. 427 428 Try to Encode/Decode with memcpy_byteswap for 32-bit big-endian 429 machines. 430 431 432 4331998-10-23 Gisle Aas <aas@sn.no> 434 435 Release 1.99_53 436 437 Renamed core module as Digest::MD5. Leave a MD5.pm stub for 438 legacy code. 439 440 The md5() function renamed as md5_bin(). 441 442 The constructor, Digest::MD5->new, no longer takes any extra 443 arguments. 444 445 Added some new tests. 446 447 Updated the documentation. 448 449 $md5->b64digest implemented with same base64 encoder as md5_base64. 450 451 452 4531998-10-23 Gisle Aas <aas@sn.no> 454 455 Release 1.99_52 456 457 Patch from Graham Barr which make it work for big-endian machines 458 again. 459 460 461 4621998-10-22 Gisle Aas <aas@sn.no> 463 464 Release 1.99_51 465 466 The MD5 class is now subclassable. 467 468 The add() and addfile() methods now return $self. 469 470 The reset() method is just an alias for new(). 471 472 The constructor (MD5->new) now takes optional arguments which are 473 automatically added. It means that we can now write: 474 475 MD5->new($data)->hexdigest; 476 477 New $md5->b64digest method. 478 479 New functions that are exported on request: md5, md5_hex, md5_base64 480 481 Included RFC 1321 482 483 Barely started to update the documentation. 484 485 486 4871998-10-22 Gisle Aas <aas@sn.no> 488 489 Release 1.99_50 490 491 Much better performance (more than twice as fast now). Mostly 492 because we use Copy/Zero instead of the original MD5_memcpy and 493 MD5_memset functions. 494 495 The addfile() and hexdigest() methods are now XS implemented. 496 497 All RSA functions now included in MD5.xs and made static. 498 499 Use perl's Copy/Zero. 500 501 Random cleanup, simplifications and reformatting. 502 Merged things better with the perl configuration. 503 504 505 506Neil Winton's versions below: 507 508 509*** 96/06/20 Version 1.7 510 511MD5 is now completely 64-bit clean (I hope). The basic MD5 code uses 51232-bit quantities and requires a typedef UINT4 to be defined in 513global.h. Perl configuration data (the value of BYTEORDER) is used to 514determine if unsigned longs have 4 or 8 bytes. On 64-bit platforms (eg 515DEC Alpha) then it assumes that "unsigned int" will be a 32-bit type. 516If this is incorrect then adding -DUINT4_IS_LONG to the DEFINES line in 517Makefile.PL will override this. 518 519On some machines (at least Cray that I know of) there is no 32-bit 520integer type. In this case defining TRUNCATE_UINT4 (which is done 521automatically for a Cray) will ensure that 64-bit values are masked 522down to 32 bits. I have done my best to test this but without easy 523access to a true 64-bit machine I can not totally guarantee it (unless 524anyone wants to lend me a spare Cray :-) 525 526There is one remaining limitation for 64-bit enabled processors. The 527amount of data passed to any single call to the underlying MD5 528routines is limited to (2^32 - 1) bytes -- that's 4 gigabytes. I'm 529sorry if that's a real problem for you ... 530 531And finally, a minor compilation warning (unsigned char * used with 532function having char * prototype) has also been eliminated. 533 534*** 96/04/09 Version 1.6 535 536Re-generated module framework using h2xs to pick up the latest module 537conventions for versions etc. You can now say "use MD5 1.6;" and things 538should work correctly. MD5.pod has been integrated into MD5.pm and 539CHANGES renamed to Changes. There is a fairly comprehensive test.pl 540which can be invoked via "make test". There are no functional changes 541to the MD5 routines themselves. 542 543*** 96/03/14 Version 1.5.3 544 545Fixed addfile method to accept type-glob references for the file-handle 546(eg \*STDOUT). This is more consistent with other routines and is now the 547recommended way of passing file-handles. The documentation now gives more 548examples as to how the routines might be used. 549 550*** 96/03/12 Version 1.5.2 551 552Minor fixes from Christopher J Madsen <madsen@computek.net> to provide 553support for building on OS/2 (and to work around a perl -w bug). 554 555Remove warning about possible difference between add('foo', 'bar') and 556add('foobar'). This is not true (it may have been true in the earliest 557version of the module but is no longer the case). 558 559*** 96/03/08 Version 1.5.1 560 561Add CHANGES file to make it easier for people to figure out what has 562been going on. (Meant to do this as part of 1.5) 563 564*** 96/03/05 Version 1.5 565 566Add hash() and hexhash() methods at the suggestion/request of Gary 567Howland <gary@kampai.euronet.nl> before inclusion in a wider library 568of cryptography modules. 569 570*** 96/02/27 Version 1.4 571 572Finally fixed the pesky Solaris dynamic loading bug. All kudos to Ken 573Pizzini <kenp@spry.com>! 574 575*** 95/11/29 Version 1.3.1 576 577Add explanations of current known problems. 578 579*** 95/06/02 Version 1.3 580 581Fix problems with scope resolution in addfile() reported by 582Jean-Claude Giese <Jean-Claude.Giese@loria.fr>. Basically ARGV is 583always implicitly in package main while other filehandles aren't. 584 585*** 95/05/23 Version 1.2.1 586 587[Changes pre 1.2.1 not recorded] 588