CKSUM(1) User Commands CKSUM(1)

## NAME

cksum - write file checksums and sizes

## SYNOPSIS

**cksum **[__file__]...

## DESCRIPTION

The**cksum **command calculates and writes to standard output a cyclic

redundancy check (CRC) for each input file, and also writes to standard

output the number of octets in each file.

For each file processed successfully,**cksum **will write in the following

format:

**"%u %d %s\n" **<__checksum__>, <__#__ __of__ __octets__>, <__path__ __name__>

If no__file__ operand was specified, the path name and its leading space

will be omitted.

The CRC used is based on the polynomial used for CRC error checking in

the referenced Ethernet standard.

The encoding for the CRC checksum is defined 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 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 significant 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.

## OPERANDS

The following operand is supported:

__file__

A path name of a file to be checked. If no__file__ operands are

specified, the standard input is used.

## USAGE

The**cksum **command 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 damaged

file producing the same CRC as the original are astronomically small;

deliberate deception is difficult, but probably not impossible.

Although input files to**cksum **can be any type, the results need not be

what would be expected on character special device files. Since this

document does not specify the block size used when doing input, checksums

of character 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" byte ordering to "Big Endian"), identical CRC

values cannot be expected. Implementations performing such

transformations may extend**cksum **to handle such situations.

See largefile(7) for the description of the behavior of**cksum **when

encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).

## ENVIRONMENT VARIABLES

See environ(7) for descriptions of the following environment variables

that affect the execution of**cksum**: **LANG**, **LC_ALL**, **LC_CTYPE**, **LC_MESSAGES**,

and**NLSPATH**.

## EXIT STATUS

The following exit values are returned:

**0**

All files were processed successfully.

**>0**

An error occurred.

## ATTRIBUTES

See attributes(7) for descriptions of the following attributes:

+--------------------+-----------------+

| ATTRIBUTE TYPE | ATTRIBUTE VALUE |

+--------------------+-----------------+

|Interface Stability | Standard |

+--------------------+-----------------+

## SEE ALSO

digest(1), sum(1), attributes(7), environ(7), largefile(7), standards(7),

bart(8)

February 1, 1995 CKSUM(1)

cksum - write file checksums and sizes

The

redundancy check (CRC) for each input file, and also writes to standard

output the number of octets in each file.

For each file processed successfully,

format:

If no

will be omitted.

The CRC used is based on the polynomial used for CRC error checking in

the referenced Ethernet standard.

The encoding for the CRC checksum is defined by the generating

polynomial:

+

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

the following procedure:

1. The

coefficients of a mod 2 polynomial

bits are the bits from the file, with the most significant bit

being the most significant 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.

and divided by

remainder

3. The coefficients of

sequence.

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

The following operand is supported:

A path name of a file to be checked. If no

specified, the standard input is used.

The

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 damaged

file producing the same CRC as the original are astronomically small;

deliberate deception is difficult, but probably not impossible.

Although input files to

what would be expected on character special device files. Since this

document does not specify the block size used when doing input, checksums

of character 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" byte ordering to "Big Endian"), identical CRC

values cannot be expected. Implementations performing such

transformations may extend

See largefile(7) for the description of the behavior of

encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).

See environ(7) for descriptions of the following environment variables

that affect the execution of

and

The following exit values are returned:

All files were processed successfully.

An error occurred.

See attributes(7) for descriptions of the following attributes:

+--------------------+-----------------+

| ATTRIBUTE TYPE | ATTRIBUTE VALUE |

+--------------------+-----------------+

|Interface Stability | Standard |

+--------------------+-----------------+

digest(1), sum(1), attributes(7), environ(7), largefile(7), standards(7),

bart(8)

February 1, 1995 CKSUM(1)