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