logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

cksum - Calculate a cksum(1) compatible checksum

Authors

       Pat Thoyts

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::cksum ?-formatformat? ?-chunksizesize? [ -channelchan | -filenamefile | string ]
              The command takes string data or a channel or file name and returns a  checksum  value  calculated
              using the cksum(1) algorithm. The result is formatted using the format(3tcl) specifier provided or
              as an unsigned integer (%u) by default.

Description

       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.

Examples

              % crc::cksum "Hello, World!"
              2609532967

              % crc::cksum -format 0x%X "Hello, World!"
              0x9B8A5027

              % crc::cksum -file cksum.tcl
              1828321145

              % set tok [crc::CksumInit]
              % crc::CksumUpdate $tok "Hello, "
              % crc::CksumUpdate $tok "World!"
              % crc::CksumFinal $tok
              2609532967

Keywords

       checksum, cksum, crc, crc32, cyclic redundancy check, data integrity, security

Name

       cksum - Calculate a cksum(1) compatible checksum

Options

       -channel name
              Return  a  checksum  for the data read from a channel. The command will read data from the channel
              until the eof is true. If you need to be able to process events during this  calculation  see  the
              PROGRAMMINGINTERFACE section

       -filename name
              This  is  a convenience option that opens the specified file, sets the encoding to binary and then
              acts as if the -channel option had been used. The file is closed on completion.

       -format string
              Return the checksum using an alternative format template.

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  fileevent  handler  in
       discrete  chunks.  This  can  improve  the  interactive nature of a GUI application and can help to avoid
       excessive memory consumption.

       ::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.

       ::crc::CksumUpdatetokendata
              Add  data  to the checksum identified by token. Calling CksumUpdate$token"abcd" is equivalent to
              calling CksumUpdate$token"ab" followed by CksumUpdate$token"cb". See EXAMPLES.

       ::crc::CksumFinaltoken
              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.

See Also

crc32(3tcl), sum(3tcl)

Synopsis

       package require Tcl8.59

       package require cksum?1.1.5?::crc::cksum ?-formatformat? ?-chunksizesize? [ -channelchan | -filenamefile | string ]

       ::crc::CksumInit::crc::CksumUpdatetokendata::crc::CksumFinaltoken

________________________________________________________________________________________________________________

See Also