Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cksum(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sum(1)

cksum(1)                                                           cksum(1)

NAME
     cksum - write file checksums and sizes

SYNOPSIS
     cksum [-C] [file ...]

DESCRIPTION
     The cksum utility calculates and writes to standard output a cyclic
     redundancy check (CRC) for each input file, and also writes to stan-
     dard output the number of octets in each file. The CRC used is based
     on the polynomial used for CRC error checking in the referenced Ether-
     net standard.

     The encoding for the CRC checksum is defined by the generating
     polynominal:

     G(x) = x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1

     Mathematically, the CRC value corresponding to a given file is defined
     by the following procedure:

     1. The n bits to be evaluated are considered to be the coefficients of
        a mod 2 polynomial M(x) of degree n-1. These n bits are the bits
        from the file, with the most significant bit being the most signi-
        ficant bit of the first octet of the file and the last bit being
        the least significant bit of the last octet, padded with zero bits
        (if necessary) to achieve an integral number of octets, followed by
        one or more octets representing the length of the file as a binary
        value, least significant octet first. The smallest number of octets
        capable of representing this integer is used.

     2. M(x) is multiplied by x^32 (that is, shifted left 32 bits) and
        divided by G(x) using mod 2 division, producing a remainder R(x) of
        degree < 31.

     3. The coefficients of R(x) are considered to be a 32-bit sequence.

     4. The bit sequence is complemented and the result is the CRC.

OPTIONS
     -C    calculates the CRC checksum in the same way as in previous ver-
           sions.

     file  A pathname of a file to be checked. If no file operands are
           specified, the standard input is used.










Page 1                       Reliant UNIX 5.44                Printed 11/98

cksum(1)                                                           cksum(1)

ENVIRONMENT VARIABLES
     The following environment variables affect the execution of cksum:

     LANG Provide a default value for the internationalization variables
          that are unset or null. If LANG is unset of null, the correspond-
          ing value from the implementation-specific default locale will be
          used. If any of the internationalization variables contains an
          invalid setting, the utility will behave as if none of the vari-
          ables had been defined.

     LCALL
          If set to a non-empty string value, override the values of all
          the other internationalization variables.

     LCCTYPE
          Determine the locale for the interpretation of sequences of bytes
          of text data as characters (for example, single- as opposed to
          multi-byte characters in arguments).

     LCMESSAGES
          Determine the locale that should be used to affect the format and
          contents of diagnostic messages written to standard error.

     NLSPATH
          Determine the location of message catalogues for the processing
          of LCMESSAGES.

STDOUT
     For each file processed successfully, the cksum utility will write in
     the following format:

     "%u %d %s\n", checksum, #ofoctets, pathname

     If no file operand was specified, the pathname and its leading space
     will be omitted.

EXIT STATUS
     The following exit values are returned:

     0    All files were processed successfully.

     >0   An error occurred.

APPLICATION USAGE
     The cksum utility is typically used to quickly compare a suspect file
     against a trusted version of the same, such as to ensure that files
     transmitted over noisy media arrive intact. However, this comparison
     cannot be considered cryptographically secure. The chances of a dam-
     aged file producing the same CRC as the original are astronomically
     small; deliberate deception is difficult, but probably not impossible.




Page 2                       Reliant UNIX 5.44                Printed 11/98

cksum(1)                                                           cksum(1)

     Although input files to cksum can be any type, the results need not be
     what would be expected on character special device files or on file
     types not described by the XSH specification. Since this document does
     not specify the block size used when doing input, checksums of charac-
     ter special files need not process all of the data in those files.

     The algorithm is expressed in terms of a bitstream divided into
     octets. If a file is transmitted between two systems and undergoes any
     data transformation (such as moving 8-bit characters into 9-bit bytes
     or changing "Little Endian"), identical CRC values cannot be expected.
     Implementations performing such transformations may extend cksum to
     handle such situations.

NOTES
     The following error message is displayed if file is the mount point
     for an NFS file system:

          cksum: Read error on file: Is a directory

SEE ALSO
     sum(1).

































Page 3                       Reliant UNIX 5.44                Printed 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026