diff options
Diffstat (limited to 'tcllib/modules/crc/cksum.man')
-rw-r--r-- | tcllib/modules/crc/cksum.man | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/tcllib/modules/crc/cksum.man b/tcllib/modules/crc/cksum.man new file mode 100644 index 0000000..fd55a04 --- /dev/null +++ b/tcllib/modules/crc/cksum.man @@ -0,0 +1,131 @@ +[vset CKSUM_VERSION 1.1.4] +[manpage_begin cksum n [vset CKSUM_VERSION]] +[see_also crc32(n)] +[see_also sum(n)] +[keywords checksum] +[keywords cksum] +[keywords crc] +[keywords crc32] +[keywords {cyclic redundancy check}] +[keywords {data integrity}] +[keywords security] +[copyright {2002, Pat Thoyts}] +[moddesc {Cyclic Redundancy Checks}] +[titledesc {Calculate a cksum(1) compatible checksum}] +[category {Hashes, checksums, and encryption}] +[require Tcl 8.2] +[require cksum [opt [vset CKSUM_VERSION]]] +[description] +[para] + +This package provides a Tcl implementation of the cksum(1) algorithm +based upon information provided at in the GNU implementation of this +program as part of the GNU Textutils 2.0 package. + +[section COMMANDS] + +[list_begin definitions] + +[call [cmd "::crc::cksum"] \ + [opt [arg "-format format"]] \ + [opt [arg "-chunksize size"]] \ + [lb] [arg "-channel chan"] | \ + [arg "-filename file"] | [arg "string" ] [rb]] + +The command takes string data or a channel or file name and returns a +checksum value calculated using the [syscmd cksum(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 "-channel [arg name]"] + +Return a checksum for the data read from a channel. The command will +read data from the channel until the [cmd "eof"] is true. If you need +to be able to process events during this calculation see the +[sectref {PROGRAMMING INTERFACE}] section + +[def "-filename [arg name]"] + +This is a convenience option that opens the specified file, sets the +encoding to binary and then acts as if the [arg -channel] option had +been used. The file is closed on completion. + +[def "-format [arg string]"] + +Return the checksum using an alternative format template. + +[list_end] + +[section {PROGRAMMING INTERFACE}] + +The cksum package implements the checksum using a context variable to +which additional data can be added at any time. This is expecially +useful in an event based environment such as a Tk application or a web +server package. Data to be checksummed may be handled incrementally +during a [cmd fileevent] handler in discrete chunks. This can improve +the interactive nature of a GUI application and can help to avoid +excessive memory consumption. + +[list_begin definitions] + +[call [cmd "::crc::CksumInit"]] + +Begins a new cksum context. Returns a token ID that must be used for the +remaining functions. An optional seed may be specified if required. + +[call [cmd "::crc::CksumUpdate"] [arg "token"] [arg "data"]] + +Add data to the checksum identified by token. Calling +[emph {CksumUpdate $token "abcd"}] is equivalent to calling +[emph {CksumUpdate $token "ab"}] followed by +[emph {CksumUpdate $token "cb"}]. See [sectref {EXAMPLES}]. + +[call [cmd "::crc::CksumFinal"] [arg "token"]] + +Returns the checksum value and releases any resources held by this +token. Once this command completes the token will be invalid. The +result is a 32 bit integer value. + +[list_end] + +[section EXAMPLES] + +[para] +[example { +% crc::cksum "Hello, World!" +2609532967 +}] + +[para] +[example { +% crc::cksum -format 0x%X "Hello, World!" +0x9B8A5027 +}] + +[para] +[example { +% crc::cksum -file cksum.tcl +1828321145 +}] + +[para] +[example { +% set tok [crc::CksumInit] +% crc::CksumUpdate $tok "Hello, " +% crc::CksumUpdate $tok "World!" +% crc::CksumFinal $tok +2609532967 +}] + +[section AUTHORS] +Pat Thoyts + +[vset CATEGORY crc] +[include ../doctools2base/include/feedback.inc] +[manpage_end] |