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

sum - Calculate a sum(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::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.

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 ]

________________________________________________________________________________________________________________

See Also