1Revision history for Perl extension Digest::SHA. 2 36.02 Fri Apr 20 16:25:30 MST 2018 4 - silenced compiler warnings from VS2017 5 -- ref. rt.cpan.org #124477 6 -- thanks to Sergey Aleynikov for diagnostics 7 - modified addfile to return error when given a directory name 8 -- makes behavior consistent with GNU coreutils shaXsum 9 -- thanks to Scott Baker for pointing this out 10 116.01 Mon Dec 25 00:08:08 MST 2017 12 - added "--ignore-missing" and "--strict" options to shasum 13 -- consistent with GNU coreutils 14 -- ref. rt.cpan.org #123897 15 - removed PERL_CORE preambles from test scripts 16 -- preambles no longer needed for core testing 17 -- thanks to Chris Williams for patch 18 -- ref. rt.cpan.org #123863 19 206.00 Fri Dec 8 22:44:44 MST 2017 21 - added "tag" option (BSD-style checksums) to shasum 22 -- consistent with GNU sha1sum, sha224sum, etc. 23 -- thanks to Christopher Tubbs for suggestion 24 - modified SHA.pm to use XSLoader 25 -- falls back to DynaLoader if necessary 26 - decoupled Digest::SHA and Digest::SHA::PurePerl 27 -- scripts/tests in each module now fully independent 28 -- Digest::SHA::PurePerl to be phased out eventually 29 -- past versions will remain available 30 315.98 Wed Oct 4 00:40:02 MST 2017 32 - removed "portable" mode from shasum and addfile 33 -- rarely used, mostly in outdated systems 34 -- potentially confusing features (e.g. \r\r\n -> \n) 35 -- Universal Newlines mode (-U) a much cleaner approach 36 -- mimics Universal Newlines in Python 37 - shasum now uses Digest::SHA explicitly 38 -- no longer loads Digest::SHA::PurePerl as an option 39 -- hence no need for -R switch 40 -- Digest::SHA::PurePerl has its own shasum: shasumpp 41 425.97 Wed Sep 6 02:23:02 MST 2017 43 - added 'quiet' option to shasum 44 -- thanks to Chris David for suggestion and initial patch 45 -- ref. rt.cpan.org #122750 46 - expanded shasum --help message 47 -- to explain use of escaped FILE names 48 495.96 Wed Jul 27 20:04:34 MST 2016 50 - prevented shasum from possibly running malicious code 51 -- remove '.' from @INC before module loading 52 -- ref. rt.cpan.org #116513 53 - namespace cleanup (ref. rt.cpan.org #105371 and #105372) 54 - minor code and documentation tweaks 55 565.95 Sat Jan 10 12:15:36 MST 2015 57 - modified the bit-ordering test (ref. t/bitorder.t) 58 -- supplied directory-change preamble for CORE builds 59 605.94 Sat Jan 10 00:45:28 MST 2015 61 - added support for threaded builds 62 -- PERL_GET_NO_CONTEXT, pTHX_, aTHX_, etc. 63 -- employed 'const' storage class where possible 64 -- ref. rt.cpan.org #101260 65 - simplified shabits() routine (bitwise input buffering) 66 -- slightly less efficient but easier to understand 67 -- ref. rt.cpan.org #101344 68 - minor documentation tweaks and additions 69 705.93 Sun Oct 26 06:00:48 MST 2014 71 - corrected alignment problem in SHA struct (src/sha.h) 72 -- thanks to H. Merijn Brand and J. Hietaniemi for 73 analysis and suggested patch 74 - provided workaround in t/methods.t for unreliable -T test 75 -- Some Perl 5.8's mistake text for binary 76 775.92 Sun Jun 1 00:15:44 MST 2014 78 - fixed reserved-word clash when compiling with C++ 79 -- use 'classname' instead of 'class' 80 -- ref. SHA.xs (rt.cpan.org #96090) 81 - silenced MSC compiler warning about signed/unsigned comparison 82 -- ref. SHA.xs (rt.cpan.org #95830) 83 845.91 Fri May 16 10:21:44 MST 2014 85 - restored original 'addfile' for use on opened file handles 86 -- allows callbacks in place of actual files 87 -- ref. IO::Callback (rt.cpan.org #95643) 88 - re-established inheritance from Digest::base 89 -- to pick up future Digest enhancements automatically 90 - cleaned up documentation 91 925.90 Wed May 7 07:57:08 MST 2014 93 - consolidated all dynamic memory allocation into XSUBs 94 -- streamlines referencing of SHA objects 95 -- simplifies DESTROYing of objects 96 - enhanced Makefile.PL to allow 'use warnings' 97 -- automatically reverts to $^W for early Perls 98 - scrubbed C and Perl code to remove all compiler warnings 99 1005.89 Sat Apr 19 05:14:48 MST 2014 101 - added universal newlines mode ("U") to addfile and shasum 102 -- based on Python Universal Newlines concept 103 -- newlines identical across MacOS, DOS, and UNIX 104 -- will deprecate portable mode ("p") in future 105 -- "U" mode is cleaner and more efficient 106 - enhanced performance 107 -- reduced number of dynamic memory allocations 108 -- sped up addfile method with use of C code 109 -- ref. SHA.xs (_addfilebin and _addfileuniv) 110 - eliminated experimental -M option in favor of new -R option 111 -- reverses order of digest module preference 112 -- undocumented: for test and development use only 113 - sealed memory leak in SHA.xs 114 -- arose only with SvPVbyte exceptions during eval 115 - patched inheritence bug (ref: rt.cpan.org #94830) 116 -- use sv_isobject/sv_derived_from instead of sv_isa 117 - added 'allocated' flag to SHA structure (ref. src/sha.h) 118 -- to guard against Perl double frees 119 1205.88 Mon Mar 17 08:46:10 MST 2014 121 - added OUTPUT clause in SHA.xs to silence compiler warning 122 -- ref. shaclose() 123 - changed text file test (-T) to act on filehandles 124 -- ref. addfile portable mode 125 -- improves consistency when reading from STDIN 126 -- still must act on filenames for early Perls (< 5.6) 127 - added -M and -V options to shasum 128 -- undocumented: for development and testing use only 129 1305.87 Mon Feb 17 16:42:02 MST 2014 131 - simplified capture of intermediate SHA states 132 -- can now be done via strings (ref. getstate/putstate) 133 -- substantially reduces size of src/sha.c 134 - tightened code in SHA.xs 135 -- added sv_isa checks when invoking methods 136 1375.86 Thu Jan 30 08:24:28 MST 2014 138 - improved the performance of hexadecimal output functions 139 -- ref. 'shahex' in src/sha.c 140 -- thanks to Thomas Drugeon for ideas and test script 141 1425.85 Wed Jun 26 04:05:26 MST 2013 143 - workaround for repeated calls to shaclose (ref. Bug #86295) 144 -- need to explicitly reset internal pointer to NULL 145 ref. shaclose() in SHA.xs 146 - corrected typos in shasum script 147 -- ref. Bug #85430 148 1495.84 Sat Mar 9 17:36:08 MST 2013 150 - untweaked Makefile.PL to remove dependencies of SHA.c 151 -- dependencies were breaking builds on VMS 152 -- retaining dependencies provides too little benefit 153 for cost of portable workaround 154 1555.83 Mon Mar 4 08:12:00 MST 2013 156 - removed code for standalone C operation (no longer used) 157 -- eliminates need for external symbols 158 -- consolidates SHA and HMAC code 159 -- reduces size of object files 160 -- thanks to Marc Lehmann for suggestions 161 - tweaked Makefile.PL to show dependencies of SHA.c 162 1635.82 Thu Jan 24 04:54:12 MST 2013 164 - introduced workaround to SvPVbyte bug in Perl 5.6 165 -- module behavior now consistent under all Perls 5.6+ 166 -- ref: new test script t/unicode.t 167 -- SHA routines now always croak on wide chars (5.6+) 168 - removed "static" message schedules from C code 169 -- default "auto" is now just as fast 170 -- thread-safe option (-t) no longer necessary 171 -- still allowed, but ignored 172 -- simplifies source and header files 173 -- eliminates SHA_STO_CLASS and SHA_THREAD_SAFE 174 -- ref. Bug #82784 175 -- thanks to Steve Hay for initial patch 176 - provided documentation to describe Unicode handling 177 -- ref: Bug #82378 178 - updated documentation of NIST statement on SHA-1 179 1805.81 Mon Jan 14 05:17:08 MST 2013 181 - corrected load subroutine (SHA.pm) to prevent double-free 182 -- Bug #82655: Security issue - segfault 183 -- thanks to Victor Efimov and Nicholas Clark 184 for technical expertise and suggestions 185 1865.80 Mon Dec 10 14:15:26 MST 2012 187 - obtained noticeable speedup on Intel/gcc 188 -- by setting -O1 and -fomit-frame-pointer 189 -- SHA-1 about 63% faster, SHA-2 improves 11-20% 190 1915.74 Sat Nov 24 03:10:18 MST 2012 192 - handle wide-string input by converting to bytes first 193 -- viz. use SvPVbyte instead of SvPV in SHA.xs 194 -- thanks to Eric Brine for summary and code 195 1965.73 Wed Oct 31 04:32:44 MST 2012 197 - provided workaround for DEC compiler bug (ref. Makefile.PL) 198 1995.72 Mon Sep 24 15:22:08 MST 2012 200 - adjusted module installation directory for later Perls 201 -- As of 5.11 Perl searches 'site' first, so use that 202 -- ref. INSTALLDIRS in Makefile.PL 203 -- thanks to Robert Sedlacek for patch 204 2055.71 Wed Feb 29 04:06:10 MST 2012 206 - prevented $! from getting clobbered in _bail() routine 207 -- thanks to Zefram for patch 208 - added example of BITS mode usage to shasum documentation 209 2105.70 Wed Dec 14 02:32:10 MST 2011 211 - added BITS mode to addfile method and shasum 212 -- partial-byte inputs now possible via files/STDIN 213 -- allows shasum to check all 8074 NIST Msg vectors 214 -- previously required special programming 215 2165.63 Tue Nov 8 02:36:42 MST 2011 217 - added code to allow very large data inputs all at once 218 -- previously limited to several hundred MB at a time 219 -- many thanks to Thomas Drugeon for his elegant patch 220 - removed outdated reference URLs from several test scripts 221 -- these URLs aren't essential, and often go stale 222 -- thanks to Leon Brocard for spotting this 223 -- ref. rt.cpan.org #68740 224 2255.62 Sat May 14 04:00:34 MST 2011 226 - removed unnecessary loading of MIME::Base64 module 227 -- thanks to dolmen for pointing this out 228 2295.61 Wed Mar 9 05:26:36 MST 2011 230 - corrected bug in 'algorithm' method 231 - fixed -x option in Makefile.PL 232 -- not often used since it deliberately excludes 233 all 64-bit SHA transforms 234 - addressed minor documentation oversights 235 2365.60 Thu Mar 3 05:26:42 MST 2011 237 - added new SHA-512/224 and SHA-512/256 transforms 238 -- ref. NIST Draft FIPS 180-4 (February 2011) 239 - simplified shasum by removing duplicative text 240 - improved efficiency of Addfile 241 -- expensive -T test now occurs only in portable mode 242 2435.50 Tue Dec 14 06:20:08 MST 2010 244 - adopted convention that '-' always means STDIN 245 -- actual filename '-' accessed as './-' 246 -- accords with behavior of sha1sum/md5sum 247 - corrected undefined subroutine oversight in shasum 248 -- inadvertent migration of _bail() from SHA.pm 249 2505.49 Sun Dec 12 07:22:04 MST 2010 251 - modified Addfile to accept all POSIX filenames 252 -- standard allows all characters except NUL and '/' 253 - updated shasum to more closely mimic sha1sum/md5sum 254 -- added "backslash processing" to handle newlines 255 and backslashes in filenames 256 -- now accepts all POSIX filenames via Addfile 257 -- thanks to Sean Burke for identifying edge cases 258 2595.48 Mon Jan 4 16:32:52 MST 2010 260 - fixed "shasum -a0" option (ref. rt.cpan.org #53319) 261 -- incorrectly accepted 0 as a valid algorithm 262 -- thanks to Zefram for patch 263 - updated URL for NIST test vectors 264 -- ref. files t/nistbit.t, t/nistbyte.t 265 -- thanks to Leon Brocard for patch 266 2675.47 Wed Apr 30 04:00:54 MST 2008 268 - modified Makefile.PL to install in core for Perls >= 5.10 269 -- thanks to Jerry Hedden for patch 270 - changed from #include <> to #include "" in SHA.xs 271 -- some platforms not able to find SHA source files 272 -- thanks to Alexandr Ciornii for testing 273 - moved .pm file to appropriate lib directory 274 - minor addition to META.yml 275 2765.46 Wed Apr 9 05:04:00 MST 2008 277 - modified Addfile to recognize leading and trailing 278 whitespace in filenames (ref. rt.cpan.org #34690) 279 - minor C source code modification (ref. hmac.c) 280 - use const in sha.c for clean builds with -Wwrite-strings 281 -- thanks to Robin Barker for patch 282 2835.45 Tue Jun 26 02:36:00 MST 2007 284 - extended portability to earlier Perls 285 -- works on Perl 5.003 and later 286 -- thanks to Jim Doble for testing on legacy platforms 287 - updated META.yml to conform to current META spec (1.3) 288 - minor documentation fixes 289 2905.44 Sat Oct 14 00:42:44 MST 2006 291 - removed SIGNATURE file from distribution 292 -- spurious errors from CPANPLUS can break build 293 - eliminated ppport.h header file 294 -- significantly reduces size of distribution 295 - modified C functions in src/hmac.c to use ANSI prototypes 296 -- thanks to Jarkko Hietaniemi for patch 297 2985.43 Sat Aug 5 02:36:18 MST 2006 299 - undid Perl Best Practice of favoring 3-argument "open" 300 -- 3-arg version uses different semantics for "-" 301 causing bugs in addfile and shasum 302 - modified underlying C functions to use ANSI prototypes 303 -- requested by Steve Hay (ref. Smoke [5.9.4] 28630) 304 -- K&R style was causing numerous warnings from 305 Borland compiler 306 3075.42 Mon Jul 24 04:04:40 MST 2006 308 - minor code changes suggested by Perl::Critic 309 -- e.g. no bareword filehandles, no 2-argument open's 310 - updated public key (ref. B538C51C) 311 -- previous one (0AF563FE) expired July 2, 2006 312 - added documentation to warn that Base64 digests are NOT padded 313 -- padding must be done by user if interoperability 314 with other software is required 315 3165.41 Sat Jun 3 01:50:46 MST 2006 317 - corrected addfile 318 -- process $file argument as a filehandle unless passed 319 as a SCALAR (which indicates a file name) 320 3215.40 Fri Jun 2 04:00:30 MST 2006 322 - modified addfile to accept indirect filehandles 323 -- ref. rt.cpan.org #19627 and #19641 324 3255.39 Sun May 28 03:22:24 MST 2006 326 - modified shasum to warn rather than die for file errors 327 -- to follow conventions of GNU sha1sum/md5sum 328 3295.38 Thu May 25 02:02:02 MST 2006 330 - added new capabilities to the "addfile" method 331 -- now able to accept file names as well as handles 332 -- includes mode for portable digest calculation 333 -- thanks to Adam Kennedy for emails and ideas 334 ref. File::LocalizeNewlines 335 - used expanded addfile interface to simplify shasum (sumfile) 336 -- regex a tad less general than 5.37, but handles all 337 known newline variants in UNIX/Windows/MacOS 338 - enhanced WARNING messages from shasum checkfile processing 339 -- to mimic behavior of md5sum 340 3415.37 Mon May 8 04:30:09 MST 2006 342 - modified shasum to avoid file slurping (ref. sub sumfile) 343 - improved error handling of checksum files in shasum 344 -- to better mimic the behavior of md5sum 345 - refined line-break regex in shasum (ref. sub sumfile) 346 -- catches multiple CR's preceding LF 347 thanks to Gisle Aas for suggested patch 348 - changed loop vars to signed int's in shadump (ref. src/sha.c) 349 -- to prevent type mismatch warnings 350 3515.36 Mon May 8 01:38:36 MST 2006 352 - fixed the "portable" option in shasum 353 -- normalize line-breaks in text files only 354 3555.35 Thu May 4 16:54:42 MST 2006 356 - added "portable" option to shasum 357 -- to make digests match across Windows/Unix/MacOS 358 - enabled bundling of shasum command line options 359 -- to mimic behavior of md5sum 360 - removed \r's from text files in t/nist directory 361 -- resolves SIGNATURE clashes (rt.cpan.org #18983) 362 - changed suffix on SHA64_MAX (src/sha.h) to ULL 363 -- eliminates gcc warnings (rt.cpan.org #18988) 364 - specified minimum Perl version for module and Makefile.PL 365 -- closes rt.cpan.org #18984 366 3675.34 Thu Feb 2 18:55:40 MST 2006 368 - removed Unix-style pathnames in test scripts 369 -- causing problems on OpenVMS 370 -- thanks to Steve Peters for patch 371 - included latest version of Perl Portability header (ppport.h) 372 - added PERL_CORE check to test scripts 373 -- allows module to be built into Perl distribution 374 3755.32 Fri Dec 2 02:32:20 MST 2005 376 - added POD section to shasum script 377 -- thanks to Gunnar Wolf for patch 378 - made minor code changes to silence compiler warnings 379 -- resulting from signed/unsigned integer mixing 380 - inserted code in test scripts for POD checking 381 -- to recover gracefully if Test::More isn't installed 382 3835.31 Mon Sep 5 00:52:42 MST 2005 384 - added standard tests for pod and pod-coverage checking 385 - inserted subtest to check for failure when using 386 unrecognized SHA algorithm 387 3885.30 Sat Aug 20 16:46:08 MST 2005 389 - updated docs with recent NIST statement on SHA-1 390 -- advises use of larger and stronger hash functions 391 (i.e. SHA-224/256/384/512) for new developments 392 3935.29 Sun Aug 14 04:48:34 MST 2005 394 - added explicit casts in "shaload" routine (ref. "ldvals") 395 -- thanks to E. Allen Smith for pointing out SGI compiler 396 warnings on IPxx-irix platforms 397 - updated docs with cautionary note about SHA-1 398 3995.28 Wed Nov 10 15:33:20 MST 2004 400 - provided more flexible formatting of SHA state files 401 -- entries may now contain embedded whitespace 402 for improved readability 403 - minor code cleanups 404 4055.27 Sun Oct 24 02:54:00 MST 2004 406 - minor code cleanups 407 -- reduces size of dump files for SHA-1/224/256 408 4095.26 Thu Oct 7 14:52:00 MST 2004 410 - streamlined distribution 411 -- reduced NIST vector tests from 200 to 20 412 -- former number was overkill 413 -- distro now downloads and builds more quickly 414 - rewrote SYNOPSIS sections in pod file 415 - made additional tweaks to t/8-shasum.t for portability 416 - cleaned up test scripts 417 4185.25 Sun Sep 12 18:48:00 MST 2004 419 - removed non-essential test script 420 -- t/8-shasum.t causes problems on sparc64-linux 421 - reverted to using eval "require $module" in shasum 422 4235.24 Sun Sep 12 02:50:18 MST 2004 424 - modified shasum to use barewords in "require" statements 425 -- ref. perl.cpan.testers (157305) 426 4275.23 Thu Sep 9 23:06:18 MST 2004 428 - corrected bug in test script 429 -- use blib when invoking perl as an external 430 command in t/8-shasum.t 431 4325.22 Tue Sep 7 19:12:40 MST 2004 433 - broadened SHA-384/512 support 434 -- to compilers with no ULLONG_MAX in limits.h 435 -- e.g IBM C (xlC 6.0.0) on AIX 4.3.3 436 -- thanks to Chris Carey for suggestions 437 and technical expertise 438 - improved use of static storage class in transforms 439 -- detection of Intel arch. now done in Makefile.PL 440 -- NB: static not used if compiling for thread safety 441 - minor changes to documentation 442 4435.21 Mon Aug 23 04:02:00 MST 2004 444 - removed 64-bit constant expressions from #if statements 445 -- ref. src/sha.h (lines 55, 58, and 61) 446 -- even if compiler supports long long's, preprocessor 447 may use long's when evaluating expressions 448 - improved test script for "shasum" (t/8-shasum.t) 449 -- exercises check file option (-c) 450 4515.20 Sun Aug 15 04:24:48 MST 2004 452 - introduced "shasum" script 453 -- mimics the usage and behavior of "md5sum" 454 -- adds "-a" option to select SHA algorithm 455 -- for help, just type "shasum -h" 456 4575.10 Fri Aug 6 02:04:38 MST 2004 458 - simplified module documentation 459 -- made it consistent with Digest::SHA::PurePerl docs 460 4615.03 Sat Jul 31 00:00:48 MST 2004 462 - corrected HMAC-SHA-384/512 bug (cpan #7181, Adam Woodbury) 463 -- code was using hardwired blocksize for SHA-1/256 464 -- ref. src/hmac.c, src/hmac.h 465 4665.02 Thu Jul 29 02:48:00 MST 2004 467 - updated documentation and "dump-load.t" test script 468 -- to be consistent with Digest::SHA::PurePerl 469 - included a SIGNATURE file 470 -- for stronger authentication of module contents 471 -- ref. Module::Signature on CPAN 472 - corrected embarrassing misspelling in docs 473 -- apologies to Gisle Aas 474 4755.01 Fri May 21 13:08:12 MST 2004 476 - check for undefined SHA handle when calling "shaclose()" 477 -- prevents intermittent cleanup errors during 478 global object destruction 479 4805.00 Fri May 14 04:45:00 MST 2004 481 - minor documentation fixes 482 - restored classical style of version numbering (X.YZ) 483 -- previous X.Y.Z style caused installation difficulties 484 when using CPANPLUS 485 4864.3.3 Wed May 5 00:30:40 MST 2004 487 - fixed bug in "strto64()" function 488 -- caused problems in state files with CR/LF pairs 489 -- thanks to Martin Thurn for testing support 490 4914.3.2 Wed Apr 28 03:56:00 MST 2004 492 - added Makefile.PL options 493 -- thread-safety: -t 494 -- exclude 384/512 support: -x 495 -- e.g. perl Makefile.PL -t 496 - temporarily suppress dump/load tests for SHA-384/512 497 -- pending clarification of problem on sun4u sparc 498 4994.3.1 Thu Mar 4 02:54:00 MST 2004 500 - removed unused functions from XS file 501 -- reduces size of compiled objects 502 - simplified implementation of Digest::SHA object 503 -- now a blessed SHAPtr ref instead of blessed array ref 504 -- results in slight speed-up of OO operations 505 - streamlined underlying C source 506 -- used macros to consolidate repetitive code 507 - rewrote test scripts to depend on Test rather than Test::More 508 -- allows module to be checked in minimal Perl environments 509 - added compilation option for thread-safety 510 -- overrides use of static arrays 511 5124.3.0 Sat Feb 7 02:58:00 MST 2004 513 - included SHA-384/512 support if using Microsoft C/C++ 514 -- uses MSVC's __int64 in place of "long long" 515 - enhanced portability and efficiency on diverse platforms 516 -- automatically sets up optimal types for 32/64-bit ops 517 - improved test scripts for better reporting 518 -- many thanks to Alex Muntada for helpful suggestions 519 5204.2.2 Sat Jan 31 17:10:20 MST 2004 521 - repaired 32-bit SHA operations for 8-byte longs 522 5234.2.1 Sat Jan 24 00:56:54 MST 2004 524 - modified I/O and memory management in underlying C code 525 -- uses Perl libraries when compiled as CPAN module 526 -- otherwise defaults to ANSI C libraries 527 -- bypasses problems in MSWin multi-threaded Perls 528 -- avoids "Free to wrong pool" error 529 -- special thanks to Robert Gilmour and Brian Gladman 530 for technical guidance and testing 531 5324.2.0 Sat Dec 27 16:08:00 MST 2003 533 - added support for recently-announced SHA-224 algorithm 534 -- ref. FIPS 180-2 Change Notice 1 535 -- also includes HMAC-SHA-224 536 5374.1.0 Thu Dec 25 00:58:00 MST 2003 538 - repaired "nist-vectors" test scripts for MSWin32 portability 539 -- use binmode for data files 540 5414.0.9 Wed Dec 24 02:58:22 MST 2003 542 - use canonical file specs in test scripts 543 -- enhances portability across different OSes 544 - modify type declarations of objects in XS file 545 -- re-declare as (SV *) and cast to (AV *) SvRV(self) 546 -- in response to AVPtr problem on MSWin32 547 5484.0.8 Thu Dec 18 23:32:00 MST 2003 549 - inherits from Digest::base if installed 550 -- also checks for MIME::Base64 551 -- still fully-functional if neither are installed 552 - added buffer overflow protection in underlying C code 553 -- ref. shahex() and shabase64() routines 554 -- prior code appeared impossible to exploit, but ... 555 -- better safe than sorry 556 -- does not impact runtime efficiency 557 - minor code cleanup 558 5594.0.7 Sat Dec 13 00:48:24 MST 2003 560 - check for undefined SHA handle when calling "shaclose()" 561 -- was causing cleanup err during global destruction 562 5634.0.6 Thu Dec 11 02:18:00 MST 2003 564 - more optimization and streamlining 565 -- a bit faster on non-big-endians (e.g. Intel) 566 - rewrote time-critical functions and methods in XS 567 - removed unused C functions from source files 568 5694.0.5 Sat Dec 6 00:02:24 MST 2003 570 - performance optimizations 571 -- rewrote "add" method in XS 572 -- unrolled loops in sha256 transform 573 5744.0.4 Thu Dec 4 00:07:00 MST 2003 575 - made Digest::SHA into a self-contained module 576 -- no longer depends on Digest::base 577 -- more convenient for users 578 -- no need to install Digest:: module 579 5804.0.3 Wed Dec 3 00:01:20 MST 2003 581 - Digest::SHA now a subclass of Digest::base 582 -- inherits hexdigest/b64digest/addfile methods 583 - added "hashsize" method 584 - removed old "shaopen()/shawrite()/..." legacy code 585 -- in favor of standard, streamlined OO interface 586 - renamed test vector files from NIST 587 -- prevents problems on 8+3 filesystems 588 - added test for Dave Ireland's SHA-256 vector 589 5904.0.0 Sat Nov 29 21:14:09 MST 2003 591 - major streamlining of interface (hence, major version change) 592 -- coordinated with Gisle Aas and J. Duque 593 -- goal is to produce a single SHA module 594 -- adheres to OO and functional styles of Digest:: 595 -- greatly reduces the number of interface functions 596 -- old functions still supported 597 -- use Digest::SHA ':legacy' 598 -- will be deprecated in near future 599 - rewrote all test scripts to match new interface 600 -- very easy to modify all 281 tests 601 -- old interface maps cleanly to new one 602 6033.0 Wed Nov 26 05:02:34 MST 2003 604 - added functions that conform to Digest:: interface 605 -- both functional and OO styles 606 -- byte-oriented data only 607 -- continue to support original interface as well 608 -- necessary for bit-oriented data 609 - supplied formal test vectors for HMAC-SHA-256 610 -- from draft-ietf-ipsec-ciph-sha-256-01.txt 611 - included tests for all OO methods 612 6132.4 Sat Nov 22 17:10:22 MST 2003 614 - code cleanup 615 -- "sha.c" now completely free of #ifdef's 616 - modularized all 64-bit (long long) code 617 - improved readability of header files 618 - simplified logic of "fixdump" utility 619 6202.3 Wed Nov 19 03:54:31 MST 2003 621 - minor optimizations and code cleanup 622 -- improved maintainability by reducing #ifdef's 623 -- sha1 transform code now easier to follow 624 - streamlined shadump/shaload file format 625 -- eliminated special "HQ" entry 626 -- state now held in "H" for all transforms 627 -- supplied "fixdump" utility to convert old format 628 - SHA-384/512 functions now return NULL for no 64-bit operations 629 -- previously they were undefined 630 -- no longer necessary to use eval's to test for presence 631 6322.2 Sun Nov 16 01:54:00 MST 2003 633 - optimized the performance of the SHA-1 transform 634 -- around 20-30% faster than previous version 635 -- achieved by loop unrolling and assignment consolidation 636 - enhanced shaload/shadump to allow interaction with stdin/stdout 637 -- "$filename" argument now optional 638 6392.1 Sun Nov 9 03:28:04 MST 2003 640 - simplified data input routines 641 -- length argument now optional for byte data 642 (special thanks to Jeffrey Friedl for this idea) 643 -- interface still compatible with earlier versions 644 -- changes will not affect existing client code 645 - streamlined underlying C code for easier maintenance 646 - provided additional tests for persistent data 647 6482.0 Sat Nov 1 03:55:36 MST 2003 649 - added functions for HMAC-SHA-1/256/384/512 (FIPS PUB 198) 650 - shadump/shaload files now compatible between 32/64-bit machines 651 6521.01 Sat Oct 25 02:44:55 MST 2003 653 - package now downloads and installs much faster 654 - reduced distribution size by 80% 655 -- pruned extensive NIST vectors to a useful subset 656 -- still possible to test all vectors if desired 657 --- see "t/nist/COPYRIGHT" file for details 658 - added routines to provide persistent storage of SHA states 659 -- shadump() and shaload() 660 - reduced runtime of large bitstring tests (gillogly-hard) 661 -- illustrates usefulness of shadump()/shaload() 662 6631.0 Sat Oct 18 17:35:07 MST 2003 664 - documentation fixes 665 - code cleanup: no more compiler warnings from gcc -Wall 666 - added code to allow reading of intermediate digest state 667 -- shahex() prior to shafinish() returns current state 668 6690.9 Thu Oct 9 20:43:54 MST 2003 670 - version updated to reflect portability check and passing 671 of all tests (1401) 672 6730.01 Wed Oct 8 22:28:05 2003 674 - original version; created by h2xs 1.22 with options 675 -x -A -n Digest::SHA sha.h 676