1** Changes in version 4.4 (29 Jan 2014) 2 3* New Features 4 5 Added case insensitive auditing with -E mode 6 7* Bug Fixes 8 9 Added checks against user errors on Hashdeep command line 10 11 Fixed bug for known filenames with the directory in the filename 12 13 Fixed bug for double dots in the filename 14 15 16 17** Changes in version 4.3 (24 Oct 2012) 18 19* Bug Fixes 20 21 Fixed check for endian-ness, affecting hash generation on 22 big-endian platforms. 23 24 Fixed minor bugs related to OpenSolaris. 25 26 27 28** Changes in version 4.2 (11 Jun 2012) 29 30* Bug Fixes 31 32 Fixed padding in Tiger hashes for large files 33 34 35 36** Changes in version 4.1.1 (5 Jun 2012) 37 38* Bug Fixes 39 40 Fixed hashdeep bug for known files with commas in their names. 41 Cleaned up usage message 42 43 44** Changes in version 4.1.0 (14 Feb 2012) 45 46* New Features 47 48 Added expert mode option to parse Windows PE files 49 50* Bug Fixes 51 52 Fixed junction point handling on Win32 53 54 55 56** Changes in version 4.0.1 (22 Jan 2012) 57 58* Bug Fixes 59 60 Fixed hang on DFXML generation on Win32 61 Fixed incorrect hashes via stdin on Win32 62 Fixed "Too many open files" error on OS X 63 Doc files in Win32 have been corrected. 64 65 66 67** Changes in version 4.0 (6 Jan 2012) 68 69* New Features 70 71 Rewrote most of the program in C++. 72 73 Enabled multiprocessor support on all platforms. 74 75 Removed ten character limit on file size mode 76 77* Bug Fixes 78 79 Too numerous to count! 80 81 82 83** Changes in version 3.9.1 (31 May 2011) 84 85* Bug Fixes 86 87 Fixed a cosmetic bugs regarding processing standard input 88 in piecewise mode. 89 90 Fixed a bug regarding processing known hash files which have 91 parenthesis in the filename. 92 93 Clarified documentation regarding multipliers in piecewise 94 mode. They are IEC multipliers, or blocks of 1,024. Side note: 95 also spelled 'multipliers' correctly. 96 97 98 99** Changes in version 3.9 (21 Apr 2011) 100 101* Bug Fixes 102 103 Fixed a critical bug in hashdeep regarding processing 104 standard input 105 106 107 108** Changes in version 3.8 (15 Apr 2011) 109 110* New Features 111 112 Added -f mode to get the list of input files from 113 a file on the disk. 114 115 Added 64-bit executables for Windows. 116 117 118* Bug Fixes 119 120 Fixed a cosmetic bug regarding the error messages for 121 piecewise mode. 122 123 124 125 126** Changes in version 3.7 (18 Dec 2010) 127 128* New Features 129 130 Added triage mode, -Z flag, to compute file size and partial 131 hashes in addition to full file hash. 132 133 Updated Windows cross-compiler to MinGW-4.2.1 134 135 136* Bug Fixes 137 138 Fixed hashdeep piecewise mode to include the correct size 139 of each piece being hashed. This enables audit mode to 140 work correctly. 141 142 Addressed display problem for time estimates of files with 143 long filenames in the current directory. 144 145 Added "Input/Output error" to the list of fatal errors when 146 processing files 147 148 149 150 151** Changes in version 3.6 (23 Mar 2010) 152 153* New Features 154 155 Added expert mode found in md5deep to hashdeep. 156 157* Bug Fixes 158 159 Fixed error checking in helper routines. 160 161 162 163 164** Changes in version 3.5.1 (30 Dec 2009) 165 166* Bug Fixes 167 168 Fixed processing of zero byte files. 169 170 171 172 173** Changes in version 3.5 (22 Dec 2009) 174 175* New Features 176 177 Added mode to load list of files to process from a file (-f mode) 178 179* Bug Fixes 180 181 Fixed file size computation for piecewise hashing of standard input. 182 183 Fixed error when auditing a directory to check for identical copies 184 of a file if one copy is removed. 185 186 187 188** Changes in version 3.4 (11 Jun 2009) 189 190* Bug Fixes 191 192 Fixed directory handle leak during recursive parsing on Windows 193 194 Fixed -n mode (display unused hashes) 195 196 197 198** Changes in version 3.3 (4 Apr 2009) 199 200* New Features 201 202* Bug Fixes 203 204 Skip all reparse points (symbolic links and junction points) 205 on Windows. Required for sane parsing of Windows Vista or 7 systems. 206 207 Fixed handling of 64-bit timestamps on Windows. 208 209 210 211 212** Changes in version 3.2 (25 Jan 2009) 213 214* New Features 215 216 Added Comma Separated Value (CSV) mode. 217 218 219* Bug Fixes 220 221 Fixed support for 64-bit files on Windows 222 223 Fixed hashdeep input file parsing to allow filenames with 224 commas and properly handle other kinds of errors. Also 225 modified the invocation listing in output files such that 226 even long lines can be successfully parsed. 227 228 229 230 231** Changes in version 3.1 (23 Jul 2008) 232 233* New Features 234 235 Added size threshold modes to only process files smaller 236 than a given size. 237 238 Added a timestamp mode that records the creation time time 239 for each file on Win32, the change time on all other operating 240 systems. 241 242 Streamlined file size computation process, which makes 243 the programs about 15% faster. 244 245 246* Bug Fixes 247 248 Corrected time estimates for large files (e.g. files which 249 require more than one day). 250 251 252 253 254** Changes in version 3.0 (10 May 2008) 255 256* New Features 257 258 Added hashdeep program to support multihashing and 259 hash file auditing 260 261 Added support for new iLook style hashes 262 263* Bug Fixes 264 265 Fixed obscure bug that caused a crash (double free) when 266 attempting to check a very small file for EnCase hashes 267 268 269 270** Changes in version 2.0.1 (31 Oct 2007) 271 272* Bug Fixes 273 274 Added support for older Linux systems that don't have the 275 latest and greatest ioctl functions. 276 277 278 279** Changes in version 2.0 (15 Oct 2007) 280 281* New Features 282 283 Using GNU Autotools for configuration and compilation. This 284 should help avoid platform specific issues such as SHA-1 285 problems previously found on 64-bit versions of AIX. 286 287 Added support for files with Unicode characters in their 288 filenames on Microsoft Windows. 289 290 Added support for EnCase hash sets (.hash files). 291 292 Updated web site and quick start guide 293 294 Slightly reduced the size of all of the executables by removing 295 duplicated code. 296 297* Bug Fixes 298 299 Fixed time estimation mode for block devices on OS X and Linux 300 301 Fixed cosmetic error where estimated time remaining mode is 302 being used in conjunction with piecewise hashing. Time estimates 303 are now based on the whole file, not just each piece. 304 305 Clarified licensing issues in COPYING for tiger.c 306 307 Changed some data types in hashing functions to C99 standard. 308 Whirlpool seems to be working well enough without changes. 309 310 Wrapped all of the global variables into the state structure 311 312 313 314** Changes in version 1.13 (6 Aug 2007) 315 316* New Features 317 318 Added HP/UX as a support platform 319 320 Added -S mode to only display warnings for improperly 321 formatted hashes. 322 323 Created an internal state variable to central program structure. 324 This will help to simplify future development. Also moved 325 md5deep.h to main.h. 326 327 Moved print functions to ui.c for easier abstraction 328 329* Bug Fixes 330 331 Changed piecewise hashing block size to a 64-bit value. 332 333 Fixed a cosmetic error regarding newlines in -n mode. 334 335 Fixed error on Win32 in file estimate mode. Although it appeared 336 to be solely cosmetic, the functions to produce the status message 337 could potentially overwrite other memory and create inconsistencies 338 339 Removed make macg5 option as it didn't work with new 340 versions of gcc. 341 342 Updated the maximum line length to 2048 bytes. This should 343 avoid errors reading in files with very long lines. 344 345 346 347** Changes in version 1.12 (3 Apr 2006) 348 349* New Features 350 351 Added multipliers for piecewise hashing mode. 352 353* Bug Fixes 354 355 Fixed Gentoo compilation and the use of BLOCK_SIZE in hash.c. 356 357 Fixed piecewise hashing bugs: filename display, correct offset 358 when block size is larger than file, and ability to handle 359 large block sizes. 360 361 362 363Version 1.11 - 31 Mar 2006 364 - Added piecewise mode -p 365 - Added support for using md5deep output while file sizes (-z mode) in 366 matching mode. 367 - Added flush to output after newline generation in helpers.c 368 - Fixed SHA-1 to work on 64-bit platforms (changed unsigned long to uin32_t) 369 - For good measure, eliminated a few other unsigned long references 370 throughout the source code 371 - Added -W to the compiler flags to catch lots of other little bugs, 372 many little fixes. Mostly eliminating comparisons between signed and 373 unsigned. Some warnings, especially "unused paramter" are ok. 374 375Version 1.10 - 2 Feb 2006 376 - Fixed Tiger hashes being displayed in big endian instead of little endian 377 Thanks to Peter Chuenkov (aka ODB) for finding this bug 378 - Fixed cosmetic bug in usage message 379 380Version 1.9.3 - 5 Jan 2006 381 - Added Cygwin as a supported platform 382 - Fixed expert mode to remove a number of logical errors 383 that prevented the program from correctly identifying which 384 files should be hashed. Symbolic links, in particular, were not 385 being chosen or excluded correctly. 386 - Added quiet mode, -q, filename is omitted from the output. 387 - Added Makefile directive macg5 to compile OS X G5 specific code 388 - Fixed comparisons between signed and unsigned variables in helpers.c 389 and dig.c 390 391Version 1.9.2 - 14 Nov 2005 392 - Fixed Makefile to include compiler optimizations for hashing algorithms 393 394Version 1.9.1 - 8 Nov 2005 395 - Fixed bug when processing symlinks to directories introduced in 396 version 1.9 by accidently removing known good code. Oops. 397 398Version 1.9 - 7 Nov 2005 399 - Changed the existing return values and added ones for the matching modes 400 to indicate if any of the input files did not match a known hash and 401 if any hashes were unused. See "RETURN VALUES" section of the manpage. 402- Added -n mode to display which files from the list of known hashes did 403 not match any of the input files. 404- Fixed dig.c code to correctly handle links to Solaris doors. 405- Fixed cosmetic bug that caused the leading slash to be omitted from the 406 output under 'which matching file', or -w mode. 407- Changed text displayed in matching modes for standard input. Now displays 408 just "stdin" in matching mode 409- Fixed bug in files.c:valid_hash that caused crash by casting 410 character value into a signed integer. 411- Fixed bug in BSD hash file importing that caused crash when processing a 412 line with two parenthesis but was shorter than a valid hash. 413- Fixed cosmetic bug in hash.c:update_display to prevent the first time 414 estimate to be wildly off if it takes more than one second to read 415 the first megabyte of each input file. 416- Simplified hash.c by removing match_name from hash_info structure 417- Minor changes to Makefile defines 418 419 420Version 1.8 - 8 Aug 2005 421 422- Added Tiger algorithm to make tigerdeep. 423- Added -k mode to insert asterisks before filename, like md5sum -b 424- Fixed a bug that prevented the first BSD style hash from being 425 loaded during any of the matching modes. 426- Continued to simplify the Makefile. To wit: 427 - Changed checks for __WIN32 to _WIN32, which is defined by the compiler. 428 Removed -D__WIN32 from the Makefile. 429 - Greatly reduced the number of instructions for cross compiling 430 - Simplified rules for building all applications 431 432 433Version 1.7 - 23 May 2005 434 435- Added support to use BSD style hashes in matching modes 436- Fixed support for Hashkeeper files that have directory information. 437 Matt Kucenski helped to track this down. 438- While fixing Hashkeeper support, improved support for other hash 439 file formats and generalized the code in files.c 440- Fixed a bug for displaying the correct matching filename in -w mode 441 (ensured that extra characters are erased) 442- Fixed cosmetic bug to avoid extra characters on time estimation mode 443- Removed 32-bit number limitation from Win32 code, which allows 444 the display of file sizes larger than 4GB. (Note that time estimates 445 for files larger than 4GB is still not available on Windows.) 446- Switched printing of large numbers to C99 style (e.g. PRIu64 et al) 447- Simplified the operating systems defines in the Makefile. To wit: 448 - Removed -D__MACOSX for Mac. Instead check for __APPLE__, which 449 the compiler defines by default for us. 450 - Removed the -D__UNIX directive. Instead just check the __WIN32 451 is *not* defined whenever we put in *nix code. 452 453 454Version 1.6 - 4 May 2005 455 456- Added Whirlpool algorithm to make whirlpooldeep. 457- Fixed bug to prevent trying to access 'busy' files. This happens when 458 trying to access system files on Win32 that are mounted via Samba. 459 Jeff Bryner helped to track this one down 460- Added -w flag to display, in matching mode, which known hash matched 461 the input file 462- Added -b flag to remove leading directory information from filenames 463- Added -a and -A flags to add a single hash to 464 positive and negative matching, respectively 465- Removed -t as a valid flag, breaking compatibility with md5sum 466- Enabled control of FIFO pages via expert mode on Windows 467- Combined all manpages into single md5deep man page 468- Added error checking to hash table functions 469- Removed algorithm specific code from hash table code 470- Fixed __USE_BSD define in md5deep.h to avoid compiler warnings 471- Fixed minor bug to clean up Windows version of man page 472- Updated install process to use $(PREFIX) for installed location 473- Removed macinstall option 474 475 476Version 1.5 - 31 Aug 2004 477 478- Added SHA-256 algorithm to make sha256deep. Special thanks to 479 Christophe Devine his SHA-256 implementation. 480- Fixed typo in files.c for unsupport file type processing 481- Fixed typo in sha1deep man page. (Had wrong reference in description.) 482- Man pages are now installed mode 444 instead of 755. (i.e. non-executable) 483- Cleaned up Makefile. Yes, again. 484 485 486Version 1.4 - 16 Aug 2004 487 488- Added relative paths mode 489- Fixed printing of file sizes larger than 9GB for Mac, *BSD. 490- Changed return values so that always returns 0 on success 491 positive integer on failure (1 = user error, 2 = internal error) 492- Fixed memory leak on directory open failures in dig.c 493- Fixed memory leak in directory release code in cycles.c 494- Fixed potential information leak in md5.c (thanks to Derek Jones) 495- Removed possible supression of critical error messages in cycles.c 496- Fixed size computation for standard input 497- Added support for Win32 logical drives (e.g. \\.\C:) 498- Changed data structures in hash.c for ease of reading 499- Added overflow counter for Win32 for files larger than 4GB 500- Put Windows style newlines in copyright message 501 502 503Version 1.3 - 24 Jun 2004 504 505- Fixed Windows version to handle physical devices and UNC paths 506 (e.g. \\.\PhysicalDrive0 \\.\tape0 \\server\share\file etc) 507- Removed halting on fatal errors except "Permission Denied" 508- Added error checking for cycles created by symbolic links 509- Added -z flag to print file sizes 510- Added -0 flag to end lines with /0 instead of newlines 511- Updated documentation regarding Cygwin and Win32 compilation 512- Cleaned up Makefile, fixed "make windows" 513 514 515Version 1.2 - 16 Apr 2004 516 517- Added sha1deep to compute SHA-1 hashes 518- Abstracted hash functions to allow other algorithms to be inserted 519- Windows version now generates output with line feeds AND carriage returns 520- Fixed printing of error messages for positive and negative matching together 521- Cleaned up display for matching of standard input 522 523 524Version 1.1 - 25 Mar 2004 525 526- Fixed processing of standard input on Windows 527- Fixed cosmetic errors with time estimation to now produce a fixed length 528 output and avoid spanning multiple lines 529 530 531Version 1.0 - 15 Mar 2004 532(better late than never!) 533 534- Moved hierarchy traversal code into separate file, dig.c 535- Now able to handle symbolic links properly 536- If no input files are given, uses standard input 537- Added file read error handling (display an error message, pad missing data 538 with zeros and continue execution). 539- Added expert mode; allows user to choose which and only which types of 540 files are processed 541- Added -X and -M to print hashes as well as matches 542- Errors in files of known hashes are now treated an non-fatal 543- When estimating completion time, print the filename being processed 544- Corrected NSRL import code 545- Cleaned up time estimation calculation 546- Fixed block device time estimation for *BSD 547- Switched from unsigned long long to off_t type 548- Fixed duplicate slashes in filenames from root directory (e.g. //usr/src) 549- Fixed install process. Generally this meant removing flags from 550 the install command. 551- Added *BSD-specific includes 552- Fixed minor data type issue for Gentoo linux 553- Fixed typos in copyright and error messages 554 555 556Version 0.16 - 7 Mar 2003 557 558Added -x flag for negative matching 559Made the Makefile nicer 560Added code for compatibility with FreeBSD, Solaris, and OS X. 561Added support for symbolic links to files 562Changed the rules for a valid plain hash such that it only needs to 563be followed by one space instead of two 564 565 566Version 0.15 - 5 Jan 2003 567 568Added -m flag for matching support 569Made the help message more helpful 570 571 572 573** Changes in version 0.14 (2 Dec 2002) 574 575* New Features 576 577 Added better checks for avoiding symbolic links on *nix 578 579 Added -V flag for copyright information 580 581* Buf Fixes 582 583 Fixed time estimation for block devices on Linux 584 585 Program now identifies itself correctly in Windows error messages. 586 587 588 589 590** Changes in version 0.13 (7 Nov 2002) 591 592* New Features 593 594 Added -r and -e flags for recursion and time 595 estimation, respectively. 596 597* Bug Fixes 598 599 Fixed Windows version to generate correct MD5 values. 600 (u_int_32 should have been unsigned long instead of long. Oops.) 601 602 603 604 605** Changes in version 0.12 (1 Nov 2002) 606 607* New Features 608 609 First (internally) published version 610 611 Added -b and -t switches for compability with md5sum 612 613 Cleaned up README and man page 614 615* Bug Fixes 616 617 Removed Linux specific code 618 619 620 621