Open System Services Shell and Utilities Reference Manual (G06.28+, H06.05+)

cksum(1) OSS Shell and Utilities Reference Manual
NAME
cksum - Displays the checksum and byte count of a le
SYNOPSIS
cksum [le ...]
DESCRIPTION
The cksum command reads the les specied by the le argument and calculates a 32-bit check-
sum Cyclic Redundancy Check (CRC) and the byte count for each le. If no les are specied,
the standard input le is read. The checksum, number of bytes, and lename are written to the
standard output le. If standard input is used, no pathname is printed.
The cksum command can be used to compare a suspect le copied or communicated over noisy
transmission lines against an exact copy of a trusted le. The comparison made by the cksum
command may not be cryptographically secure; however, it is unlikely that an accidentally dam-
aged le will produce the same checksum as the original le.
The checksum of a program can change. The rst time a program is executed after the system is
cold loaded, external references are resolved. This changes the contents of the program le and
hence its contents.
The cksum command uses a different algorithm than the sum command to calculate the 32-bit
checksum CRC. The cksum command uses a CRC algorithm based on the Ethernet standard
frame check. In addition, the sum block count is an octet count in cksum.
The CRC checksum is obtained in the following way:
The encoding is dened by the generating polynomial:
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 le is dened by the following pro-
cedure:
1. The n bits to be evaluated are considered to be the coefcients of a mod 2 polynomial
M(x) of degree n-1. These n bits are the bits from the le, with the most signicant bit
being the most signicant bit of the rst octet of the le and the last bit being the least
signicant 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 le as a
binary value, least signicant octet rst. 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 less than or equal to 31.
3. The coefcients of R(x) are considered to be a 32-bit sequence.
4. The bit sequence is complemented and the result is the CRC.
EXAMPLES
To display the checksum and the size, in bytes, of le1 and le2,enter:
cksum le1 le2
3995432187 1390 file1
3266927833 20912 file2
This output shows that the checksum of the le1 le is 3995432187 and it contains 1390 bytes,
and that the checksum of the le2 le is 3266927833 and it contains 20912 bytes.
250 Hewlett-Packard Company 527188-007