sum - Calculate a sum(1) compatible checksum
Contents
Bugs, Ideas, Feedback
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please
report such in the category crc of the TcllibTrackers [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by
going to the Edit form of the ticket immediately after its creation, and then using the left-most button
in the secondary navigation bar.
Category
Hashes, checksums, and encryption
Commands
::crc::sum ?-bsd | -sysv? ?-formatfmt? ?-chunksizesize? [ -filenamefile | -channelchan | string ]
The command takes string data or a file name or a channel and returns a checksum value calculated
using the sum(1) algorithm. The result is formatted using the format(3tcl) specifier provided or
as an unsigned integer (%u) by default.
Copyright
Copyright (c) 2002, Pat Thoyts <patthoyts@users.sourceforge.net>
tcllib 1.1.3 sum(3tcl)
Description
This package provides a Tcl-only implementation of the sum(1) command which calculates a 16 bit checksum
value from the input data. The BSD sum algorithm is used by default but the SysV algorithm is also
available.
Examples
% crc::sum "Hello, World!"
37287
% crc::sum -format 0x%X "Hello, World!"
0x91A7
% crc::sum -file sum.tcl
13392
Keywords
checksum, cksum, crc, crc32, cyclic redundancy check, data integrity, security, sum
Name
sum - Calculate a sum(1) compatible checksum
Options
-sysv The SysV algorithm is fairly naive. The byte values are summed and any overflow is discarded. The
lowest 16 bits are returned as the checksum. Input with the same content but different ordering
will give the same result.
-bsd This algorithm is similar to the SysV version but includes a bit rotation step which provides a
dependency on the order of the data values.
-filename name
Return a checksum for the file contents instead of for parameter data.
-channel chan
Return a checksum for the contents of the specified channel. The channel must be open for reading
and should be configured for binary translation. The channel will no be closed on completion.
-chunksize size
Set the block size used when reading data from either files or channels. This value defaults to
4096.
-format string
Return the checksum using an alternative format template.
See Also
cksum(3tcl), crc32(3tcl), sum(1)
Synopsis
package require Tcl8.59
package require sum?1.1.3?::crc::sum ?-bsd | -sysv? ?-formatfmt? ?-chunksizesize? [ -filenamefile | -channelchan | string ]
________________________________________________________________________________________________________________
