Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TTHSUM(1)			  User Commands 		       TTHSUM(1)

NAME
     tthsum - generates or checks TTH message digests

SYNOPSIS
     tthsum [-bhmpvVw] [-c [file]] | [file...]

DESCRIPTION
     tthsum  generates	or  checks  TTH  checksums (roots of the Tiger/THEX hash
     tree).  The Merkle Hash Tree, invented by Ralph Merkle, is a hash construct
     that exhibits desirable properties for verifying the integrity of files and
     file subranges in an incremental or out-of-order fashion.	tthsum uses  the
     Tiger hash algorithm, by Ross Anderson and Eli Biham, for both the internal
     and the leaf nodes.

     The specification of the THEX algorithm is at:
      .  http://tthsum.devs.nu/draft-jchapweske-thex-02.html

     The specification of the Tiger hash algorithm is at:
      .  http://www.cs.technion.ac.il/~biham/Reports/Tiger/

     Normally  tthsum generates checksums of all files given to it as parameters
     and prints the checksums followed by the  filenames.  If,	however,  -c  is
     specified, only one filename parameter is allowed. This file should contain
     checksums	and  filenames	to  which  these  checksums refer, and the files
     listed in that file are checked against the checksums listed there. See op-
     tion -c for more information.

     If no file is specified data will be read from standard input.

   OPTIONS
     -b     An md5sum compatibility option. It does absolutely nothing.  (md5sum
	    uses -b to treat binary files differently from texts files.)

     -c     Check tthsum of all files listed in file against the checksum listed
	    in the same file. The actual format of that file is the same as out-
	    put of tthsum.  That is, each line in the file describes a	file.  A
	    line looks like:

	    <TTH CHECKSUM>  <FILENAME>

	    So,  for example, if a file were created and its message digest cal-
	    culated like so:

	    echo foo > tth-test-file; tthsum tth-test-file

	    tthsum would report:

	    A2MPPCGS5CPJV6AOAP37ICDCFV3WYU7PBREC6FY  tth-test-file

	    See NOTES for more information on the digest file format.

     -m     Use mmap(2) instead of read(2) to read the contents of the files  to
	    hash.  Normally,  using  read is cheaper. This all depends on system
	    load, I/O speed, CPU speed, L1 and/or L2 cache size and whatnot.

     -p     Show the progress. Print the percentage of completeness while  hash-
	    ing  on  standard  error. Prints file position instead of percentage
	    when the file size is unknown.

     -v     Be verbose. Print filenames when checking (with -c).

     -w     Warn on improperly formatted lines when checking (with -c).

     -h, -V
	    Print a small help text or the version,  respectively,  on	standard
	    out.  If an unknown combination of options is encountered, the small
	    help is printed on standard error and tthsum will return non-zero.

RETURN VALUE
     tthsum  returns  0  if  no error occurred or, when checking a digest, if at
     least one line is formatted properly and the TTHs of all properly formatted
     lines match.  tthsum returns 2 if an unknown combination of options is  en-
     countered.  In all other cases will tthsum return 1.

NOTES
     tthsum intentionally uses an interface identical to md5sum.

     tthsum  uses BASE32 encoding consisting of the following characters: ABCDE-
     FGHIJKLMNOPQRSTUVWXYZ234567.  It will accept lower case letters in the  di-
     gest input as well.

     tthsum does not accept long options such as --help.

     A	digest	file  format  line  looks like: <BASE32><SPACES><FILENAME><EOL>.
     BASE32 is a 39 character long BASE32 encoded string.  SPACES is  a  set  of
     two  spaces  (0x20).  FILENAME is the name of the file, encoded in UTF8 and
     with all control characters (those below 0x20) encoded as	\xNN  or  \C  C-
     style  escapes.  (The backslash is escaped as \\ as well. On Windows, back-
     slashes in paths will be translated to slashes for compatibility with  real
     operating	systems.)   EOL  may  be CRLF (\r\n), just plain LF (\n) or even
     nothing at end-of-file.

     If you see warnings about an improper locale setup, check your LANG  and/or
     LC_CTYPE environment variables.  If these are not set properly, tthsum can-
     not  represent  non-ASCII	characters  (those  above 0x7F) in UTF8. See lo-
     cale(1) for more information or try to set LC_CTYPE to e.g. "en_US".

REPORTING BUGS
     Report bugs to <walter+tthsum@wjd.nu>.

COPYRIGHT
     Copyright (C) 2009 Walter Doekes.	License GPLv3+: GNU  GPL  version  3  or
     later <http://gnu.org/licenses/gpl.html>
     This  is  free software: you are free to change and redistribute it.  There
     is NO WARRANTY, to the extent permitted by law.

AUTHOR
     tthsum  and  this	manpage  were  written	by  Walter  Doekes  (walter+tth-
     sum@wjd.nu).   The  hashing  code	was  copied  directly from DC++, an open
     source peer-to-peer file sharing program by Jacek Sieka  (jacek@creatio.se)
     who  had based the hashing code on the one used in BCDC++ (a modified DC++)
     by Dustin Brody (blackclaw@parsoma.net).  After version 1.1.0, the  hashing
     code from the Tiger hash authors is used instead, to support big endian ar-
     chitectures  and  to  remove the need for C++ compilers and libraries.  The
     md5sum manpage, written by Juho Vuori (javuori@cc.helsinki.fi), was used as
     a template. This manpage was proofread by Dustin Brody.

SEE ALSO
     cksfv(1), md5sum(1), sha1sum(1)

tthsum version 1.3.2		    Dec 2009			       TTHSUM(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tthsum&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help