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