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  con-
       struct  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 parame-
       ters 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 option	-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 output of	tthsum.	 That is, each line in	the  file  de-
	      scribes a	file. A	line looks like:

	      <TTH CHECKSUM>  <FILENAME>

	      So,  for	example, if a file were	created	and its	message	digest
	      calculated 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
	      hashing  on standard error. Prints file position instead of per-
	      centage 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	 stan-
	      dard  out.  If an	unknown	combination of options is encountered,
	      the small	help is	printed	on standard error and tthsum will  re-
	      turn 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 for-
       matted lines match.  tthsum returns 2 if	an unknown combination of  op-
       tions is	encountered.  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:
       ABCDEFGHIJKLMNOPQRSTUVWXYZ234567.  It will accept lower case letters in
       the digest 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 Win-
       dows,  backslashes  in paths will be translated to slashes for compati-
       bility 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  cannot  represent  non-ASCII  characters	 (those	above 0x7F) in
       UTF8. See locale(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@cre-
       atio.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 architectures	and to remove the need for C++ compil-
       ers  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.0>

home | help