version: 1.10

package crc64

import "hash/crc64"


Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64,
checksum. See for


Package files



  1. const (
  2. // The ISO polynomial, defined in ISO 3309 and used in HDLC.
  3. ISO = 0xD800000000000000
  5. // The ECMA polynomial, defined in ECMA 182.
  6. ECMA = 0xC96C5795D7870F42
  7. )

Predefined polynomials.

  1. const Size = 8

The size of a CRC-64 checksum in bytes.

func Checksum

  1. func Checksum(data []byte, tab *Table) uint64

Checksum returns the CRC-64 checksum of data using the polynomial represented by
the Table.

func New

  1. func New(tab *Table) hash.Hash64

New creates a new hash.Hash64 computing the CRC-64 checksum using the polynomial
represented by the Table. Its Sum method will lay the value out in big-endian
byte order. The returned Hash64 also implements encoding.BinaryMarshaler and
encoding.BinaryUnmarshaler to marshal and unmarshal the internal state of the

func Update

  1. func Update(crc uint64, tab *Table, p []byte) uint64

Update returns the result of adding the bytes in p to the crc.

type Table

  1. type Table [256]uint64

Table is a 256-word table representing the polynomial for efficient processing.

func MakeTable

  1. func MakeTable(poly uint64) *Table

MakeTable returns a Table constructed from the specified polynomial. The
contents of this Table must not be modified.