summaryrefslogtreecommitdiffstats
path: root/tcllib/modules/crc/sum.man
diff options
context:
space:
mode:
Diffstat (limited to 'tcllib/modules/crc/sum.man')
-rw-r--r--tcllib/modules/crc/sum.man108
1 files changed, 108 insertions, 0 deletions
diff --git a/tcllib/modules/crc/sum.man b/tcllib/modules/crc/sum.man
new file mode 100644
index 0000000..bae7f12
--- /dev/null
+++ b/tcllib/modules/crc/sum.man
@@ -0,0 +1,108 @@
+[vset SUM_VERSION 1.1.2]
+[manpage_begin sum n [vset SUM_VERSION]]
+[see_also cksum(n)]
+[see_also crc32(n)]
+[see_also sum(1)]
+[keywords checksum]
+[keywords cksum]
+[keywords crc]
+[keywords crc32]
+[keywords {cyclic redundancy check}]
+[keywords {data integrity}]
+[keywords security]
+[keywords sum]
+[copyright {2002, Pat Thoyts <patthoyts@users.sourceforge.net>}]
+[moddesc {Cyclic Redundancy Checks}]
+[titledesc {Calculate a sum(1) compatible checksum}]
+[category {Hashes, checksums, and encryption}]
+[require Tcl 8.2]
+[require sum [opt [vset SUM_VERSION]]]
+[description]
+[para]
+
+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.
+
+[section COMMANDS]
+
+[list_begin definitions]
+
+[call [cmd "::crc::sum"] \
+ [opt "[arg -bsd] | [arg -sysv]"] \
+ [opt [arg "-format fmt"]] \
+ [opt [arg "-chunksize size"]] \
+ [lb] [arg "-filename file"] | \
+ [arg "-channel chan"] | [arg "string"] [rb]]
+
+The command takes string data or a file name or a channel and returns
+a checksum value calculated using the [syscmd sum(1)] algorithm. The
+result is formatted using the [arg format](n) specifier provided or as
+an unsigned integer (%u) by default.
+
+[list_end]
+
+[section OPTIONS]
+
+[list_begin definitions]
+
+[def "-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.
+
+[def "-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.
+
+[def "-filename [arg name]"]
+
+Return a checksum for the file contents instead of for parameter data.
+
+[def "-channel [arg 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.
+
+[def "-chunksize [arg size]"]
+
+Set the block size used when reading data from either files or
+channels. This value defaults to 4096.
+
+[def "-format [arg string]"]
+
+Return the checksum using an alternative format template.
+
+[list_end]
+
+[section EXAMPLES]
+
+[para]
+[example {
+% crc::sum "Hello, World!"
+37287
+}]
+
+[para]
+[example {
+% crc::sum -format 0x%X "Hello, World!"
+0x91A7
+}]
+
+[para]
+[example {
+% crc::sum -file sum.tcl
+13392
+}]
+
+[section AUTHORS]
+Pat Thoyts
+
+[vset CATEGORY crc]
+[include ../doctools2base/include/feedback.inc]
+[manpage_end]